├── data ├── roundtrip │ ├── roundtrip06.json │ ├── roundtrip07.json │ ├── roundtrip01.json │ ├── roundtrip02.json │ ├── roundtrip03.json │ ├── roundtrip04.json │ ├── roundtrip05.json │ ├── roundtrip08.json │ ├── roundtrip11.json │ ├── roundtrip15.json │ ├── roundtrip20.json │ ├── roundtrip21.json │ ├── roundtrip16.json │ ├── roundtrip17.json │ ├── roundtrip22.json │ ├── roundtrip23.json │ ├── roundtrip24.json │ ├── roundtrip09.json │ ├── roundtrip12.json │ ├── roundtrip10.json │ ├── roundtrip13.json │ ├── roundtrip14.json │ ├── roundtrip18.json │ ├── roundtrip19.json │ ├── roundtrip25.json │ ├── roundtrip26.json │ └── roundtrip27.json ├── fixtures │ ├── dagpb_empty │ │ ├── bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku.dag-pb │ │ ├── baguqeera6mfu3g6n722vx7dbitpnbiyqnwah4ddy4b5c3rwzxc5pntqcupta.dag-json │ │ └── bafyreihjsq5okmwdasf4hoiauwxv3vxjuwh2kuh4k5pgzzi3hanepxusjm.dag-cbor │ ├── int--1 │ │ ├── bafyreibwvht7dsk3ql73tf2d4dc4jtuv3a6juqykvrm7qtxtzp5lmfcqna.dag-cbor │ │ └── baguqeeradowwxdhzoey7z2vykq7id53vogk7xmotnm3w52muvuopc5uzyrsa.dag-json │ ├── int--100 │ │ ├── bafyreiek7xrdy2ej7xqapz2iofeuwo4yl43xrklokxd3k5jwpkcmos4os4.dag-cbor │ │ └── baguqeeraxfvtantde5ytjeyi7o7f26r7h53czhuph3w5k6c3cp7telqf7woq.dag-json │ ├── int--3 │ │ ├── bafyreiekgmp53zydf4z2ohq3fysx3aawny2i4ah4wf4rj5el3nl2drrqa4.dag-cbor │ │ └── baguqeeramfn52f6ckvxyf44ehexkqvl7rteiwa2qdr2z4iyjhkylfknvzvea.dag-json │ ├── int-0 │ │ ├── bafyreidogqfzz75tpkmjzjke425xqcrmpcib2p5tg44hnbirumdbpl5adu.dag-cbor │ │ └── baguqeeral7wowzx7zbxtrwkspbwg22lmphbnxqrz3vhjdndhfhltuj73k7uq.dag-json │ ├── int-2 │ │ ├── bafyreig3yg2msah74sgvow25uxddqbabex3f3mh6hysess3w5kmgiv6zqy.dag-cbor │ │ └── baguqeera2rzv4orglylo5yb7lfyyxg25amazyb6yw3cr7eg2hjtg53atvm2q.dag-json │ ├── null │ │ ├── baguqeeraoqru5gfp45ey7no26hzwvqwxrlgdhfde7fihao4magmjf6mcxefq.dag-json │ │ └── bafyreifqwkmiw256ojf2zws6tzjeonw6bpd5vza4i22ccpcq4hjv2ts7cm.dag-cbor │ ├── string-a │ │ ├── bafyreiewdnw5h3pdzohmxkwl22g6aqgnpdvs5vmiseymz22mjeti5jgvay.dag-cbor │ │ └── baguqeeravsgygqv3wi3c2e7quvm2gyq3wqdqce3irfiwjnriuvhx7qz7yq6a.dag-json │ ├── string-水 │ │ ├── bafyreib4565nbj4j6mklcrwjqgdv3uw4i6fr5dqb4dpqcqtsgrzeyg7hmm.dag-cbor │ │ └── baguqeeramndlngq22zwtjgdxrye2qsdo7k3dltx7clrq566p6jxb5zhgaywq.dag-json │ ├── true │ │ ├── baguqeeraww7kig3mmi7xycprx4snzlsy5ovtydg5scwzm26ehjc3isdh4evq.dag-json │ │ └── bafyreibhvppn37ufanewvxvwendgzksh3jpwhk6sxrx2dh3m7s3t5t7noa.dag-cbor │ ├── array-2 │ │ ├── baguqeeraaoewnxu7nonjagzawtdmvczkiyaj73v6amn2xscc2q3jbqf4eivq.dag-json │ │ └── bafyreihdb57fdysx5h35urvxz64ros7zvywshber7id6t6c6fek37jgyfe.dag-cbor │ ├── array-empty │ │ ├── baguqeeraj5j43immfovaya2uxnpzupwl4xwrfk2nryi3vbz4f4irmeqcxfcq.dag-json │ │ └── bafyreidwx2fvfdiaox32v2mnn6sxu3j4qoxeqcuenhtgrv5qv6litfnmoe.dag-cbor │ ├── bytes-empty │ │ ├── bafyreigdmqpykrgxyaxtlafqpqhzrb7qy2rh75nldvfd4kok6gl47quzvy.dag-cbor │ │ └── baguqeerackat3qjvp3wd4jnmm7afadwt2ahpjxqbj7pzxocc4kges5lkkqgq.dag-json │ ├── false │ │ ├── baguqeera7s6pczmqrxiyvhsj677spaibo3ny5h3dwq2see3uczsciure7cva.dag-json │ │ └── bafyreibac77tiyjzkzzkucve6zejj7jpswslcihcnehisulfnv423qxo2i.dag-cbor │ ├── float-0.5 │ │ ├── baguqeera2lf224p7gm66m7ih5rtw4njkw7zyeshlnheuffibk4ramb6fl2ca.dag-json │ │ └── bafyreifwqkffcpzsyfigri7xm2kaf6bz7si5stsnf46jep5w5we7ngmgma.dag-cbor │ ├── float-1.1 │ │ ├── baguqeerawbpcir3cwhshfpujve4abtb64mthiphmwvmyjpysqe5n3og6m3ia.dag-json │ │ └── bafyreifeekgttrbqlvjqmvey2r7damal3kiqn5a6r7a2pijrx4jgdv5odi.dag-cbor │ ├── int--256 │ │ ├── baguqeeral3yqlgtwwsyi4myxu7jqc2w23c2vmpesejnjca73w3beym4f6d5a.dag-json │ │ └── bafyreigdjo5suzljxlmtuj4eoohou6vadwznc4kkdfd4xsarc5sycz76oy.dag-cbor │ ├── int--501 │ │ ├── baguqeerauj7u5hvh53p5gieuicpcltpkspublw37bztjmmtvsjwta5wso53a.dag-json │ │ └── bafyreigwygio7woulumjyyylkawalinrei75k3ejc47mcnbnh2voqfikoy.dag-cbor │ ├── int-255 │ │ ├── baguqeerasvllqjezzqfk7bvo47yneu7bprq3p33t2sfcsxzx3ghqrmcp7j7q.dag-json │ │ └── bafyreih4vluto2froiw457akazzjhcfm7y22juemxx6jsyyjufp227tcv4.dag-cbor │ ├── int-500 │ │ ├── baguqeeraaycm2mjy73wsalxsspqgfwrpi4qpo6qf2jpoanvhuaojz7g5d4fa.dag-json │ │ └── bafyreifvxhnllfzufgihevzlj62j34nmzrlzfdjb5pwyqe5675meqi6o7q.dag-cbor │ ├── int-65536 │ │ ├── bafyreibjfaasdb7qgrdnd2pmg7noltevqzswyif5nyup6sktdanzgpft6a.dag-cbor │ │ └── baguqeerab4sv5qleqlbuh7ijtouwncddo6f6idobm2tik2y5i4haxsl4y36q.dag-json │ ├── map-empty │ │ ├── baguqeeraiqjw7i2vwntyuekgvulpp2det2kpwt6cd7tx5ayqybqpmhfk76fa.dag-json │ │ └── bafyreigbtj4x7ip5legnfznufuopl4sg4knzc2cof6duas4b3q2fy6swua.dag-cbor │ ├── string-empty │ │ ├── bafyreiengp2sbi6ez34a2jctv34bwyjl7yoliteleaswgcwtqzrhmpyt2m.dag-cbor │ │ └── baguqeerackxdfsy6yawqd3ndlanre7a75y5q3rjvolwwxlzds4q2apmc4eta.dag-json │ ├── string-𐅑 │ │ ├── bafyreihgpl6u5kyypvntwaijdv7wxeiuugo6ruujt652eigmp27zarclam.dag-cbor │ │ └── baguqeerakloumxm3cyyspmsadsj7edgbvpgttahpjgcfpqxpliq4hryzrxgq.dag-json │ ├── array-255 │ │ ├── baguqeeraqu2ktsh23n37sd632fp4cmexypune5zki6s23wfygkoemrumjmra.dag-json │ │ └── bafyreick3uapgoe63rizj6rptbqwl7pagin26fos32n37fu7uktzcadcdu.dag-cbor │ ├── array-500 │ │ ├── baguqeeraqjtyxb73lijycba3pidm5fwai4arowgebxo6yd7rdmmdqqwjzqha.dag-json │ │ └── bafyreidasbkb6vj3obxxqqgiz2ahvw7iaxmj446bbnrroj3jt6vzpo5fhm.dag-cbor │ ├── array-65536 │ │ ├── baguqeeradd2npofdzz4gl4stit2bkixizy3dlvmqrfbjif3dwc6beh556mbq.dag-json │ │ └── bafyreiarke72vvg3sfs2nrpzpgnxs7dqcdu2e4ytixgo7snkyoq5w7oddu.dag-cbor │ ├── dagpb_Data_zero │ │ ├── bafybeiaqfni3s5s2k2r6rgpxz4hohdsskh44ka5tk6ztbjerqpvxwfkwaq.dag-pb │ │ ├── baguqeera7gxsmhbdmzwv3fgp4naa5idang7hm6hupkxshvm34taqiakw4zvq.dag-json │ │ └── bafyreih7w5oijm4kksxrkuvpspuobxpfn5a6l2uerxyfpdfdjzrirlwaiq.dag-cbor │ ├── float--0.5 │ │ ├── baguqeeradmd3bt72bm7vs226asfqcfiwrcdmyumd3viymvnvkfpolxo2y3iq.dag-json │ │ └── bafyreidgf3tgrdkimspjianeb4i2ilrhwrd72drroivhom32cegkxisoay.dag-cbor │ ├── float--1.1 │ │ ├── baguqeeraop2zowbt65hyvdvn2t4xje3i7b2gkbtydsckfhhjj5ixrtpq5oma.dag-json │ │ └── bafyreibn43uo5yygsnzbdj6eey2mrcrmavhxgkzvgnmarkt3mo2efr4cfy.dag-cbor │ ├── float-1e-323 │ │ ├── baguqeeralkvxfq2l7znrayirso72iwqx4hi6fq5dmzxvswdeto5n2a55ej5q.dag-json │ │ └── bafyreib6bigeneyagim45hjjzzn3ggyuthejspqqccplri2pmmek5bz2uq.dag-cbor │ ├── int-1000000 │ │ ├── bafyreiglx3aucayuplysf7vp6jazvwef2nznas75tufpc4kn2ig76jfw4m.dag-cbor │ │ └── baguqeeranthdnwpyvhqvdmiaenfpoxgkrhkvxs4uyfj7kgch3267d444vzcq.dag-json │ ├── int-65535 │ │ ├── baguqeera6l4j5xuopvft2isd32q4vfvy5tsw66jychmxbc2kaga37anfaaiq.dag-json │ │ └── bafyreicft66te6utk6chakwkgyqxirmsh6dzjyi34c4kf2pzwpvjxaaose.dag-cbor │ ├── map-1_pair │ │ ├── baguqeeraafnl2724yv5c3wklowipaswybbbhhec64m7mltv6vzrco2ux7bra.dag-json │ │ └── bafyreihltcnuuyqp2jm24aqydpnlj7b6w3ogwrplomrjtg5rifv44mmjey.dag-cbor │ ├── array-3,4,5,6 │ │ ├── baguqeerazwaj2gukf64chujcb3lhbnndbpx4kssdjcfp4f7pbkkmlrd5ohtq.dag-json │ │ └── bafyreid7y3kwce6omkwi4ziyisf5v2niknzjwab2ofigddwm3bq4xlnovy.dag-cbor │ ├── dagpb_Data_some │ │ ├── bafybeibazl2z4vqp2tmwcfag6wirmtpnomxknqcgrauj7m2yisrz3qjbom.dag-pb │ │ ├── baguqeerajwksxu3lxpomdwxvosl542zl3xknhjgxtq3277gafrhl6vdw5tcq.dag-json │ │ └── bafyreieculsmrexh3ty5jentbvuku452o27mst4h2tq2rb2zntqhgcstji.dag-cbor │ ├── float--1e-323 │ │ ├── baguqeeracte7heowtgtjzivjekic4rkwan2kii6fmz3enl5i33oafvnwfwyq.dag-json │ │ └── bafyreibg2jfpbjanaowwfpoamj2tjpo2ifhy5fbkln55b5mlhfiy747egq.dag-cbor │ ├── map-1_pair_rev │ │ ├── baguqeeracp3z5isr4gpufnhd7pf7kj3g3ye5zqjoaw2w4vziudcg4jkziikq.dag-json │ │ └── bafyreierz7t5y4xa635mndfb2i7wu2zxzfnpl6xvg5wr2kxeambtrgvsuy.dag-cbor │ ├── bytes-a1 │ │ ├── baguqeera2te22lsmu3vdcg54oi6srd7wkuo3h6tmyvswwakaccayyv6m4tza.dag-json │ │ └── bafyreidfn5bivgcww7slkgp7f5iiukoggxr542m4pzl3zn3oia7ozt7ffe.dag-cbor │ ├── dagpb_simple_forms_1 │ │ ├── bafybeia2qk4u55f2qj7zimmtpulejgz7urp7rzs44cvledcaj42gltkk3u.dag-pb │ │ ├── baguqeerabji5n2rfqif4kflih4r2tyl2jz3n3met5nys2wawsfihvc3guqta.dag-json │ │ └── bafyreiahe732takf4lhvcjrpeycxs2sccncd7zd5frj5w2hmmyhnokfwsy.dag-cbor │ ├── int--2784428724 │ │ ├── baguqeera3kxfhk4svgchnaltrgtr6zhqheybpxsptkvf43byc5nht5wgxu2q.dag-json │ │ └── bafyreiegsmviy5gqtupkwtz7d4driei2jzbf4tg3yldpc6ralqjukiywru.dag-cbor │ ├── int--9007199254740993 │ │ ├── bafyreicb5jhmhsjiazef7gbina6ozd2er7jugqaapmhvbhvubjc6ech2ie.dag-cbor │ │ └── baguqeerapv5k6hghxidzpxmfnypub7e7hxia24fus7rs7nsjh6vklb5zaq2q.dag-json │ ├── int-2784428723 │ │ ├── baguqeeraqd7q5jz4bytomeikdvakzzt3qbjkcrczafx3gu6s6t2c244goziq.dag-json │ │ └── bafyreiga5hy6mxnej7eankwq2zi7echorwp7wfkoeto6l3262rxn24r65m.dag-cbor │ ├── string-Hello world! │ │ ├── bafyreigmgu7icw3p3lf3prtti7x3o7vsc6e5peltjinsa7zni2axvlz5cm.dag-cbor │ │ └── baguqeeratz333n5xwz564v76cckgvqbhly4fqxdirlhehhmw3axl64ocmsla.dag-json │ ├── string-Čaues ßvěte! │ │ ├── bafyreigxqkzjak6m4vnenitdpwfryihbvy3wotdle2ldsfgkebeh56ruda.dag-cbor │ │ └── baguqeeradlrdqvxqd3cbbbtsmn7n4mpadvtqvcvj2ggkcf6mx76jzsrxzboa.dag-json │ ├── dagpb_Links_Hash_some │ │ ├── bafybeia53f5n75ituvc3yupuf7tdnxf6fqetrmo2alc6g6iljkmk7ys5mm.dag-pb │ │ ├── baguqeeraumofom6evitwofvbunn2ocdqw5vxl7wnfxdjyqr5m6h2zgtnselq.dag-json │ │ └── bafyreico7im6nfzt2euwvdrs62ylgx2w6fmjdrxl2zaz5up5uhqwgwsnhe.dag-cbor │ ├── int--6433713753386424 │ │ ├── baguqeeran4ulgjno74x4h6ltzdg5g4yq7rgc4wnhmqhrs4ae76yibbtdjktq.dag-json │ │ └── bafyreickfy6hbb7xz6eiervs4n3jkmnzc2ndbh4flg2jmbz4whoflbdbnm.dag-cbor │ ├── int--9007199254740991 │ │ ├── baguqeerajsjturllxdzotcklfufsmsaehhgxfvjpxcrhzp4p27zsh4rmpakq.dag-json │ │ └── bafyreifyx757rmvmwx42wig6lkhgpe2hikvsfu5d7ru55fyhugqoq2leii.dag-cbor │ ├── int--9007199254740992 │ │ ├── baguqeeraqpqqtp6x7neyjnd2i3zwgyt4ddn327sx4nvqlicm2frngbg7oluq.dag-json │ │ └── bafyreictwassa7oj2p67275p5xztivqa3zcspn3zrilgohy3jwrv43klkm.dag-cbor │ ├── int-6433713753386423 │ │ ├── baguqeerahcqj2m4gchiq7ldwio6lw2js2b5o73th43sw2ulioqxsrlmf5voq.dag-json │ │ └── bafyreie2fdkdrtj4mmdpcryivf4uuvirpz6ehzgmt2w2ks6s6qsrlj4k3a.dag-cbor │ ├── int-9007199254740991 │ │ ├── baguqeera6qfuepbn3fp7fmxqe7rcechuhdhxequgfzphi2da42ltbde23uta.dag-json │ │ └── bafyreiau6uboriydiauixhnjr3kv3hzdbsfjf3uggnqzrx3ndnhcpdz5dy.dag-cbor │ ├── array-6433713753386423 │ │ ├── baguqeerartozez7h34sfzszo3gpcu6mjql5zd57mh6qhmcwf4enmgtukce7q.dag-json │ │ └── bafyreifflym5ibfezh3vwegpsh6hngjeczrjw35a7fsgsfqui4vgy2eawu.dag-cbor │ ├── array-9007199254740991 │ │ ├── baguqeeraz4galcrwm4zgvo744npzhwyv3xvbvsaw6ewbtjsun56dragozqoa.dag-json │ │ └── bafyreifjs6kz3aq24pywi7mdrizazmzdsvu3jtd7uut64lvj3mblk2byaa.dag-cbor │ ├── float-0.9999999999999999 │ │ ├── baguqeeraclkrsheftxvmt7xg73fooogsiwf5bbmvd3auq37l3aqmd5qy6fza.dag-json │ │ └── bafyreigjp6bt6yhk2nxlvxhvy3mfoxs4sxslnnzzgbbxc2tailmnuic37i.dag-cbor │ ├── float-1.1111111111111112 │ │ ├── baguqeeratkqazgwpbo5npzbafr6wmdgowpy4g633gb5gudyuo3y465bzyqtq.dag-json │ │ └── bafyreifj6tfoswmsty24t4ittpwdnzaj6tka7637gdjrrly6q5msu6eooq.dag-cbor │ ├── float-82497.63712086187 │ │ ├── baguqeeraf22bm57rmsotbj67zc7x6jx3czxuelemhtjvbpsjmibxjyavbw3q.dag-json │ │ └── bafyreibybbnywxrykhqdulrhywkofxds5tw5fye6geudy2us3pgw2ptgnm.dag-cbor │ ├── int-9223372036854775807 │ │ ├── baguqeerawnfbymfhcx3l7c3siox2p6vyqphdmevxemlrnpolxxazqlq25uuq.dag-json │ │ └── bafyreih2npqkh2altk6fydcmxj4kibc6qj5p44r7jnktdw22txixdi2qli.dag-cbor │ ├── cid-bafkqabiaaebagba │ │ ├── baguqeerarlku7yrcztgkqfowmc5lzvjnavntg2xuwkr6j5lpczxipwxizmma.dag-json │ │ └── bafyreihm764rs4lirtozq4d5d4pqext5b5akh6val7cyphu4aglvpha3xm.dag-cbor │ ├── dagpb_Links_Hash_some_Name_zero │ │ ├── bafybeie7fstnkm4yshfwnmpp7d3mlh4f4okmk7a54d6c3ffr755q7qzk44.dag-pb │ │ ├── baguqeeraodk4mmutpv6bqhjd3kx5oicgnxq365lxu7h3orewh54avtttmzca.dag-json │ │ └── bafyreigtcfxx5v7f4gdcbnouvhpwgfjmhh4pqgeu3sznfm6y4ql62g4urq.dag-cbor │ ├── dagpb_Links_Hash_some_Tsize_zero │ │ ├── bafybeichjs5otecmbvwh5azdr4jc45mp2qcofh2fr54wjdxhz4znahod2i.dag-pb │ │ ├── baguqeerac5ccyh6acqr3kdi5djstwzlu36uprk2dbi4f36ntlafquwthxm7a.dag-json │ │ └── bafyreia2x5mgcqwslci2apn3d5t6ptnknbw4jmnedjkynp6jxjdxb7bvcq.dag-cbor │ ├── float--0.9999999999999999 │ │ ├── baguqeera7g7rcxbk5fadm5g4ecmvllvetuuzrmogxmrmkf32b3wboxlqfpkq.dag-json │ │ └── bafyreibmiakyxlz24yia56ipz27movs5zv6js456jvqhpyjluhycsitl34.dag-cbor │ ├── float--8.940696716308594e-8 │ │ ├── baguqeerabhb35s3mtnhsye24f6322jzfiyogcxg5ouxfulwrkrkkvdpwbdqq.dag-json │ │ └── bafyreideyqdtlnfu53gvyrlg7fsqrx5bk4v2lxmgwzfnfxi23wlyxm43ta.dag-cbor │ ├── float-8.940696716308594e-8 │ │ ├── baguqeerahgvoivj35tc6ejtkj5jxnbwfe2nwmdhdtdxqqg2qmurlh3qsco5q.dag-json │ │ └── bafyreie6fuw4lkhwfiljun5k4y5srv6io7rcf4r766amlxtmx3it2hwg2e.dag-cbor │ ├── float-array_of_specials │ │ ├── baguqeeranbypiyrspgq3dw6steqf64bal5xbwfmvjvmzydkumusemokp44bq.dag-json │ │ └── bafyreibqkv642umtthvkk4siz2x27eqwugyitsjsgbc65ffmtajiag4b64.dag-cbor │ ├── int--11959030306112471732 │ │ ├── baguqeera7wvij7ilupcksz2iuprb3wbcipr5vqzvvzj26psnj2oky6j7spva.dag-json │ │ └── bafyreieir43khjzemsmgahaozab2vjvtdxavszixhhurvdqg2xkhrwinyi.dag-cbor │ ├── int--9223372036854775808 │ │ ├── baguqeeraqu4gi57tv5d6jiftbdxdwotirxyw5czcfaif3v6u3tkcvgahzn4a.dag-json │ │ └── bafyreidh4mvwi7pnv62beigtnibakkxpsgjzua5g7kdvu2deltah6kigay.dag-cbor │ ├── int-11959030306112471731 │ │ ├── baguqeerajogb5uql6gilrcfykgsqh6yjdj65vptw7woitskev6dli6bxohga.dag-json │ │ └── bafyreifystp4hw2d3psdtqoairwnsl4mmb2hyupopdp7wxvrxul2cdadbe.dag-cbor │ ├── int-18446744073709551615 │ │ ├── baguqeeraftnsmjs3jxdf4o2e22kpcip5nxuzxhslrlt7bdmex6uvg5rvvzbq.dag-json │ │ └── bafyreibnpsyje7iwfx3smzlnofkxqdyeqz3a4qzhwu33ktibq7sxeckrpq.dag-cbor │ ├── dagpb_Links_Hash_some_Name_some │ │ ├── bafybeifq4hcxma3kjljrpxtunnljtc6tvbkgsy3vldyfpfbx2lij76niyu.dag-pb │ │ ├── baguqeeras44ncqauojywh67izb3d5j7rjbgdscdfsglzaex3envlwzq3lvxa.dag-json │ │ └── bafyreigi3x5lx7auupkm3z27b5emluvkrv3mwpq35244zy4cnqjplyr2fi.dag-cbor │ ├── dagpb_simple_forms_4 │ │ ├── bafybeieube7zxmzoc5bgttub2aqofi6xdzimv5munkjseeqccn36a6v6j4.dag-pb │ │ ├── baguqeera3rnjnzebgxuygpqphmofp75upufi7linvrthm2r4cyiibafftqrq.dag-json │ │ └── bafyreifw5gwkcd4ck7o7xhxoff33kqpbs6uwznmxbxb6ez6h77zz6gj5ca.dag-cbor │ ├── array-5-nested │ │ ├── baguqeera7mqnrv3sxsqeaxf23poe2lyztcxjomr7alr2oapf7slfdrr5ai7q.dag-json │ │ └── bafyreihmxfmn5wcpzpiqa6zfefgabxmd2jzr2bd4y2v7c2ss4plkgkabgq.dag-cbor │ ├── map-nested │ │ ├── baguqeeraf5gk7lfzh2l2hgbsqiv5z4oj5kxhnv6keki7zvcsont3ejnou4bq.dag-json │ │ └── bafyreib7zq4mhl7fwtmftjn7d7mmlwf6gi32vimlsjkn25w2e5xlhz2deu.dag-cbor │ ├── dagpb_simple_forms_3 │ │ ├── bafybeidrg2f6slbv4yzydqtgmsi2vzojajnt7iufcreynfpxndca4z5twm.dag-pb │ │ ├── baguqeeraas77sl6e3odguo3gfdarftcqqnarlh7kae7vnleh7zzmswnztzpq.dag-json │ │ └── bafyreibeevwwdfmicvdswiaetz62wtlj5nqe7idei2tn2irhco5k37js3y.dag-cbor │ ├── dagpb_simple_forms_2 │ │ ├── bafybeiahfgovhod2uvww72vwdgatl5r6qkoeegg7at2bghiokupfphqcku.dag-pb │ │ ├── baguqeeraibdu3hqnftoo7zlwqzcsk3pw4sf6epneqziyf7oehsde7ykbxula.dag-json │ │ └── bafyreibpoilwc75tlwglfzlziunq65l6arvzwwrhikal5kwlens6ql53ky.dag-cbor │ ├── cid-z8mWaJ1dZ9fH5EetPuRsj8jj26pXsgpsr │ │ ├── baguqeeralmwcgg3knsdtmks5jrpsnbkpzzhourbfcwgpxkxs37syppsw54tq.dag-json │ │ └── bafyreiemoe3mh3uanvjypqyrousnwapnluxnmt5lorlhzguj5nvmgjdthi.dag-cbor │ ├── dagpb_1link │ │ ├── baguqeerao7xjffeobbqa2zv43ltxadt6pa4f3c2eh4ufsfudbazsmgb55dza.dag-json │ │ ├── bafybeihyivpglm6o6wrafbe36fp5l67abmewk7i2eob5wacdbhz7as5obe.dag-pb │ │ └── bafyreib4mhhkmom5wxnp2hmcjeabbcmzybdiewehujwu73ndvns42zdt4i.dag-cbor │ ├── map-keysort │ │ ├── baguqeeraiqj4qsbirp34qohua5y4veoy7idxot4yh6r2qghoxisadibfwbgq.dag-json │ │ └── bafyreifzcy56s5jog3scrc7c3rlaohrwu3recxgf5c7fddfjlnlhh6p6p4.dag-cbor │ ├── dagpb_Links_Hash_some_Tsize_some │ │ ├── baguqeera5drb4r7jf33wkkhs4dvxqsyacnxvv7djbzylt4ib2t42qk4qqkxa.dag-json │ │ ├── bafybeiezymjvhwfuharanxmzxwuomzjjuzqjewjolr4phaiyp6l7qfwo64.dag-pb │ │ └── bafyreidfgtcksdb5gn4jn2eggnqkktnahqzmvprrv7pakqmiwz25aej62y.dag-cbor │ ├── cid-QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY │ │ ├── baguqeera6yza2lamkvlohaytwwccgqrswciqhuglte7qta4vfjuwia5xkxvq.dag-json │ │ └── bafyreidsrf4agofvag5iiksjc7jjehhdcjqggra7cxe3m2movopc7pomr4.dag-cbor │ ├── cid-QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL │ │ ├── baguqeerahpjisfiuqb5vifrkdpz4yzvhfsdt2agktamof2lvg55zssdclq7a.dag-json │ │ └── bafyreidfkreyekhbpfbbau3o4aakvxk6ninfo7baileo7ezgjiunk66er4.dag-cbor │ ├── cid-QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V │ │ ├── baguqeeragkmsqdjvsmershik24tc5kwcgmh6wyahxdzlqi7vrblz4jjsjnfq.dag-json │ │ └── bafyreidqpmseqxbqp3fwb256fmqg4glepd4wfn5ubei7jlcvxpfy7bshge.dag-cbor │ ├── array-mixed │ │ ├── baguqeera4iuxsgqusw3ctry362niptivjyio6dxnsn5afctijsahacub2eza.dag-json │ │ └── bafyreidufmzzejc3p7gmh6ivp4fjvca5jfazk57nu6vdkvki4c4vpja724.dag-cbor │ ├── cid-zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDS │ │ ├── baguqeera5oa5xf5w42rgmvkavdpbnt6lhkgmpudiqur6ucwyy7jmfe3fykta.dag-json │ │ └── bafyreicrcxd4oefvax3uw7gshyen7bbj2vno3drylsnp3int5p6wdesoqq.dag-cbor │ ├── cid-zdpuAtX7ZibcWdSKQwiDCkPjWwRvtcKCPku9H7LhgA4qJW4Wk │ │ ├── baguqeera7kdvvxhvje4nflfnecqaxur2qd6hghlkxfhgaz4bbmig5r4itgwq.dag-json │ │ └── bafyreib6okxebjb65dd5i7nu2johcro6wpxxxvt5ykuusyky7763w2ypnq.dag-cbor │ ├── cid-bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4 │ │ ├── baguqeera5c374arbqlbujh5m6goc3fnxmi6y7ksn6mdnbonnakmwvqszxqia.dag-json │ │ └── bafyreic3yrxqeqgoi24fo3h43nfkfs4cntcx243g3lzv3n2hnmcm5ksnzu.dag-cbor │ ├── cid-bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke │ │ ├── baguqeeraidhbr47r5gvx64lz5rzpi5wcnqavzgeqoycpag2binbbq2htyl7a.dag-json │ │ └── bafyreicsrmbdimdekusleiafgsuwpsvijhmqtecucyxysgcftnptepbb2m.dag-cbor │ ├── cid-bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm │ │ ├── baguqeera7sbeilm63szrewp5opgwrnjrae4wzsrnom67vpugro7dgsi2iana.dag-json │ │ └── bafyreihfnilmqbnwzcmqrspmmyik5qdocjdrf3rnkuxb2aanrh2qycf6wy.dag-cbor │ ├── cid-bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q │ │ ├── baguqeeradow3qosni2sx336td3elm77dozktr3rsuemz5mio5s55zmvjk2ia.dag-json │ │ └── bafyreif4kmuaiu3fuqmdkb6e7vfdz7x6c2sqjybc5bz3l6b2vnj5e5xjl4.dag-cbor │ ├── cid-bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq │ │ ├── baguqeeraf3abbztiyzwvxvrxz273hx3yo36kifwgiyty5ox4f2zoezvhpz2a.dag-json │ │ └── bafyreidvvetydwcmpvymr34rqmz6cu4yhi7jluds6n5yyyqdllssa4jcom.dag-cbor │ ├── cid-bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa │ │ ├── baguqeera5jiw3keif37pw2bta4s5ayrgn73qt3cyn5l7c7h3p6lvaiifhmea.dag-json │ │ └── bafyreicwwufftyxxvvbolsj2svwvc3zzo7u23j2hz27edffxzazlhistjy.dag-cbor │ ├── cid-bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea │ │ ├── baguqeeram352tvlwv6ysybxyemcxnnbmcnmp5n5w6xkba5kzssew2ocnhc4a.dag-json │ │ └── bafyreigyego6qj7uxt5dtmpznwi3mtwz7l5hf7m3udmsvkd2ps2gbmjzs4.dag-cbor │ ├── cid-bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa │ │ ├── baguqeera5iayx6m23rrlvkigcbzjy22mx7uqb6femvf45disg4jszkmehwmq.dag-json │ │ └── bafyreias54gwjsb5z4v3amftdd5h6ufcpuk3zci7klphqoyyjmv52g4uie.dag-cbor │ ├── cid-bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa │ │ ├── baguqeeraqvq6hotrzxlpgarx5am6klvbnzglzu37dzcjenms7megi5ydxlca.dag-json │ │ └── bafyreiboefkuukdnjhy5sy2ekybhp73yheoy3uj5n36hal6tckhflmp2ye.dag-cbor │ ├── ipns │ │ ├── bafyreifxsv6jggzwuh72ta3mx7m74nwyqfyd5qfld6sqje6myesc7er7o4.dag-cbor │ │ └── baguqeeralw2u2jrkvcvuuxkfr3jsd7femhfiyiobxwawpnemtydyoa37xqaq.dag-json │ ├── cid-mapof │ │ ├── bafyreig3vhfwxvxnfj77kzmwqkxm7uncmbhjkuqmfhfdnq4p4ikvoen6pm.dag-cbor │ │ └── baguqeerascicdb4rnbbuu42mlf72eio3ofwpwert74daullms4pabnsdzufa.dag-json │ ├── cid-arrayof │ │ ├── bafyreidhjbzws7yyooefukqt4xvbrctkz5pj5c7dnhdea6nepemymhkccm.dag-cbor │ │ └── baguqeeraqcw26pvoc6mesw7zrnz7bpqmfe7m4agdarke2nytwbqn7kuszdcq.dag-json │ ├── garbage-00 │ │ ├── bafyreidhegn4opkma565fyy5nod2omdq66m3px7yl4y7vjmk5mwve47riu.dag-cbor │ │ └── baguqeerablaqfj5o7hwvg3lfof67zknschxmjvyliym3jpb3w5tk3hd3mm6q.dag-json │ ├── garbage-01 │ │ ├── bafyreigq7pmxw36l6hjw35bign4l5slwf7qvf5hfnhv2gizst73g5b25jy.dag-cbor │ │ └── baguqeerathd2vkpzctg7undspq6glqkwvjkbu5djlaa7mwphztm2vc6budaa.dag-json │ ├── garbage-02 │ │ ├── bafyreigv2qjdrwbwfrqaamyjgka7c5htkb6vzb5y4h4k7u4aeslnjzqy6m.dag-cbor │ │ └── baguqeerany7g4t4n4uhluzo5cmp6q5njzp3oenom5hxo3tmryymx5ukm6rzq.dag-json │ ├── garbage-03 │ │ └── bafyreifklmnun4gpoen7qyzofv7fwwx5hb55lmrnzwg5mrofh63sllk74u.dag-cbor │ ├── garbage-04 │ │ └── bafyreiahi3k3wxsujcee3zlwwltjussu7gkqpm6iqevie2nciqsbr4etmy.dag-cbor │ ├── garbage-05 │ │ ├── bafyreihyzj6xni5ywr67oc5hepbnjapfu4xl5jk27afsn34dl3povgfgum.dag-cbor │ │ └── baguqeera5zopt4schs3rycbuvccqv5m7bppckzjnwfomrrr3wcilhol7qmva.dag-json │ ├── garbage-06 │ │ ├── bafyreiacig7uemck5umaiv4uje4yzig3wlarenlvch4qya7s43vodjngdm.dag-cbor │ │ └── baguqeera7ifa6iw5re6bbawuvrditz6ptjkrco6gindvicfza4pd757halna.dag-json │ ├── garbage-07 │ │ ├── bafyreifllkpkf6fo3t64ktpxhr2jrq4zwsspo6iqdwr77yqfalyiflhu7y.dag-cbor │ │ └── baguqeera46oi626a75opm7oddpgbiiruhmm5zajatdqboucrwgi2vorhy7aq.dag-json │ ├── garbage-08 │ │ └── bafyreig76mgs7l5gktz3fbghjrxckoqjdousfpcuq5za7desm3pm56kkda.dag-cbor │ ├── garbage-09 │ │ ├── bafyreiczllyuhjfui5taiik35z743nflfa3owxgwcrpmknycsbfbd6tp2u.dag-cbor │ │ └── baguqeeran7koa4w73vwtwmwcoz2x5cfvyiqmu56du5gth3gvncq7jdcxpafq.dag-json │ ├── garbage-10 │ │ ├── bafyreigv3itfdn26cz7rfndmedrfrtk3dpn27hncdhsk6fv2dq5awwvhzu.dag-cbor │ │ └── baguqeeraai6cp2lkcf3hyp565g6z4d7u7kqt2ma46pi6uv2bsvsbh4kzdbea.dag-json │ ├── garbage-11 │ │ ├── bafyreiejnkxl7w7b6lki2xkle6kej277tqp4nbjzi2f5wbc3yntd23a52q.dag-cbor │ │ └── baguqeera7ysla3cvb5j4znemisd4nj7aucaamc3k7bgahptsoxe73kwen46q.dag-json │ ├── garbage-12 │ │ ├── bafyreicv35bhaqcpzhnggxg7va7sgfg7t4ddzlx2pj5c57lxyrtv3zhcdm.dag-cbor │ │ └── baguqeerabppcmbx4xz5addmuf4r6223r2cgoxpapg4ogds4sdokms5xqxpmq.dag-json │ ├── garbage-13 │ │ ├── bafyreiftf4wf2vmynw7lxwnqhimv34fmcdpohdotjluhi7u52uqyr3tguu.dag-cbor │ │ └── baguqeeranltzith34nf3wnxgq6f3wlefmz5vbarepvwvt7qskgvqs6u6ddia.dag-json │ ├── garbage-14 │ │ ├── bafyreic5d2sckqoqooj4j4pyh7asiascg5kv3thmt3kwalj6zqqvv3tbj4.dag-cbor │ │ └── baguqeeragzij6achvalac4fmb2oplhyhvqnfdglqtesgrwd7zilyqupe3fwq.dag-json │ ├── garbage-15 │ │ ├── bafyreiakca7phdccv7qymkxlezjvhnbthemfiz5s7ii3zrrmqfxggzspma.dag-cbor │ │ └── baguqeeraco4uqcqqhr3miz5ncuzrkzmno3egnhxxslpfwlok7exyrfzuty7a.dag-json │ ├── garbage-16 │ │ ├── bafyreifezesrhv2arou5xyxhst25w62heatiwrdedxlrauaempvbjludtq.dag-cbor │ │ └── baguqeeraxjur4srzwvoznmk6j67r7b7xfasxmat3lgt7rbxljfisd5ffxwva.dag-json │ ├── garbage-17 │ │ └── bafyreic7q3tnctze3nmouhal375cmsq76eayfsqp62srlxjb5d2j3ym5ze.dag-cbor │ ├── garbage-18 │ │ └── bafyreibpbcrbcqof2v2jvjmjkmbc5y2n66xarj6wniro3acgphnwwypu3m.dag-cbor │ ├── garbage-19 │ │ └── bafyreidvxzs4nhx4cahig7rkn5z2vq4p3amlpaj7asqpxueshesonkrvza.dag-cbor │ ├── garbage-20 │ │ ├── bafyreidqudcqpkeqgylnqpzug75jah3lbk3rqu45cezvvncyfhrg4aodae.dag-cbor │ │ └── baguqeera4qspnpinuasdl3mssik3vrplbjmphf6qucpjslbevuae6hmprulq.dag-json │ ├── garbage-21 │ │ ├── bafyreidmfepyo74jzm562xvcgdzhexzdq7tracmtetx6ojyuo4gtnz27j4.dag-cbor │ │ └── baguqeeraja5vezxmb3ekptrp3glfwtgaqvju4plhsicqitdg6etc4wlw6amq.dag-json │ ├── garbage-22 │ │ ├── bafyreibjeqkkrupx67ngfmcjfv3qg5sa2zroqlokhg4bhmymgrcpzbjw7q.dag-cbor │ │ └── baguqeerahwdk4qndsyfxiidt7ymfw2hnizsmksugm36r2sksm3i3feg3435q.dag-json │ ├── garbage-23 │ │ ├── bafyreig2hp5sjw4zyach3pvb7juq6rgsy6iwvuessve3xoaa7a3wfhmuum.dag-cbor │ │ └── baguqeerarpl3bcpwvhudy5hnalwa53zw3wyovftg6kejysegw4hhuxde27na.dag-json │ ├── garbage-24 │ │ ├── bafyreig3fe66o7torlsuaphj7qzyouh3fb27attx5cbdxce77rhhajibmu.dag-cbor │ │ └── baguqeeravnry564cs43i4lg35ig23fwqu6vwgn6kyyd7ruaaztvufacjlooq.dag-json │ ├── dagpb_2link+data │ │ ├── bafybeibh647pmxyksmdm24uad6b5f7tx4dhvilzbg2fiqgzll4yek7g7y4.dag-pb │ │ ├── bafyreia4kjmr364wv7snvuffjjfx6e3ssyhcaxcv3mmewrm6lkg426ycpu.dag-cbor │ │ └── baguqeerasu2dlp3l3b6xswyh45iegkn3qamarjdygorldhucn3x4kfeafmpa.dag-json │ ├── string-long-8bit │ │ ├── baguqeera2lqzjgcpgqpn7ofg2fnbdovui73p3lqbcrd4kc7uywzxose55yoa.dag-json │ │ └── bafyreihqv76sm2eewjedoh2pdhefkvii4mkebleegrc5lu3rmdu4hbjli4.dag-cbor │ ├── bytes-long-8bit │ │ ├── bafyreiaalc4ruy26q4qdrdbjijh2vrecn5c6auefvoz5iyyxgsh7kcjsue.dag-cbor │ │ └── baguqeerabiuwx2krvxgwuufpkbrus3q7afzmqjofkqbfytqbnsgghzclwvwa.dag-json │ ├── dagpb_4namedlinks+data │ │ ├── bafybeigcsevw74ssldzfwhiijzmg7a35lssfmjkuoj2t5qs5u5aztj47tq.dag-pb │ │ ├── bafyreiagdu5zh6jtk3vnkyltyfpw6tyxtlp24bortutx6dggmmydno3gti.dag-cbor │ │ └── baguqeerapvtwnk5agczlqn7dgiyci5ku54llg32dmn3zvynn3dglte6y3s6q.dag-json │ ├── dagpb_11unnamedlinks+data │ │ ├── bafybeie7xh3zqqmeedkotykfsnj2pi4sacvvsjq6zddvcff4pq7dvyenhu.dag-pb │ │ ├── bafyreidjm3xk7rz2d2jap2dvgs54ifj473viuro5q5mfcpjm3rjf73s76y.dag-cbor │ │ └── baguqeerap7w3wnisyfaoyn6vdjbvhgvzfhqxlmnkpfo2cza3kol3sgiou7zq.dag-json │ ├── dagpb_7unnamedlinks+data │ │ ├── bafybeibfhhww5bpsu34qs7nz25wp7ve36mcc5mxd5du26sr45bbnjhpkei.dag-pb │ │ ├── bafyreidz4mncr25kzd3lakhmm56twyeauqpmrczheq4husqlfu4ificjy4.dag-cbor │ │ └── baguqeerab53i2tx2ktr3nbztcguof3pwadl6264yh5pt6h5ygxavlxghkkba.dag-json │ └── map-with_complex_entries │ │ ├── bafyreia3jgnpn6w3wpvdc7qlyv7rkqjmxrrdaqohtgmwwje5mbpcef6hkq.dag-cbor │ │ └── baguqeerayn5yb7xbzn7uohi4mji43ukajlmigatpoqskccsb6inxjkay44xq.dag-json ├── torture_cids.dagcbor ├── torture_nested_maps.dagcbor ├── torture_nested_lists.dagcbor └── semi_torture_nested_lists.dagcbor ├── .github ├── FUNDING.yml └── workflows │ ├── lint.yml │ ├── benchmark.yml │ ├── test.yml │ └── codspeed.yml ├── profiling ├── src │ ├── profiles │ │ ├── mod.rs │ │ ├── decode_car.rs │ │ ├── decode_dag_cbor.rs │ │ └── encode_dag_cbor.rs │ └── main.rs └── Cargo.toml ├── python └── libipld │ ├── __init__.py │ └── _libipld.pyi ├── Makefile ├── .gitignore ├── Cargo.toml ├── pytests ├── test_decode_dag_cbor_multi.py ├── test_cid.py ├── conftest.py ├── test_multibase.py └── test_decode_car.py ├── LICENSE ├── README.md ├── pyproject.toml └── CONTRIBUTING.md /data/roundtrip/roundtrip06.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip07.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /data/roundtrip/roundtrip01.json: -------------------------------------------------------------------------------- 1 | [null] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip02.json: -------------------------------------------------------------------------------- 1 | [true] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip03.json: -------------------------------------------------------------------------------- 1 | [false] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip04.json: -------------------------------------------------------------------------------- 1 | [0] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip05.json: -------------------------------------------------------------------------------- 1 | ["foo"] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip08.json: -------------------------------------------------------------------------------- 1 | [0,1] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip11.json: -------------------------------------------------------------------------------- 1 | [-1] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip15.json: -------------------------------------------------------------------------------- 1 | [1] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip20.json: -------------------------------------------------------------------------------- 1 | [0.0] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip21.json: -------------------------------------------------------------------------------- 1 | [-0.0] -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: MarshalX 2 | -------------------------------------------------------------------------------- /data/roundtrip/roundtrip16.json: -------------------------------------------------------------------------------- 1 | [2147483647] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip17.json: -------------------------------------------------------------------------------- 1 | [4294967295] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip22.json: -------------------------------------------------------------------------------- 1 | [1.2345] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip23.json: -------------------------------------------------------------------------------- 1 | [-1.2345] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip24.json: -------------------------------------------------------------------------------- 1 | [5e-324] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip09.json: -------------------------------------------------------------------------------- 1 | {"foo":"bar"} -------------------------------------------------------------------------------- /data/roundtrip/roundtrip12.json: -------------------------------------------------------------------------------- 1 | [-2147483648] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip10.json: -------------------------------------------------------------------------------- 1 | {"a":null,"foo":"bar"} -------------------------------------------------------------------------------- /data/roundtrip/roundtrip13.json: -------------------------------------------------------------------------------- 1 | [-1234567890123456789] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip14.json: -------------------------------------------------------------------------------- 1 | [-9223372036854775808] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip18.json: -------------------------------------------------------------------------------- 1 | [1234567890123456789] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip19.json: -------------------------------------------------------------------------------- 1 | [9223372036854775807] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip25.json: -------------------------------------------------------------------------------- 1 | [2.225073858507201e-308] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip26.json: -------------------------------------------------------------------------------- 1 | [2.2250738585072014e-308] -------------------------------------------------------------------------------- /data/roundtrip/roundtrip27.json: -------------------------------------------------------------------------------- 1 | [1.7976931348623157e308] -------------------------------------------------------------------------------- /data/fixtures/dagpb_empty/bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku.dag-pb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/fixtures/int--1/bafyreibwvht7dsk3ql73tf2d4dc4jtuv3a6juqykvrm7qtxtzp5lmfcqna.dag-cbor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/fixtures/int--1/baguqeeradowwxdhzoey7z2vykq7id53vogk7xmotnm3w52muvuopc5uzyrsa.dag-json: -------------------------------------------------------------------------------- 1 | -1 -------------------------------------------------------------------------------- /data/fixtures/int--100/bafyreiek7xrdy2ej7xqapz2iofeuwo4yl43xrklokxd3k5jwpkcmos4os4.dag-cbor: -------------------------------------------------------------------------------- 1 | 8c -------------------------------------------------------------------------------- /data/fixtures/int--3/bafyreiekgmp53zydf4z2ohq3fysx3aawny2i4ah4wf4rj5el3nl2drrqa4.dag-cbor: -------------------------------------------------------------------------------- 1 | " -------------------------------------------------------------------------------- /data/fixtures/int--3/baguqeeramfn52f6ckvxyf44ehexkqvl7rteiwa2qdr2z4iyjhkylfknvzvea.dag-json: -------------------------------------------------------------------------------- 1 | -3 -------------------------------------------------------------------------------- /data/fixtures/int-0/bafyreidogqfzz75tpkmjzjke425xqcrmpcib2p5tg44hnbirumdbpl5adu.dag-cbor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/fixtures/int-0/baguqeeral7wowzx7zbxtrwkspbwg22lmphbnxqrz3vhjdndhfhltuj73k7uq.dag-json: -------------------------------------------------------------------------------- 1 | 0 -------------------------------------------------------------------------------- /data/fixtures/int-2/bafyreig3yg2msah74sgvow25uxddqbabex3f3mh6hysess3w5kmgiv6zqy.dag-cbor: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /data/fixtures/int-2/baguqeera2rzv4orglylo5yb7lfyyxg25amazyb6yw3cr7eg2hjtg53atvm2q.dag-json: -------------------------------------------------------------------------------- 1 | 2 -------------------------------------------------------------------------------- /data/fixtures/null/baguqeeraoqru5gfp45ey7no26hzwvqwxrlgdhfde7fihao4magmjf6mcxefq.dag-json: -------------------------------------------------------------------------------- 1 | null -------------------------------------------------------------------------------- /data/fixtures/string-a/bafyreiewdnw5h3pdzohmxkwl22g6aqgnpdvs5vmiseymz22mjeti5jgvay.dag-cbor: -------------------------------------------------------------------------------- 1 | aa -------------------------------------------------------------------------------- /data/fixtures/string-水/bafyreib4565nbj4j6mklcrwjqgdv3uw4i6fr5dqb4dpqcqtsgrzeyg7hmm.dag-cbor: -------------------------------------------------------------------------------- 1 | c水 -------------------------------------------------------------------------------- /data/fixtures/true/baguqeeraww7kig3mmi7xycprx4snzlsy5ovtydg5scwzm26ehjc3isdh4evq.dag-json: -------------------------------------------------------------------------------- 1 | true -------------------------------------------------------------------------------- /data/fixtures/array-2/baguqeeraaoewnxu7nonjagzawtdmvczkiyaj73v6amn2xscc2q3jbqf4eivq.dag-json: -------------------------------------------------------------------------------- 1 | [2] -------------------------------------------------------------------------------- /data/fixtures/array-empty/baguqeeraj5j43immfovaya2uxnpzupwl4xwrfk2nryi3vbz4f4irmeqcxfcq.dag-json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /data/fixtures/bytes-empty/bafyreigdmqpykrgxyaxtlafqpqhzrb7qy2rh75nldvfd4kok6gl47quzvy.dag-cbor: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /data/fixtures/false/baguqeera7s6pczmqrxiyvhsj677spaibo3ny5h3dwq2see3uczsciure7cva.dag-json: -------------------------------------------------------------------------------- 1 | false -------------------------------------------------------------------------------- /data/fixtures/float-0.5/baguqeera2lf224p7gm66m7ih5rtw4njkw7zyeshlnheuffibk4ramb6fl2ca.dag-json: -------------------------------------------------------------------------------- 1 | 0.5 -------------------------------------------------------------------------------- /data/fixtures/float-1.1/baguqeerawbpcir3cwhshfpujve4abtb64mthiphmwvmyjpysqe5n3og6m3ia.dag-json: -------------------------------------------------------------------------------- 1 | 1.1 -------------------------------------------------------------------------------- /data/fixtures/int--100/baguqeeraxfvtantde5ytjeyi7o7f26r7h53czhuph3w5k6c3cp7telqf7woq.dag-json: -------------------------------------------------------------------------------- 1 | -100 -------------------------------------------------------------------------------- /data/fixtures/int--256/baguqeeral3yqlgtwwsyi4myxu7jqc2w23c2vmpesejnjca73w3beym4f6d5a.dag-json: -------------------------------------------------------------------------------- 1 | -256 -------------------------------------------------------------------------------- /data/fixtures/int--501/baguqeerauj7u5hvh53p5gieuicpcltpkspublw37bztjmmtvsjwta5wso53a.dag-json: -------------------------------------------------------------------------------- 1 | -501 -------------------------------------------------------------------------------- /data/fixtures/int-255/baguqeerasvllqjezzqfk7bvo47yneu7bprq3p33t2sfcsxzx3ghqrmcp7j7q.dag-json: -------------------------------------------------------------------------------- 1 | 255 -------------------------------------------------------------------------------- /data/fixtures/int-500/baguqeeraaycm2mjy73wsalxsspqgfwrpi4qpo6qf2jpoanvhuaojz7g5d4fa.dag-json: -------------------------------------------------------------------------------- 1 | 500 -------------------------------------------------------------------------------- /data/fixtures/int-65536/bafyreibjfaasdb7qgrdnd2pmg7noltevqzswyif5nyup6sktdanzgpft6a.dag-cbor: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /data/fixtures/map-empty/baguqeeraiqjw7i2vwntyuekgvulpp2det2kpwt6cd7tx5ayqybqpmhfk76fa.dag-json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /data/fixtures/string-a/baguqeeravsgygqv3wi3c2e7quvm2gyq3wqdqce3irfiwjnriuvhx7qz7yq6a.dag-json: -------------------------------------------------------------------------------- 1 | "a" -------------------------------------------------------------------------------- /data/fixtures/string-empty/bafyreiengp2sbi6ez34a2jctv34bwyjl7yoliteleaswgcwtqzrhmpyt2m.dag-cbor: -------------------------------------------------------------------------------- 1 | ` -------------------------------------------------------------------------------- /data/fixtures/string-水/baguqeeramndlngq22zwtjgdxrye2qsdo7k3dltx7clrq566p6jxb5zhgaywq.dag-json: -------------------------------------------------------------------------------- 1 | "水" -------------------------------------------------------------------------------- /data/fixtures/string-𐅑/bafyreihgpl6u5kyypvntwaijdv7wxeiuugo6ruujt652eigmp27zarclam.dag-cbor: -------------------------------------------------------------------------------- 1 | d𐅑 -------------------------------------------------------------------------------- /data/fixtures/string-𐅑/baguqeerakloumxm3cyyspmsadsj7edgbvpgttahpjgcfpqxpliq4hryzrxgq.dag-json: -------------------------------------------------------------------------------- 1 | "𐅑" -------------------------------------------------------------------------------- /data/fixtures/array-255/baguqeeraqu2ktsh23n37sd632fp4cmexypune5zki6s23wfygkoemrumjmra.dag-json: -------------------------------------------------------------------------------- 1 | [255] -------------------------------------------------------------------------------- /data/fixtures/array-500/baguqeeraqjtyxb73lijycba3pidm5fwai4arowgebxo6yd7rdmmdqqwjzqha.dag-json: -------------------------------------------------------------------------------- 1 | [500] -------------------------------------------------------------------------------- /data/fixtures/array-65536/baguqeeradd2npofdzz4gl4stit2bkixizy3dlvmqrfbjif3dwc6beh556mbq.dag-json: -------------------------------------------------------------------------------- 1 | [65536] -------------------------------------------------------------------------------- /data/fixtures/dagpb_Data_zero/bafybeiaqfni3s5s2k2r6rgpxz4hohdsskh44ka5tk6ztbjerqpvxwfkwaq.dag-pb: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /data/fixtures/float--0.5/baguqeeradmd3bt72bm7vs226asfqcfiwrcdmyumd3viymvnvkfpolxo2y3iq.dag-json: -------------------------------------------------------------------------------- 1 | -0.5 -------------------------------------------------------------------------------- /data/fixtures/float--1.1/baguqeeraop2zowbt65hyvdvn2t4xje3i7b2gkbtydsckfhhjj5ixrtpq5oma.dag-json: -------------------------------------------------------------------------------- 1 | -1.1 -------------------------------------------------------------------------------- /data/fixtures/float-1e-323/baguqeeralkvxfq2l7znrayirso72iwqx4hi6fq5dmzxvswdeto5n2a55ej5q.dag-json: -------------------------------------------------------------------------------- 1 | 1e-323 -------------------------------------------------------------------------------- /data/fixtures/int-1000000/bafyreiglx3aucayuplysf7vp6jazvwef2nznas75tufpc4kn2ig76jfw4m.dag-cbor: -------------------------------------------------------------------------------- 1 | B@ -------------------------------------------------------------------------------- /data/fixtures/int-1000000/baguqeeranthdnwpyvhqvdmiaenfpoxgkrhkvxs4uyfj7kgch3267d444vzcq.dag-json: -------------------------------------------------------------------------------- 1 | 1000000 -------------------------------------------------------------------------------- /data/fixtures/int-65535/baguqeera6l4j5xuopvft2isd32q4vfvy5tsw66jychmxbc2kaga37anfaaiq.dag-json: -------------------------------------------------------------------------------- 1 | 65535 -------------------------------------------------------------------------------- /data/fixtures/int-65536/baguqeerab4sv5qleqlbuh7ijtouwncddo6f6idobm2tik2y5i4haxsl4y36q.dag-json: -------------------------------------------------------------------------------- 1 | 65536 -------------------------------------------------------------------------------- /data/fixtures/map-1_pair/baguqeeraafnl2724yv5c3wklowipaswybbbhhec64m7mltv6vzrco2ux7bra.dag-json: -------------------------------------------------------------------------------- 1 | {"a":1} -------------------------------------------------------------------------------- /data/fixtures/string-empty/baguqeerackxdfsy6yawqd3ndlanre7a75y5q3rjvolwwxlzds4q2apmc4eta.dag-json: -------------------------------------------------------------------------------- 1 | "" -------------------------------------------------------------------------------- /data/fixtures/array-3,4,5,6/baguqeerazwaj2gukf64chujcb3lhbnndbpx4kssdjcfp4f7pbkkmlrd5ohtq.dag-json: -------------------------------------------------------------------------------- 1 | [3,4,5,6] -------------------------------------------------------------------------------- /data/fixtures/dagpb_Data_some/bafybeibazl2z4vqp2tmwcfag6wirmtpnomxknqcgrauj7m2yisrz3qjbom.dag-pb: -------------------------------------------------------------------------------- 1 | 2 |  -------------------------------------------------------------------------------- /data/fixtures/dagpb_empty/baguqeera6mfu3g6n722vx7dbitpnbiyqnwah4ddy4b5c3rwzxc5pntqcupta.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[]} -------------------------------------------------------------------------------- /data/fixtures/float--1e-323/baguqeeracte7heowtgtjzivjekic4rkwan2kii6fmz3enl5i33oafvnwfwyq.dag-json: -------------------------------------------------------------------------------- 1 | -1e-323 -------------------------------------------------------------------------------- /data/fixtures/map-1_pair_rev/baguqeeracp3z5isr4gpufnhd7pf7kj3g3ye5zqjoaw2w4vziudcg4jkziikq.dag-json: -------------------------------------------------------------------------------- 1 | {"1":"a"} -------------------------------------------------------------------------------- /data/fixtures/bytes-a1/baguqeera2te22lsmu3vdcg54oi6srd7wkuo3h6tmyvswwakaccayyv6m4tza.dag-json: -------------------------------------------------------------------------------- 1 | {"/":{"bytes":"oQ"}} -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_1/bafybeia2qk4u55f2qj7zimmtpulejgz7urp7rzs44cvledcaj42gltkk3u.dag-pb: -------------------------------------------------------------------------------- 1 | 2 |  -------------------------------------------------------------------------------- /data/fixtures/int--2784428724/baguqeera3kxfhk4svgchnaltrgtr6zhqheybpxsptkvf43byc5nht5wgxu2q.dag-json: -------------------------------------------------------------------------------- 1 | -2784428724 -------------------------------------------------------------------------------- /data/fixtures/int--9007199254740993/bafyreicb5jhmhsjiazef7gbina6ozd2er7jugqaapmhvbhvubjc6ech2ie.dag-cbor: -------------------------------------------------------------------------------- 1 | ; -------------------------------------------------------------------------------- /data/fixtures/int-2784428723/baguqeeraqd7q5jz4bytomeikdvakzzt3qbjkcrczafx3gu6s6t2c244goziq.dag-json: -------------------------------------------------------------------------------- 1 | 2784428723 -------------------------------------------------------------------------------- /data/torture_cids.dagcbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/torture_cids.dagcbor -------------------------------------------------------------------------------- /profiling/src/profiles/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod decode_car; 2 | pub mod decode_dag_cbor; 3 | pub mod encode_dag_cbor; 4 | -------------------------------------------------------------------------------- /data/fixtures/bytes-empty/baguqeerackat3qjvp3wd4jnmm7afadwt2ahpjxqbj7pzxocc4kges5lkkqgq.dag-json: -------------------------------------------------------------------------------- 1 | {"/":{"bytes":""}} -------------------------------------------------------------------------------- /data/fixtures/string-Hello world!/bafyreigmgu7icw3p3lf3prtti7x3o7vsc6e5peltjinsa7zni2axvlz5cm.dag-cbor: -------------------------------------------------------------------------------- 1 | lHello world! -------------------------------------------------------------------------------- /data/fixtures/string-Hello world!/baguqeeratz333n5xwz564v76cckgvqbhly4fqxdirlhehhmw3axl64ocmsla.dag-json: -------------------------------------------------------------------------------- 1 | "Hello world!" -------------------------------------------------------------------------------- /data/fixtures/string-Čaues ßvěte!/bafyreigxqkzjak6m4vnenitdpwfryihbvy3wotdle2ldsfgkebeh56ruda.dag-cbor: -------------------------------------------------------------------------------- 1 | oČaues ßvěte! -------------------------------------------------------------------------------- /data/fixtures/string-Čaues ßvěte!/baguqeeradlrdqvxqd3cbbbtsmn7n4mpadvtqvcvj2ggkcf6mx76jzsrxzboa.dag-json: -------------------------------------------------------------------------------- 1 | "Čaues ßvěte!" -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some/bafybeia53f5n75ituvc3yupuf7tdnxf6fqetrmo2alc6g6iljkmk7ys5mm.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | U -------------------------------------------------------------------------------- /data/fixtures/int--6433713753386424/baguqeeran4ulgjno74x4h6ltzdg5g4yq7rgc4wnhmqhrs4ae76yibbtdjktq.dag-json: -------------------------------------------------------------------------------- 1 | -6433713753386424 -------------------------------------------------------------------------------- /data/fixtures/int--9007199254740991/baguqeerajsjturllxdzotcklfufsmsaehhgxfvjpxcrhzp4p27zsh4rmpakq.dag-json: -------------------------------------------------------------------------------- 1 | -9007199254740991 -------------------------------------------------------------------------------- /data/fixtures/int--9007199254740992/baguqeeraqpqqtp6x7neyjnd2i3zwgyt4ddn327sx4nvqlicm2frngbg7oluq.dag-json: -------------------------------------------------------------------------------- 1 | -9007199254740992 -------------------------------------------------------------------------------- /data/fixtures/int--9007199254740993/baguqeerapv5k6hghxidzpxmfnypub7e7hxia24fus7rs7nsjh6vklb5zaq2q.dag-json: -------------------------------------------------------------------------------- 1 | -9007199254740993 -------------------------------------------------------------------------------- /data/fixtures/int-6433713753386423/baguqeerahcqj2m4gchiq7ldwio6lw2js2b5o73th43sw2ulioqxsrlmf5voq.dag-json: -------------------------------------------------------------------------------- 1 | 6433713753386423 -------------------------------------------------------------------------------- /data/fixtures/int-9007199254740991/baguqeera6qfuepbn3fp7fmxqe7rcechuhdhxequgfzphi2da42ltbde23uta.dag-json: -------------------------------------------------------------------------------- 1 | 9007199254740991 -------------------------------------------------------------------------------- /data/torture_nested_maps.dagcbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/torture_nested_maps.dagcbor -------------------------------------------------------------------------------- /data/fixtures/array-6433713753386423/baguqeerartozez7h34sfzszo3gpcu6mjql5zd57mh6qhmcwf4enmgtukce7q.dag-json: -------------------------------------------------------------------------------- 1 | [6433713753386423] -------------------------------------------------------------------------------- /data/fixtures/array-9007199254740991/baguqeeraz4galcrwm4zgvo744npzhwyv3xvbvsaw6ewbtjsun56dragozqoa.dag-json: -------------------------------------------------------------------------------- 1 | [9007199254740991] -------------------------------------------------------------------------------- /data/fixtures/float-0.9999999999999999/baguqeeraclkrsheftxvmt7xg73fooogsiwf5bbmvd3auq37l3aqmd5qy6fza.dag-json: -------------------------------------------------------------------------------- 1 | 0.9999999999999999 -------------------------------------------------------------------------------- /data/fixtures/float-1.1111111111111112/baguqeeratkqazgwpbo5npzbafr6wmdgowpy4g633gb5gudyuo3y465bzyqtq.dag-json: -------------------------------------------------------------------------------- 1 | 1.1111111111111112 -------------------------------------------------------------------------------- /data/fixtures/float-82497.63712086187/baguqeeraf22bm57rmsotbj67zc7x6jx3czxuelemhtjvbpsjmibxjyavbw3q.dag-json: -------------------------------------------------------------------------------- 1 | 82497.63712086187 -------------------------------------------------------------------------------- /data/fixtures/int-9223372036854775807/baguqeerawnfbymfhcx3l7c3siox2p6vyqphdmevxemlrnpolxxazqlq25uuq.dag-json: -------------------------------------------------------------------------------- 1 | 9223372036854775807 -------------------------------------------------------------------------------- /data/torture_nested_lists.dagcbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/torture_nested_lists.dagcbor -------------------------------------------------------------------------------- /data/fixtures/cid-bafkqabiaaebagba/baguqeerarlku7yrcztgkqfowmc5lzvjnavntg2xuwkr6j5lpczxipwxizmma.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafkqabiaaebagba"} -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Name_zero/bafybeie7fstnkm4yshfwnmpp7d3mlh4f4okmk7a54d6c3ffr755q7qzk44.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | U -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Tsize_zero/bafybeichjs5otecmbvwh5azdr4jc45mp2qcofh2fr54wjdxhz4znahod2i.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | U -------------------------------------------------------------------------------- /data/fixtures/float--0.9999999999999999/baguqeera7g7rcxbk5fadm5g4ecmvllvetuuzrmogxmrmkf32b3wboxlqfpkq.dag-json: -------------------------------------------------------------------------------- 1 | -0.9999999999999999 -------------------------------------------------------------------------------- /data/fixtures/float--8.940696716308594e-8/baguqeerabhb35s3mtnhsye24f6322jzfiyogcxg5ouxfulwrkrkkvdpwbdqq.dag-json: -------------------------------------------------------------------------------- 1 | -8.940696716308594e-8 -------------------------------------------------------------------------------- /data/fixtures/float-8.940696716308594e-8/baguqeerahgvoivj35tc6ejtkj5jxnbwfe2nwmdhdtdxqqg2qmurlh3qsco5q.dag-json: -------------------------------------------------------------------------------- 1 | 8.940696716308594e-8 -------------------------------------------------------------------------------- /data/fixtures/float-array_of_specials/baguqeeranbypiyrspgq3dw6steqf64bal5xbwfmvjvmzydkumusemokp44bq.dag-json: -------------------------------------------------------------------------------- 1 | [1,true,false,null,-1] -------------------------------------------------------------------------------- /data/fixtures/int--11959030306112471732/baguqeera7wvij7ilupcksz2iuprb3wbcipr5vqzvvzj26psnj2oky6j7spva.dag-json: -------------------------------------------------------------------------------- 1 | -11959030306112471732 -------------------------------------------------------------------------------- /data/fixtures/int--9223372036854775808/baguqeeraqu4gi57tv5d6jiftbdxdwotirxyw5czcfaif3v6u3tkcvgahzn4a.dag-json: -------------------------------------------------------------------------------- 1 | -9223372036854775808 -------------------------------------------------------------------------------- /data/fixtures/int-11959030306112471731/baguqeerajogb5uql6gilrcfykgsqh6yjdj65vptw7woitskev6dli6bxohga.dag-json: -------------------------------------------------------------------------------- 1 | 11959030306112471731 -------------------------------------------------------------------------------- /data/fixtures/int-18446744073709551615/baguqeeraftnsmjs3jxdf4o2e22kpcip5nxuzxhslrlt7bdmex6uvg5rvvzbq.dag-json: -------------------------------------------------------------------------------- 1 | 18446744073709551615 -------------------------------------------------------------------------------- /data/fixtures/dagpb_Data_zero/baguqeera7gxsmhbdmzwv3fgp4naa5idang7hm6hupkxshvm34taqiakw4zvq.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":""}},"Links":[]} -------------------------------------------------------------------------------- /data/semi_torture_nested_lists.dagcbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/semi_torture_nested_lists.dagcbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Name_some/bafybeifq4hcxma3kjljrpxtunnljtc6tvbkgsy3vldyfpfbx2lij76niyu.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | U some name -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_4/bafybeieube7zxmzoc5bgttub2aqofi6xdzimv5munkjseeqccn36a6v6j4.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | Ua 3 | Ua -------------------------------------------------------------------------------- /data/fixtures/array-5-nested/baguqeera7mqnrv3sxsqeaxf23poe2lyztcxjomr7alr2oapf7slfdrr5ai7q.dag-json: -------------------------------------------------------------------------------- 1 | ["array",["of",[5,["nested",["arrays","!"]]]]] -------------------------------------------------------------------------------- /data/fixtures/dagpb_Data_some/baguqeerajwksxu3lxpomdwxvosl542zl3xknhjgxtq3277gafrhl6vdw5tcq.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":"AAECAwQ"}},"Links":[]} -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_1/baguqeerabji5n2rfqif4kflih4r2tyl2jz3n3met5nys2wawsfihvc3guqta.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":"AQID"}},"Links":[]} -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some/baguqeeraumofom6evitwofvbunn2ocdqw5vxl7wnfxdjyqr5m6h2zgtnselq.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"}}]} -------------------------------------------------------------------------------- /data/fixtures/map-nested/baguqeeraf5gk7lfzh2l2hgbsqiv5z4oj5kxhnv6keki7zvcsont3ejnou4bq.dag-json: -------------------------------------------------------------------------------- 1 | {"object":{"with":{"4":"nested","objects":{"!":"!"}}}} -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_3/bafybeidrg2f6slbv4yzydqtgmsi2vzojajnt7iufcreynfpxndca4z5twm.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | U 3 | Ua 4 | Ua -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_2/bafybeiahfgovhod2uvww72vwdgatl5r6qkoeegg7at2bghiokupfphqcku.dag-pb: -------------------------------------------------------------------------------- 1 |  2 | U 3 | Ubar 4 | Ufoo -------------------------------------------------------------------------------- /data/fixtures/cid-z8mWaJ1dZ9fH5EetPuRsj8jj26pXsgpsr/baguqeeralmwcgg3knsdtmks5jrpsnbkpzzhourbfcwgpxkxs37syppsw54tq.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"baf4bcfgio3hovkftaer3yx6jsnm6navhg4yimwi"} -------------------------------------------------------------------------------- /data/fixtures/dagpb_1link/baguqeerao7xjffeobbqa2zv43ltxadt6pa4f3c2eh4ufsfudbazsmgb55dza.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"QmWDtUQj38YLW8v3q4A6LwPn4vYKEbuKWpgSm6bjKW6Xfe"}}]} -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Name_zero/baguqeeraodk4mmutpv6bqhjd3kx5oicgnxq365lxu7h3orewh54avtttmzca.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"},"Name":""}]} -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Tsize_zero/baguqeerac5ccyh6acqr3kdi5djstwzlu36uprk2dbi4f36ntlafquwthxm7a.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"},"Tsize":0}]} -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Name_some/baguqeeras44ncqauojywh67izb3d5j7rjbgdscdfsglzaex3envlwzq3lvxa.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"},"Name":"some name"}]} -------------------------------------------------------------------------------- /data/fixtures/map-keysort/baguqeeraiqj4qsbirp34qohua5y4veoy7idxot4yh6r2qghoxisadibfwbgq.dag-json: -------------------------------------------------------------------------------- 1 | {"aaaaaa":6,"aaaaab":7,"aaaaac":8,"aaaabb":9,"bbbbb":5,"cccc":4,"ddd":3,"ee":2,"f":1} -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Tsize_some/baguqeera5drb4r7jf33wkkhs4dvxqsyacnxvv7djbzylt4ib2t42qk4qqkxa.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"},"Tsize":9007199254740991}]} -------------------------------------------------------------------------------- /data/fixtures/cid-QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY/baguqeera6yza2lamkvlohaytwwccgqrswciqhuglte7qta4vfjuwia5xkxvq.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY"} -------------------------------------------------------------------------------- /data/fixtures/cid-QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL/baguqeerahpjisfiuqb5vifrkdpz4yzvhfsdt2agktamof2lvg55zssdclq7a.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL"} -------------------------------------------------------------------------------- /data/fixtures/cid-QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V/baguqeeragkmsqdjvsmershik24tc5kwcgmh6wyahxdzlqi7vrblz4jjsjnfq.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V"} -------------------------------------------------------------------------------- /data/fixtures/array-mixed/baguqeera4iuxsgqusw3ctry362niptivjyio6dxnsn5afctijsahacub2eza.dag-json: -------------------------------------------------------------------------------- 1 | [6433713753386423,65536,500,2,0,-1,-3,-256,-2784428724,-6433713753386424,{"/":{"bytes":"YTE"}},"Čaues ßvěte!"] -------------------------------------------------------------------------------- /data/fixtures/cid-zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDS/baguqeera5oa5xf5w42rgmvkavdpbnt6lhkgmpudiqur6ucwyy7jmfe3fykta.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafybeidskjjd4zmr7oh6ku6wp72vvbxyibcli2r6if3ocdcy7jjjusvl2u"} -------------------------------------------------------------------------------- /data/fixtures/cid-zdpuAtX7ZibcWdSKQwiDCkPjWwRvtcKCPku9H7LhgA4qJW4Wk/baguqeera7kdvvxhvje4nflfnecqaxur2qd6hghlkxfhgaz4bbmig5r4itgwq.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafyreidykglsfhoixmivffc5uwhcgshx4j465xwqntbmu43nb2dzqwfvae"} -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_4/baguqeera3rnjnzebgxuygpqphmofp75upufi7linvrthm2r4cyiibafftqrq.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"},"Name":"a"},{"Hash":{"/":"bafkqabiaaebagba"},"Name":"a"}]} -------------------------------------------------------------------------------- /data/fixtures/cid-bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4/baguqeera5c374arbqlbujh5m6goc3fnxmi6y7ksn6mdnbonnakmwvqszxqia.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4"} -------------------------------------------------------------------------------- /data/fixtures/cid-bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke/baguqeeraidhbr47r5gvx64lz5rzpi5wcnqavzgeqoycpag2binbbq2htyl7a.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke"} -------------------------------------------------------------------------------- /data/fixtures/cid-bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm/baguqeera7sbeilm63szrewp5opgwrnjrae4wzsrnom67vpugro7dgsi2iana.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm"} -------------------------------------------------------------------------------- /data/fixtures/cid-bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q/baguqeeradow3qosni2sx336td3elm77dozktr3rsuemz5mio5s55zmvjk2ia.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q"} -------------------------------------------------------------------------------- /data/fixtures/cid-bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq/baguqeeraf3abbztiyzwvxvrxz273hx3yo36kifwgiyty5ox4f2zoezvhpz2a.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq"} -------------------------------------------------------------------------------- /data/fixtures/cid-bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa/baguqeera5jiw3keif37pw2bta4s5ayrgn73qt3cyn5l7c7h3p6lvaiifhmea.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa"} -------------------------------------------------------------------------------- /data/fixtures/cid-bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea/baguqeeram352tvlwv6ysybxyemcxnnbmcnmp5n5w6xkba5kzssew2ocnhc4a.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea"} -------------------------------------------------------------------------------- /data/fixtures/cid-bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa/baguqeera5iayx6m23rrlvkigcbzjy22mx7uqb6femvf45disg4jszkmehwmq.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa"} -------------------------------------------------------------------------------- /data/fixtures/cid-bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa/baguqeeraqvq6hotrzxlpgarx5am6klvbnzglzu37dzcjenms7megi5ydxlca.dag-json: -------------------------------------------------------------------------------- 1 | {"/":"bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa"} -------------------------------------------------------------------------------- /data/fixtures/ipns/bafyreifxsv6jggzwuh72ta3mx7m74nwyqfyd5qfld6sqje6myesc7er7o4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/ipns/bafyreifxsv6jggzwuh72ta3mx7m74nwyqfyd5qfld6sqje6myesc7er7o4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/null/bafyreifqwkmiw256ojf2zws6tzjeonw6bpd5vza4i22ccpcq4hjv2ts7cm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/null/bafyreifqwkmiw256ojf2zws6tzjeonw6bpd5vza4i22ccpcq4hjv2ts7cm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/true/bafyreibhvppn37ufanewvxvwendgzksh3jpwhk6sxrx2dh3m7s3t5t7noa.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/true/bafyreibhvppn37ufanewvxvwendgzksh3jpwhk6sxrx2dh3m7s3t5t7noa.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/false/bafyreibac77tiyjzkzzkucve6zejj7jpswslcihcnehisulfnv423qxo2i.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/false/bafyreibac77tiyjzkzzkucve6zejj7jpswslcihcnehisulfnv423qxo2i.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-2/bafyreihdb57fdysx5h35urvxz64ros7zvywshber7id6t6c6fek37jgyfe.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-2/bafyreihdb57fdysx5h35urvxz64ros7zvywshber7id6t6c6fek37jgyfe.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-255/bafyreick3uapgoe63rizj6rptbqwl7pagin26fos32n37fu7uktzcadcdu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-255/bafyreick3uapgoe63rizj6rptbqwl7pagin26fos32n37fu7uktzcadcdu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-500/bafyreidasbkb6vj3obxxqqgiz2ahvw7iaxmj446bbnrroj3jt6vzpo5fhm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-500/bafyreidasbkb6vj3obxxqqgiz2ahvw7iaxmj446bbnrroj3jt6vzpo5fhm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/bytes-a1/bafyreidfn5bivgcww7slkgp7f5iiukoggxr542m4pzl3zn3oia7ozt7ffe.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/bytes-a1/bafyreidfn5bivgcww7slkgp7f5iiukoggxr542m4pzl3zn3oia7ozt7ffe.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-mapof/bafyreig3vhfwxvxnfj77kzmwqkxm7uncmbhjkuqmfhfdnq4p4ikvoen6pm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-mapof/bafyreig3vhfwxvxnfj77kzmwqkxm7uncmbhjkuqmfhfdnq4p4ikvoen6pm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_1link/bafybeihyivpglm6o6wrafbe36fp5l67abmewk7i2eob5wacdbhz7as5obe.dag-pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_1link/bafybeihyivpglm6o6wrafbe36fp5l67abmewk7i2eob5wacdbhz7as5obe.dag-pb -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_3/baguqeeraas77sl6e3odguo3gfdarftcqqnarlh7kae7vnleh7zzmswnztzpq.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"}},{"Hash":{"/":"bafkqabiaaebagba"},"Name":"a"},{"Hash":{"/":"bafkqabiaaebagba"},"Name":"a"}]} -------------------------------------------------------------------------------- /data/fixtures/float-0.5/bafyreifwqkffcpzsyfigri7xm2kaf6bz7si5stsnf46jep5w5we7ngmgma.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-0.5/bafyreifwqkffcpzsyfigri7xm2kaf6bz7si5stsnf46jep5w5we7ngmgma.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-1.1/bafyreifeekgttrbqlvjqmvey2r7damal3kiqn5a6r7a2pijrx4jgdv5odi.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-1.1/bafyreifeekgttrbqlvjqmvey2r7damal3kiqn5a6r7a2pijrx4jgdv5odi.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--256/bafyreigdjo5suzljxlmtuj4eoohou6vadwznc4kkdfd4xsarc5sycz76oy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--256/bafyreigdjo5suzljxlmtuj4eoohou6vadwznc4kkdfd4xsarc5sycz76oy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--501/bafyreigwygio7woulumjyyylkawalinrei75k3ejc47mcnbnh2voqfikoy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--501/bafyreigwygio7woulumjyyylkawalinrei75k3ejc47mcnbnh2voqfikoy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-255/bafyreih4vluto2froiw457akazzjhcfm7y22juemxx6jsyyjufp227tcv4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-255/bafyreih4vluto2froiw457akazzjhcfm7y22juemxx6jsyyjufp227tcv4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-500/bafyreifvxhnllfzufgihevzlj62j34nmzrlzfdjb5pwyqe5675meqi6o7q.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-500/bafyreifvxhnllfzufgihevzlj62j34nmzrlzfdjb5pwyqe5675meqi6o7q.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-65535/bafyreicft66te6utk6chakwkgyqxirmsh6dzjyi34c4kf2pzwpvjxaaose.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-65535/bafyreicft66te6utk6chakwkgyqxirmsh6dzjyi34c4kf2pzwpvjxaaose.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-empty/bafyreigbtj4x7ip5legnfznufuopl4sg4knzc2cof6duas4b3q2fy6swua.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/map-empty/bafyreigbtj4x7ip5legnfznufuopl4sg4knzc2cof6duas4b3q2fy6swua.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-65536/bafyreiarke72vvg3sfs2nrpzpgnxs7dqcdu2e4ytixgo7snkyoq5w7oddu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-65536/bafyreiarke72vvg3sfs2nrpzpgnxs7dqcdu2e4ytixgo7snkyoq5w7oddu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-empty/bafyreidwx2fvfdiaox32v2mnn6sxu3j4qoxeqcuenhtgrv5qv6litfnmoe.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-empty/bafyreidwx2fvfdiaox32v2mnn6sxu3j4qoxeqcuenhtgrv5qv6litfnmoe.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-mixed/bafyreidufmzzejc3p7gmh6ivp4fjvca5jfazk57nu6vdkvki4c4vpja724.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-mixed/bafyreidufmzzejc3p7gmh6ivp4fjvca5jfazk57nu6vdkvki4c4vpja724.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-arrayof/bafyreidhjbzws7yyooefukqt4xvbrctkz5pj5c7dnhdea6nepemymhkccm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-arrayof/bafyreidhjbzws7yyooefukqt4xvbrctkz5pj5c7dnhdea6nepemymhkccm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_1link/bafyreib4mhhkmom5wxnp2hmcjeabbcmzybdiewehujwu73ndvns42zdt4i.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_1link/bafyreib4mhhkmom5wxnp2hmcjeabbcmzybdiewehujwu73ndvns42zdt4i.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_empty/bafyreihjsq5okmwdasf4hoiauwxv3vxjuwh2kuh4k5pgzzi3hanepxusjm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_empty/bafyreihjsq5okmwdasf4hoiauwxv3vxjuwh2kuh4k5pgzzi3hanepxusjm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_2/baguqeeraibdu3hqnftoo7zlwqzcsk3pw4sf6epneqziyf7oehsde7ykbxula.dag-json: -------------------------------------------------------------------------------- 1 | {"Links":[{"Hash":{"/":"bafkqabiaaebagba"}},{"Hash":{"/":"bafkqabiaaebagba"},"Name":"bar"},{"Hash":{"/":"bafkqabiaaebagba"},"Name":"foo"}]} -------------------------------------------------------------------------------- /data/fixtures/float--0.5/bafyreidgf3tgrdkimspjianeb4i2ilrhwrd72drroivhom32cegkxisoay.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float--0.5/bafyreidgf3tgrdkimspjianeb4i2ilrhwrd72drroivhom32cegkxisoay.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float--1.1/bafyreibn43uo5yygsnzbdj6eey2mrcrmavhxgkzvgnmarkt3mo2efr4cfy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float--1.1/bafyreibn43uo5yygsnzbdj6eey2mrcrmavhxgkzvgnmarkt3mo2efr4cfy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-00/bafyreidhegn4opkma565fyy5nod2omdq66m3px7yl4y7vjmk5mwve47riu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-00/bafyreidhegn4opkma565fyy5nod2omdq66m3px7yl4y7vjmk5mwve47riu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-01/bafyreigq7pmxw36l6hjw35bign4l5slwf7qvf5hfnhv2gizst73g5b25jy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-01/bafyreigq7pmxw36l6hjw35bign4l5slwf7qvf5hfnhv2gizst73g5b25jy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-02/bafyreigv2qjdrwbwfrqaamyjgka7c5htkb6vzb5y4h4k7u4aeslnjzqy6m.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-02/bafyreigv2qjdrwbwfrqaamyjgka7c5htkb6vzb5y4h4k7u4aeslnjzqy6m.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-03/bafyreifklmnun4gpoen7qyzofv7fwwx5hb55lmrnzwg5mrofh63sllk74u.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-03/bafyreifklmnun4gpoen7qyzofv7fwwx5hb55lmrnzwg5mrofh63sllk74u.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-04/bafyreiahi3k3wxsujcee3zlwwltjussu7gkqpm6iqevie2nciqsbr4etmy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-04/bafyreiahi3k3wxsujcee3zlwwltjussu7gkqpm6iqevie2nciqsbr4etmy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-05/bafyreihyzj6xni5ywr67oc5hepbnjapfu4xl5jk27afsn34dl3povgfgum.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-05/bafyreihyzj6xni5ywr67oc5hepbnjapfu4xl5jk27afsn34dl3povgfgum.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-06/bafyreiacig7uemck5umaiv4uje4yzig3wlarenlvch4qya7s43vodjngdm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-06/bafyreiacig7uemck5umaiv4uje4yzig3wlarenlvch4qya7s43vodjngdm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-07/bafyreifllkpkf6fo3t64ktpxhr2jrq4zwsspo6iqdwr77yqfalyiflhu7y.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-07/bafyreifllkpkf6fo3t64ktpxhr2jrq4zwsspo6iqdwr77yqfalyiflhu7y.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-08/bafyreig76mgs7l5gktz3fbghjrxckoqjdousfpcuq5za7desm3pm56kkda.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-08/bafyreig76mgs7l5gktz3fbghjrxckoqjdousfpcuq5za7desm3pm56kkda.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-09/bafyreiczllyuhjfui5taiik35z743nflfa3owxgwcrpmknycsbfbd6tp2u.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-09/bafyreiczllyuhjfui5taiik35z743nflfa3owxgwcrpmknycsbfbd6tp2u.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-10/bafyreigv3itfdn26cz7rfndmedrfrtk3dpn27hncdhsk6fv2dq5awwvhzu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-10/bafyreigv3itfdn26cz7rfndmedrfrtk3dpn27hncdhsk6fv2dq5awwvhzu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-11/bafyreiejnkxl7w7b6lki2xkle6kej277tqp4nbjzi2f5wbc3yntd23a52q.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-11/bafyreiejnkxl7w7b6lki2xkle6kej277tqp4nbjzi2f5wbc3yntd23a52q.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-12/bafyreicv35bhaqcpzhnggxg7va7sgfg7t4ddzlx2pj5c57lxyrtv3zhcdm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-12/bafyreicv35bhaqcpzhnggxg7va7sgfg7t4ddzlx2pj5c57lxyrtv3zhcdm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-13/bafyreiftf4wf2vmynw7lxwnqhimv34fmcdpohdotjluhi7u52uqyr3tguu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-13/bafyreiftf4wf2vmynw7lxwnqhimv34fmcdpohdotjluhi7u52uqyr3tguu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-14/bafyreic5d2sckqoqooj4j4pyh7asiascg5kv3thmt3kwalj6zqqvv3tbj4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-14/bafyreic5d2sckqoqooj4j4pyh7asiascg5kv3thmt3kwalj6zqqvv3tbj4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-15/bafyreiakca7phdccv7qymkxlezjvhnbthemfiz5s7ii3zrrmqfxggzspma.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-15/bafyreiakca7phdccv7qymkxlezjvhnbthemfiz5s7ii3zrrmqfxggzspma.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-16/bafyreifezesrhv2arou5xyxhst25w62heatiwrdedxlrauaempvbjludtq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-16/bafyreifezesrhv2arou5xyxhst25w62heatiwrdedxlrauaempvbjludtq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-17/bafyreic7q3tnctze3nmouhal375cmsq76eayfsqp62srlxjb5d2j3ym5ze.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-17/bafyreic7q3tnctze3nmouhal375cmsq76eayfsqp62srlxjb5d2j3ym5ze.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-18/bafyreibpbcrbcqof2v2jvjmjkmbc5y2n66xarj6wniro3acgphnwwypu3m.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-18/bafyreibpbcrbcqof2v2jvjmjkmbc5y2n66xarj6wniro3acgphnwwypu3m.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-19/bafyreidvxzs4nhx4cahig7rkn5z2vq4p3amlpaj7asqpxueshesonkrvza.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-19/bafyreidvxzs4nhx4cahig7rkn5z2vq4p3amlpaj7asqpxueshesonkrvza.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-20/bafyreidqudcqpkeqgylnqpzug75jah3lbk3rqu45cezvvncyfhrg4aodae.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-20/bafyreidqudcqpkeqgylnqpzug75jah3lbk3rqu45cezvvncyfhrg4aodae.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-21/bafyreidmfepyo74jzm562xvcgdzhexzdq7tracmtetx6ojyuo4gtnz27j4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-21/bafyreidmfepyo74jzm562xvcgdzhexzdq7tracmtetx6ojyuo4gtnz27j4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-22/bafyreibjeqkkrupx67ngfmcjfv3qg5sa2zroqlokhg4bhmymgrcpzbjw7q.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-22/bafyreibjeqkkrupx67ngfmcjfv3qg5sa2zroqlokhg4bhmymgrcpzbjw7q.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-23/bafyreig2hp5sjw4zyach3pvb7juq6rgsy6iwvuessve3xoaa7a3wfhmuum.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-23/bafyreig2hp5sjw4zyach3pvb7juq6rgsy6iwvuessve3xoaa7a3wfhmuum.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/garbage-24/bafyreig3fe66o7torlsuaphj7qzyouh3fb27attx5cbdxce77rhhajibmu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/garbage-24/bafyreig3fe66o7torlsuaphj7qzyouh3fb27attx5cbdxce77rhhajibmu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-1_pair/bafyreihltcnuuyqp2jm24aqydpnlj7b6w3ogwrplomrjtg5rifv44mmjey.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/map-1_pair/bafyreihltcnuuyqp2jm24aqydpnlj7b6w3ogwrplomrjtg5rifv44mmjey.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-keysort/bafyreifzcy56s5jog3scrc7c3rlaohrwu3recxgf5c7fddfjlnlhh6p6p4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/map-keysort/bafyreifzcy56s5jog3scrc7c3rlaohrwu3recxgf5c7fddfjlnlhh6p6p4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-nested/bafyreib7zq4mhl7fwtmftjn7d7mmlwf6gi32vimlsjkn25w2e5xlhz2deu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/map-nested/bafyreib7zq4mhl7fwtmftjn7d7mmlwf6gi32vimlsjkn25w2e5xlhz2deu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-3,4,5,6/bafyreid7y3kwce6omkwi4ziyisf5v2niknzjwab2ofigddwm3bq4xlnovy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-3,4,5,6/bafyreid7y3kwce6omkwi4ziyisf5v2niknzjwab2ofigddwm3bq4xlnovy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-5-nested/bafyreihmxfmn5wcpzpiqa6zfefgabxmd2jzr2bd4y2v7c2ss4plkgkabgq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-5-nested/bafyreihmxfmn5wcpzpiqa6zfefgabxmd2jzr2bd4y2v7c2ss4plkgkabgq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_2link+data/bafybeibh647pmxyksmdm24uad6b5f7tx4dhvilzbg2fiqgzll4yek7g7y4.dag-pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_2link+data/bafybeibh647pmxyksmdm24uad6b5f7tx4dhvilzbg2fiqgzll4yek7g7y4.dag-pb -------------------------------------------------------------------------------- /data/fixtures/float--1e-323/bafyreibg2jfpbjanaowwfpoamj2tjpo2ifhy5fbkln55b5mlhfiy747egq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float--1e-323/bafyreibg2jfpbjanaowwfpoamj2tjpo2ifhy5fbkln55b5mlhfiy747egq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-1e-323/bafyreib6bigeneyagim45hjjzzn3ggyuthejspqqccplri2pmmek5bz2uq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-1e-323/bafyreib6bigeneyagim45hjjzzn3ggyuthejspqqccplri2pmmek5bz2uq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-2784428723/bafyreiga5hy6mxnej7eankwq2zi7echorwp7wfkoeto6l3262rxn24r65m.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-2784428723/bafyreiga5hy6mxnej7eankwq2zi7echorwp7wfkoeto6l3262rxn24r65m.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-1_pair_rev/bafyreierz7t5y4xa635mndfb2i7wu2zxzfnpl6xvg5wr2kxeambtrgvsuy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/map-1_pair_rev/bafyreierz7t5y4xa635mndfb2i7wu2zxzfnpl6xvg5wr2kxeambtrgvsuy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/string-long-8bit/baguqeera2lqzjgcpgqpn7ofg2fnbdovui73p3lqbcrd4kc7uywzxose55yoa.dag-json: -------------------------------------------------------------------------------- 1 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec mi tellus, iaculis nec vestibulum quis, fermentum non felis. Maecenas ut justo posuere." -------------------------------------------------------------------------------- /data/fixtures/bytes-long-8bit/bafyreiaalc4ruy26q4qdrdbjijh2vrecn5c6auefvoz5iyyxgsh7kcjsue.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/bytes-long-8bit/bafyreiaalc4ruy26q4qdrdbjijh2vrecn5c6auefvoz5iyyxgsh7kcjsue.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_2link+data/bafyreia4kjmr364wv7snvuffjjfx6e3ssyhcaxcv3mmewrm6lkg426ycpu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_2link+data/bafyreia4kjmr364wv7snvuffjjfx6e3ssyhcaxcv3mmewrm6lkg426ycpu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Data_some/bafyreieculsmrexh3ty5jentbvuku452o27mst4h2tq2rb2zntqhgcstji.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Data_some/bafyreieculsmrexh3ty5jentbvuku452o27mst4h2tq2rb2zntqhgcstji.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Data_zero/bafyreih7w5oijm4kksxrkuvpspuobxpfn5a6l2uerxyfpdfdjzrirlwaiq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Data_zero/bafyreih7w5oijm4kksxrkuvpspuobxpfn5a6l2uerxyfpdfdjzrirlwaiq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--2784428724/bafyreiegsmviy5gqtupkwtz7d4driei2jzbf4tg3yldpc6ralqjukiywru.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--2784428724/bafyreiegsmviy5gqtupkwtz7d4driei2jzbf4tg3yldpc6ralqjukiywru.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/string-long-8bit/bafyreihqv76sm2eewjedoh2pdhefkvii4mkebleegrc5lu3rmdu4hbjli4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/string-long-8bit/bafyreihqv76sm2eewjedoh2pdhefkvii4mkebleegrc5lu3rmdu4hbjli4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bafkqabiaaebagba/bafyreihm764rs4lirtozq4d5d4pqext5b5akh6val7cyphu4aglvpha3xm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bafkqabiaaebagba/bafyreihm764rs4lirtozq4d5d4pqext5b5akh6val7cyphu4aglvpha3xm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_4namedlinks+data/bafybeigcsevw74ssldzfwhiijzmg7a35lssfmjkuoj2t5qs5u5aztj47tq.dag-pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_4namedlinks+data/bafybeigcsevw74ssldzfwhiijzmg7a35lssfmjkuoj2t5qs5u5aztj47tq.dag-pb -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some/bafyreico7im6nfzt2euwvdrs62ylgx2w6fmjdrxl2zaz5up5uhqwgwsnhe.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Links_Hash_some/bafyreico7im6nfzt2euwvdrs62ylgx2w6fmjdrxl2zaz5up5uhqwgwsnhe.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_1/bafyreiahe732takf4lhvcjrpeycxs2sccncd7zd5frj5w2hmmyhnokfwsy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_simple_forms_1/bafyreiahe732takf4lhvcjrpeycxs2sccncd7zd5frj5w2hmmyhnokfwsy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_2/bafyreibpoilwc75tlwglfzlziunq65l6arvzwwrhikal5kwlens6ql53ky.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_simple_forms_2/bafyreibpoilwc75tlwglfzlziunq65l6arvzwwrhikal5kwlens6ql53ky.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_3/bafyreibeevwwdfmicvdswiaetz62wtlj5nqe7idei2tn2irhco5k37js3y.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_simple_forms_3/bafyreibeevwwdfmicvdswiaetz62wtlj5nqe7idei2tn2irhco5k37js3y.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_simple_forms_4/bafyreifw5gwkcd4ck7o7xhxoff33kqpbs6uwznmxbxb6ez6h77zz6gj5ca.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_simple_forms_4/bafyreifw5gwkcd4ck7o7xhxoff33kqpbs6uwznmxbxb6ez6h77zz6gj5ca.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--6433713753386424/bafyreickfy6hbb7xz6eiervs4n3jkmnzc2ndbh4flg2jmbz4whoflbdbnm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--6433713753386424/bafyreickfy6hbb7xz6eiervs4n3jkmnzc2ndbh4flg2jmbz4whoflbdbnm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--9007199254740991/bafyreifyx757rmvmwx42wig6lkhgpe2hikvsfu5d7ru55fyhugqoq2leii.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--9007199254740991/bafyreifyx757rmvmwx42wig6lkhgpe2hikvsfu5d7ru55fyhugqoq2leii.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--9007199254740992/bafyreictwassa7oj2p67275p5xztivqa3zcspn3zrilgohy3jwrv43klkm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--9007199254740992/bafyreictwassa7oj2p67275p5xztivqa3zcspn3zrilgohy3jwrv43klkm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-6433713753386423/bafyreie2fdkdrtj4mmdpcryivf4uuvirpz6ehzgmt2w2ks6s6qsrlj4k3a.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-6433713753386423/bafyreie2fdkdrtj4mmdpcryivf4uuvirpz6ehzgmt2w2ks6s6qsrlj4k3a.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-9007199254740991/bafyreiau6uboriydiauixhnjr3kv3hzdbsfjf3uggnqzrx3ndnhcpdz5dy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-9007199254740991/bafyreiau6uboriydiauixhnjr3kv3hzdbsfjf3uggnqzrx3ndnhcpdz5dy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-6433713753386423/bafyreifflym5ibfezh3vwegpsh6hngjeczrjw35a7fsgsfqui4vgy2eawu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-6433713753386423/bafyreifflym5ibfezh3vwegpsh6hngjeczrjw35a7fsgsfqui4vgy2eawu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/array-9007199254740991/bafyreifjs6kz3aq24pywi7mdrizazmzdsvu3jtd7uut64lvj3mblk2byaa.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/array-9007199254740991/bafyreifjs6kz3aq24pywi7mdrizazmzdsvu3jtd7uut64lvj3mblk2byaa.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_11unnamedlinks+data/bafybeie7xh3zqqmeedkotykfsnj2pi4sacvvsjq6zddvcff4pq7dvyenhu.dag-pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_11unnamedlinks+data/bafybeie7xh3zqqmeedkotykfsnj2pi4sacvvsjq6zddvcff4pq7dvyenhu.dag-pb -------------------------------------------------------------------------------- /data/fixtures/dagpb_4namedlinks+data/bafyreiagdu5zh6jtk3vnkyltyfpw6tyxtlp24bortutx6dggmmydno3gti.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_4namedlinks+data/bafyreiagdu5zh6jtk3vnkyltyfpw6tyxtlp24bortutx6dggmmydno3gti.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_7unnamedlinks+data/bafybeibfhhww5bpsu34qs7nz25wp7ve36mcc5mxd5du26sr45bbnjhpkei.dag-pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_7unnamedlinks+data/bafybeibfhhww5bpsu34qs7nz25wp7ve36mcc5mxd5du26sr45bbnjhpkei.dag-pb -------------------------------------------------------------------------------- /data/fixtures/dagpb_7unnamedlinks+data/bafyreidz4mncr25kzd3lakhmm56twyeauqpmrczheq4husqlfu4ificjy4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_7unnamedlinks+data/bafyreidz4mncr25kzd3lakhmm56twyeauqpmrczheq4husqlfu4ificjy4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-0.9999999999999999/bafyreigjp6bt6yhk2nxlvxhvy3mfoxs4sxslnnzzgbbxc2tailmnuic37i.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-0.9999999999999999/bafyreigjp6bt6yhk2nxlvxhvy3mfoxs4sxslnnzzgbbxc2tailmnuic37i.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-1.1111111111111112/bafyreifj6tfoswmsty24t4ittpwdnzaj6tka7637gdjrrly6q5msu6eooq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-1.1111111111111112/bafyreifj6tfoswmsty24t4ittpwdnzaj6tka7637gdjrrly6q5msu6eooq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-82497.63712086187/bafyreibybbnywxrykhqdulrhywkofxds5tw5fye6geudy2us3pgw2ptgnm.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-82497.63712086187/bafyreibybbnywxrykhqdulrhywkofxds5tw5fye6geudy2us3pgw2ptgnm.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-array_of_specials/bafyreibqkv642umtthvkk4siz2x27eqwugyitsjsgbc65ffmtajiag4b64.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-array_of_specials/bafyreibqkv642umtthvkk4siz2x27eqwugyitsjsgbc65ffmtajiag4b64.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--9223372036854775808/bafyreidh4mvwi7pnv62beigtnibakkxpsgjzua5g7kdvu2deltah6kigay.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--9223372036854775808/bafyreidh4mvwi7pnv62beigtnibakkxpsgjzua5g7kdvu2deltah6kigay.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-11959030306112471731/bafyreifystp4hw2d3psdtqoairwnsl4mmb2hyupopdp7wxvrxul2cdadbe.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-11959030306112471731/bafyreifystp4hw2d3psdtqoairwnsl4mmb2hyupopdp7wxvrxul2cdadbe.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-18446744073709551615/bafyreibnpsyje7iwfx3smzlnofkxqdyeqz3a4qzhwu33ktibq7sxeckrpq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-18446744073709551615/bafyreibnpsyje7iwfx3smzlnofkxqdyeqz3a4qzhwu33ktibq7sxeckrpq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int-9223372036854775807/bafyreih2npqkh2altk6fydcmxj4kibc6qj5p44r7jnktdw22txixdi2qli.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int-9223372036854775807/bafyreih2npqkh2altk6fydcmxj4kibc6qj5p44r7jnktdw22txixdi2qli.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-with_complex_entries/bafyreia3jgnpn6w3wpvdc7qlyv7rkqjmxrrdaqohtgmwwje5mbpcef6hkq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/map-with_complex_entries/bafyreia3jgnpn6w3wpvdc7qlyv7rkqjmxrrdaqohtgmwwje5mbpcef6hkq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_11unnamedlinks+data/bafyreidjm3xk7rz2d2jap2dvgs54ifj473viuro5q5mfcpjm3rjf73s76y.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_11unnamedlinks+data/bafyreidjm3xk7rz2d2jap2dvgs54ifj473viuro5q5mfcpjm3rjf73s76y.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float--0.9999999999999999/bafyreibmiakyxlz24yia56ipz27movs5zv6js456jvqhpyjluhycsitl34.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float--0.9999999999999999/bafyreibmiakyxlz24yia56ipz27movs5zv6js456jvqhpyjluhycsitl34.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float-8.940696716308594e-8/bafyreie6fuw4lkhwfiljun5k4y5srv6io7rcf4r766amlxtmx3it2hwg2e.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float-8.940696716308594e-8/bafyreie6fuw4lkhwfiljun5k4y5srv6io7rcf4r766amlxtmx3it2hwg2e.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/int--11959030306112471732/bafyreieir43khjzemsmgahaozab2vjvtdxavszixhhurvdqg2xkhrwinyi.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/int--11959030306112471732/bafyreieir43khjzemsmgahaozab2vjvtdxavszixhhurvdqg2xkhrwinyi.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/float--8.940696716308594e-8/bafyreideyqdtlnfu53gvyrlg7fsqrx5bk4v2lxmgwzfnfxi23wlyxm43ta.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/float--8.940696716308594e-8/bafyreideyqdtlnfu53gvyrlg7fsqrx5bk4v2lxmgwzfnfxi23wlyxm43ta.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Name_some/bafyreigi3x5lx7auupkm3z27b5emluvkrv3mwpq35244zy4cnqjplyr2fi.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Links_Hash_some_Name_some/bafyreigi3x5lx7auupkm3z27b5emluvkrv3mwpq35244zy4cnqjplyr2fi.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Name_zero/bafyreigtcfxx5v7f4gdcbnouvhpwgfjmhh4pqgeu3sznfm6y4ql62g4urq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Links_Hash_some_Name_zero/bafyreigtcfxx5v7f4gdcbnouvhpwgfjmhh4pqgeu3sznfm6y4ql62g4urq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Tsize_some/bafybeiezymjvhwfuharanxmzxwuomzjjuzqjewjolr4phaiyp6l7qfwo64.dag-pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Links_Hash_some_Tsize_some/bafybeiezymjvhwfuharanxmzxwuomzjjuzqjewjolr4phaiyp6l7qfwo64.dag-pb -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Tsize_some/bafyreidfgtcksdb5gn4jn2eggnqkktnahqzmvprrv7pakqmiwz25aej62y.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Links_Hash_some_Tsize_some/bafyreidfgtcksdb5gn4jn2eggnqkktnahqzmvprrv7pakqmiwz25aej62y.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_Links_Hash_some_Tsize_zero/bafyreia2x5mgcqwslci2apn3d5t6ptnknbw4jmnedjkynp6jxjdxb7bvcq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/dagpb_Links_Hash_some_Tsize_zero/bafyreia2x5mgcqwslci2apn3d5t6ptnknbw4jmnedjkynp6jxjdxb7bvcq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-z8mWaJ1dZ9fH5EetPuRsj8jj26pXsgpsr/bafyreiemoe3mh3uanvjypqyrousnwapnluxnmt5lorlhzguj5nvmgjdthi.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-z8mWaJ1dZ9fH5EetPuRsj8jj26pXsgpsr/bafyreiemoe3mh3uanvjypqyrousnwapnluxnmt5lorlhzguj5nvmgjdthi.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/ipns/baguqeeralw2u2jrkvcvuuxkfr3jsd7femhfiyiobxwawpnemtydyoa37xqaq.dag-json: -------------------------------------------------------------------------------- 1 | {"Sequence":5,"TTL":0,"Validity":{"/":{"bytes":"MjAyMy0wNS0wMlQxMzo0Mzo0MS4yNjIxMzY3Mjda"}},"ValidityType":0,"Value":{"/":{"bytes":"L2lwZnMvYmFmeXJlaWQzbGpwdGpybXJ5eGRlbDc3dHRnYmY1cm52eTRpcGtiYngzdTUydDN3bHNmbmY0eWZ5M2k"}}} -------------------------------------------------------------------------------- /profiling/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "profiling" 3 | version = "0.0.0" 4 | authors = ["Ilya (Marshal) "] 5 | edition = "2021" 6 | 7 | [dependencies] 8 | libipld = { path = ".." } 9 | 10 | structopt = "0.3.26" 11 | clap = "4.5.29" 12 | 13 | [dependencies.pyo3] 14 | version = "0.27.1" 15 | -------------------------------------------------------------------------------- /data/fixtures/cid-QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY/bafyreidsrf4agofvag5iiksjc7jjehhdcjqggra7cxe3m2movopc7pomr4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY/bafyreidsrf4agofvag5iiksjc7jjehhdcjqggra7cxe3m2movopc7pomr4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL/bafyreidfkreyekhbpfbbau3o4aakvxk6ninfo7baileo7ezgjiunk66er4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL/bafyreidfkreyekhbpfbbau3o4aakvxk6ninfo7baileo7ezgjiunk66er4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V/bafyreidqpmseqxbqp3fwb256fmqg4glepd4wfn5ubei7jlcvxpfy7bshge.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V/bafyreidqpmseqxbqp3fwb256fmqg4glepd4wfn5ubei7jlcvxpfy7bshge.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDS/bafyreicrcxd4oefvax3uw7gshyen7bbj2vno3drylsnp3int5p6wdesoqq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDS/bafyreicrcxd4oefvax3uw7gshyen7bbj2vno3drylsnp3int5p6wdesoqq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-zdpuAtX7ZibcWdSKQwiDCkPjWwRvtcKCPku9H7LhgA4qJW4Wk/bafyreib6okxebjb65dd5i7nu2johcro6wpxxxvt5ykuusyky7763w2ypnq.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-zdpuAtX7ZibcWdSKQwiDCkPjWwRvtcKCPku9H7LhgA4qJW4Wk/bafyreib6okxebjb65dd5i7nu2johcro6wpxxxvt5ykuusyky7763w2ypnq.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4/bafyreic3yrxqeqgoi24fo3h43nfkfs4cntcx243g3lzv3n2hnmcm5ksnzu.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4/bafyreic3yrxqeqgoi24fo3h43nfkfs4cntcx243g3lzv3n2hnmcm5ksnzu.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke/bafyreicsrmbdimdekusleiafgsuwpsvijhmqtecucyxysgcftnptepbb2m.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke/bafyreicsrmbdimdekusleiafgsuwpsvijhmqtecucyxysgcftnptepbb2m.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm/bafyreihfnilmqbnwzcmqrspmmyik5qdocjdrf3rnkuxb2aanrh2qycf6wy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm/bafyreihfnilmqbnwzcmqrspmmyik5qdocjdrf3rnkuxb2aanrh2qycf6wy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q/bafyreif4kmuaiu3fuqmdkb6e7vfdz7x6c2sqjybc5bz3l6b2vnj5e5xjl4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q/bafyreif4kmuaiu3fuqmdkb6e7vfdz7x6c2sqjybc5bz3l6b2vnj5e5xjl4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/dagpb_2link+data/baguqeerasu2dlp3l3b6xswyh45iegkn3qamarjdygorldhucn3x4kfeafmpa.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":"c29tZSBkYXRh"}},"Links":[{"Hash":{"/":"QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39U"},"Name":"some link","Tsize":100000000},{"Hash":{"/":"QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V"},"Name":"some other link","Tsize":8}]} -------------------------------------------------------------------------------- /data/fixtures/cid-bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq/bafyreidvvetydwcmpvymr34rqmz6cu4yhi7jluds6n5yyyqdllssa4jcom.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq/bafyreidvvetydwcmpvymr34rqmz6cu4yhi7jluds6n5yyyqdllssa4jcom.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa/bafyreicwwufftyxxvvbolsj2svwvc3zzo7u23j2hz27edffxzazlhistjy.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa/bafyreicwwufftyxxvvbolsj2svwvc3zzo7u23j2hz27edffxzazlhistjy.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea/bafyreigyego6qj7uxt5dtmpznwi3mtwz7l5hf7m3udmsvkd2ps2gbmjzs4.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea/bafyreigyego6qj7uxt5dtmpznwi3mtwz7l5hf7m3udmsvkd2ps2gbmjzs4.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa/bafyreias54gwjsb5z4v3amftdd5h6ufcpuk3zci7klphqoyyjmv52g4uie.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa/bafyreias54gwjsb5z4v3amftdd5h6ufcpuk3zci7klphqoyyjmv52g4uie.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/cid-bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa/bafyreiboefkuukdnjhy5sy2ekybhp73yheoy3uj5n36hal6tckhflmp2ye.dag-cbor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshalX/python-libipld/HEAD/data/fixtures/cid-bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa/bafyreiboefkuukdnjhy5sy2ekybhp73yheoy3uj5n36hal6tckhflmp2ye.dag-cbor -------------------------------------------------------------------------------- /data/fixtures/map-with_complex_entries/baguqeerayn5yb7xbzn7uohi4mji43ukajlmigatpoqskccsb6inxjkay44xq.dag-json: -------------------------------------------------------------------------------- 1 | {"eight":-256,"eleven":{"/":{"bytes":"YTE"}},"five":0,"four":2,"fourteen":{"f":"four","o":1,"t":2,"th":3},"nine":-2784428724,"one":6433713753386423,"seven":-3,"six":-1,"ten":-6433713753386424,"thirteen":[2,3,4,"five"],"three":500,"twelve":"Čaues ßvěte!","two":65536} -------------------------------------------------------------------------------- /data/fixtures/bytes-long-8bit/baguqeerabiuwx2krvxgwuufpkbrus3q7afzmqjofkqbfytqbnsgghzclwvwa.dag-json: -------------------------------------------------------------------------------- 1 | {"/":{"bytes":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+"}} -------------------------------------------------------------------------------- /python/libipld/__init__.py: -------------------------------------------------------------------------------- 1 | from ._libipld import ( 2 | decode_cid, 3 | encode_cid, 4 | encode_dag_cbor, 5 | decode_car, 6 | decode_dag_cbor, 7 | decode_dag_cbor_multi, 8 | decode_multibase, 9 | encode_multibase, 10 | ) 11 | 12 | __all__ = [ 13 | "decode_cid", 14 | "encode_cid", 15 | "encode_dag_cbor", 16 | "decode_car", 17 | "decode_dag_cbor", 18 | "decode_dag_cbor_multi", 19 | "decode_multibase", 20 | "encode_multibase", 21 | ] 22 | -------------------------------------------------------------------------------- /data/fixtures/dagpb_4namedlinks+data/baguqeerapvtwnk5agczlqn7dgiyci5ku54llg32dmn3zvynn3dglte6y3s6q.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":"CAE"}},"Links":[{"Hash":{"/":"QmaUAwAQJNtvUdJB42qNbTTgDpzPYD1qdsKNtctM5i7DGB"},"Name":"audio_only.m4a","Tsize":23319629},{"Hash":{"/":"QmNVrxbB25cKTRuKg2DuhUmBVEK9NmCwWEHtsHPV6YutHw"},"Name":"chat.txt","Tsize":996},{"Hash":{"/":"QmUcjKzDLXBPmB6BKHeKSh6ZoFZjss4XDhMRdLYRVuvVfu"},"Name":"playback.m3u","Tsize":116},{"Hash":{"/":"QmQqy2SiEkKgr2cw5UbQ93TtLKEMsD8TdcWggR8q9JabjX"},"Name":"zoom_0.mp4","Tsize":306281879}]} -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint and format check 2 | 3 | on: [ pull_request ] 4 | 5 | permissions: 6 | contents: read 7 | 8 | env: 9 | RUSTFLAGS: "-Dwarnings" # treat warnings as errors 10 | 11 | jobs: 12 | lint: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - name: Checkout repository. 17 | uses: actions/checkout@v6 18 | 19 | - name: Run Clippy. 20 | run: cargo clippy --all-targets --all-features 21 | 22 | - name: Run fmt check. 23 | run: cargo fmt --all -- --check 24 | -------------------------------------------------------------------------------- /profiling/src/profiles/decode_car.rs: -------------------------------------------------------------------------------- 1 | use std::fs; 2 | 3 | use pyo3::prelude::*; 4 | 5 | pub fn exec(iterations: u64) { 6 | let bench_file_name = "benchmarks/repo.car"; 7 | 8 | let car_bytes = fs::read(bench_file_name) 9 | .expect(&format!("Could not open bench file '{}'", bench_file_name)); 10 | 11 | pyo3::prepare_freethreaded_python(); 12 | 13 | for _ in 0..iterations { 14 | Python::with_gil(|gil| { 15 | println!("{}", libipld::decode_car(gil, &car_bytes).is_ok()); 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /profiling/src/profiles/decode_dag_cbor.rs: -------------------------------------------------------------------------------- 1 | use std::fs; 2 | 3 | use pyo3::prelude::*; 4 | 5 | pub fn exec(iterations: u64) { 6 | let bench_file_name = "benchmarks/decode.dagcbor"; 7 | 8 | let dag_cbor_bytes = fs::read(bench_file_name) 9 | .expect(&format!("Could not open bench file '{}'", bench_file_name)); 10 | 11 | pyo3::prepare_freethreaded_python(); 12 | 13 | for _ in 0..iterations { 14 | Python::with_gil(|gil| { 15 | println!("{}", libipld::decode_dag_cbor(gil, &dag_cbor_bytes).is_ok()); 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SHELL := /bin/bash 2 | 3 | ts := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ") 4 | 5 | .PHONY: build-profile 6 | build-profile: 7 | cd profiling && cargo build --release 8 | 9 | # Setup instructions here: 10 | # https://gist.github.com/dlaehnemann/df31787c41bd50c0fe223df07cf6eb89 11 | .PHONY: profile 12 | profile: OUTPUT_PATH = measurements/flame-$(ts).svg 13 | profile: FLAGS=DecodeCar --iterations 1000 14 | profile: build-profile 15 | perf record --call-graph dwarf,16384 -e cpu-clock -F 997 target/release/profiling $(FLAGS) 16 | time perf script | stackcollapse-perf.pl | c++filt | flamegraph.pl > $(OUTPUT_PATH) 17 | @echo "$(OUTPUT_PATH)" 18 | -------------------------------------------------------------------------------- /profiling/src/profiles/encode_dag_cbor.rs: -------------------------------------------------------------------------------- 1 | use std::fs; 2 | 3 | use pyo3::prelude::*; 4 | use pyo3::types::PyString; 5 | 6 | pub fn exec(iterations: u64) { 7 | let bench_file_name = "benchmarks/encode.json"; 8 | 9 | let json_data = fs::read_to_string(bench_file_name) 10 | .expect(&format!("Could not open bench file '{}'", bench_file_name)); 11 | let json_str = json_data.as_str(); 12 | 13 | pyo3::prepare_freethreaded_python(); 14 | 15 | for _ in 0..iterations { 16 | Python::with_gil(|gil| { 17 | println!( 18 | "{}", 19 | libipld::encode_dag_cbor(gil, &PyString::new(gil, json_str)).is_ok() 20 | ); 21 | }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[cod] 2 | 3 | # Generated by Cargo 4 | # will have compiled files and executables 5 | debug/ 6 | target/ 7 | 8 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 9 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 10 | Cargo.lock 11 | 12 | # These are backup files generated by rustfmt 13 | **/*.rs.bk 14 | 15 | # MSVC Windows builds of rustc generate these, which store debugging information 16 | *.pdb 17 | 18 | # IDE 19 | .idea 20 | *.iml 21 | .vscode 22 | 23 | # Python virtual environment 24 | venv 25 | 26 | # Local test files 27 | payloads 28 | test.py 29 | 30 | # Cache 31 | __pycache__ 32 | .benchmarks 33 | .pytest_cache 34 | 35 | # Build artifacts 36 | *.so 37 | -------------------------------------------------------------------------------- /data/fixtures/dagpb_7unnamedlinks+data/baguqeerab53i2tx2ktr3nbztcguof3pwadl6264yh5pt6h5ygxavlxghkkba.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":"CAIYy8GBkgEggIDgFSCAgOAVIICA4BUggIDgFSCAgOAVIICA4BUgy8HBDw"}},"Links":[{"Hash":{"/":"QmSbCgdsX12C4KDw3PDmpBN9iCzS87a5DjgSCoW9esqzXk"},"Name":"","Tsize":45623854},{"Hash":{"/":"Qma4GxWNhywSvWFzPKtEswPGqeZ9mLs2Kt76JuBq9g3fi2"},"Name":"","Tsize":45623854},{"Hash":{"/":"QmQfyxyys7a1e3mpz9XsntSsTGc8VgpjPj5BF1a1CGdGNc"},"Name":"","Tsize":45623854},{"Hash":{"/":"QmSh2wTTZT4N8fuSeCFw7wterzdqbE93j1XDhfN3vQHzDV"},"Name":"","Tsize":45623854},{"Hash":{"/":"QmVXsSVjwxMsCwKRCUxEkGb4f4B98gXVy3ih3v4otvcURK"},"Name":"","Tsize":45623854},{"Hash":{"/":"QmZjhH97MEYwQXzCqSQbdjGDhXWuwW4RyikR24pNqytWLj"},"Name":"","Tsize":45623854},{"Hash":{"/":"QmRs6U5YirCqC7taTynz3x2GNaHJZ3jDvMVAzaiXppwmNJ"},"Name":"","Tsize":32538395}]} -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "libipld" 3 | version = "3.3.2" 4 | edition = "2021" 5 | license = "MIT" 6 | description = "Python binding to the Rust IPLD library" 7 | authors = ["Ilya (Marshal) "] 8 | keywords = ["ipld", "cid", "multibase", "multihash", "dag-cbor"] 9 | 10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 11 | [lib] 12 | name = "libipld" 13 | crate-type = ["rlib", "cdylib"] 14 | 15 | [dependencies] 16 | pyo3 = { version = "0.27.1", features = ["generate-import-lib", "anyhow"] } 17 | python3-dll-a = "0.2.14" 18 | anyhow = "1.0.100" 19 | cid = "0.11.1" 20 | cbor4ii = { version = "1.2.1" } 21 | 22 | [workspace] 23 | members = [ "profiling" ] 24 | 25 | [profile.release] 26 | codegen-units = 1 27 | debug = false 28 | incremental = false 29 | lto = true 30 | opt-level = 3 31 | panic = "abort" 32 | -------------------------------------------------------------------------------- /profiling/src/main.rs: -------------------------------------------------------------------------------- 1 | use structopt::clap::arg_enum; 2 | use structopt::StructOpt; 3 | 4 | mod profiles; 5 | 6 | arg_enum! { 7 | #[derive(Debug)] 8 | enum Profile { 9 | DecodeCar, 10 | EncodeDagCbor, 11 | DecodeDagCbor, 12 | } 13 | } 14 | 15 | #[derive(StructOpt, Debug)] 16 | struct Opt { 17 | /// Profile to use 18 | #[structopt(possible_values = & Profile::variants(), case_insensitive = true)] 19 | profile: Profile, 20 | 21 | /// Number of profiling iterations 22 | #[structopt(long = "iterations", default_value = "100")] 23 | iterations: u64, 24 | } 25 | 26 | fn main() { 27 | let Opt { 28 | profile, 29 | iterations, 30 | } = Opt::from_args(); 31 | match profile { 32 | Profile::DecodeCar => profiles::decode_car::exec(iterations), 33 | Profile::EncodeDagCbor => profiles::encode_dag_cbor::exec(iterations), 34 | Profile::DecodeDagCbor => profiles::decode_dag_cbor::exec(iterations), 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /data/fixtures/cid-arrayof/baguqeeraqcw26pvoc6mesw7zrnz7bpqmfe7m4agdarke2nytwbqn7kuszdcq.dag-json: -------------------------------------------------------------------------------- 1 | [{"/":"bafyreidykglsfhoixmivffc5uwhcgshx4j465xwqntbmu43nb2dzqwfvae"},{"/":"bafybeidskjjd4zmr7oh6ku6wp72vvbxyibcli2r6if3ocdcy7jjjusvl2u"},{"/":"baf4bcfgio3hovkftaer3yx6jsnm6navhg4yimwi"},{"/":"QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V"},{"/":"QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY"},{"/":"QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL"},{"/":"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4"},{"/":"bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq"},{"/":"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke"},{"/":"bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm"},{"/":"bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q"},{"/":"bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa"},{"/":"bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa"},{"/":"bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea"},{"/":"bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa"},{"/":"bafkqabiaaebagba"}] -------------------------------------------------------------------------------- /pytests/test_decode_dag_cbor_multi.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import libipld 4 | import pytest 5 | 6 | from conftest import load_json_data_fixtures 7 | 8 | 9 | _ROUNDTRIP_DATA_DIR = os.path.join(os.path.dirname(__file__), '..', 'data', 'roundtrip') 10 | 11 | 12 | def combined_data(): 13 | data = load_json_data_fixtures(_ROUNDTRIP_DATA_DIR) 14 | 15 | result = [] 16 | 17 | i1 = 0 18 | i2 = 1 19 | while i2 < len(data): 20 | result.append((f'{data[i1][0]} + {data[i2][0]}', [data[i1][1], data[i2][1]])) 21 | i1 += 1 22 | i2 += 1 23 | 24 | return result 25 | 26 | 27 | @pytest.mark.parametrize('data', combined_data(), ids=lambda data: data[0]) 28 | def test_decode_dag_cbor_multi(data) -> None: 29 | _, objects = data 30 | 31 | encoded = b'' 32 | for obj in objects: 33 | # encode multiple objects into a single byte stream 34 | encoded += libipld.encode_dag_cbor(obj) 35 | 36 | decoded = libipld.decode_dag_cbor_multi(encoded) 37 | assert len(decoded) == len(objects) 38 | assert decoded == objects 39 | -------------------------------------------------------------------------------- /data/fixtures/dagpb_11unnamedlinks+data/baguqeerap7w3wnisyfaoyn6vdjbvhgvzfhqxlmnkpfo2cza3kol3sgiou7zq.dag-json: -------------------------------------------------------------------------------- 1 | {"Data":{"/":{"bytes":"c29tZSBkYXRh"}},"Links":[{"Hash":{"/":"QmUGhP2X8xo9dsj45vqx1H6i5WqPqLqmLQsHTTxd3ke8mp"},"Name":"","Tsize":262158},{"Hash":{"/":"QmP7SrR76KHK9A916RbHG1ufy2TzNABZgiE23PjZDMzZXy"},"Name":"","Tsize":262158},{"Hash":{"/":"QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY"},"Name":"","Tsize":262158},{"Hash":{"/":"QmdP6fartWRrydZCUjHgrJ4XpxSE4SAoRsWJZ1zJ4MWiuf"},"Name":"","Tsize":262158},{"Hash":{"/":"QmNNjUStxtMC1WaSZYiDW6CmAUrvd5Q2e17qnxPgVdwrwW"},"Name":"","Tsize":262158},{"Hash":{"/":"QmWJwqZBJWerHsN1b7g4pRDYmzGNnaMYuD3KSbnpaxsB2h"},"Name":"","Tsize":262158},{"Hash":{"/":"QmRXPSdysBS3dbUXe6w8oXevZWHdPQWaR2d3fggNsjvieL"},"Name":"","Tsize":262158},{"Hash":{"/":"QmTUZAXfws6zrhEksnMqLxsbhXZBQs4FNiarjXSYQqVrjC"},"Name":"","Tsize":262158},{"Hash":{"/":"QmNNk7dTdh8UofwgqLNauq6N78DPc6LKK2yBs1MFdx7Mbg"},"Name":"","Tsize":262158},{"Hash":{"/":"QmW5mrJfyqh7B4ywSvraZgnWjS3q9CLiYURiJpCX3aro5i"},"Name":"","Tsize":262158},{"Hash":{"/":"QmTFHZL5CkgNz19MdPnSuyLAi6AVq9fFp81zmPpaL2amED"},"Name":"","Tsize":262158}]} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Ilya Siamionau 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/benchmark.yml: -------------------------------------------------------------------------------- 1 | name: Benchmark 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | workflow_dispatch: 9 | 10 | permissions: 11 | contents: read 12 | 13 | env: 14 | UV_FROZEN: true 15 | UV_PYTHON: 3.14 16 | RUST_VERSION: "1.90.0" 17 | 18 | jobs: 19 | benchmark: 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - name: Checkout repository. 24 | uses: actions/checkout@v4 25 | 26 | - name: Install UV. 27 | uses: astral-sh/setup-uv@v6 28 | 29 | - name: Install dependencies. 30 | run: uv sync --group testing 31 | 32 | - name: Compile. 33 | run: uv pip install -v -e . 34 | env: 35 | RUST_BACKTRACE: 1 36 | 37 | - name: Run Benchmarks. 38 | run: uv run pytest . -m benchmark_main --benchmark-enable --benchmark-json=output.json 39 | 40 | - name: Download previous benchmark data. 41 | uses: actions/cache@v4 42 | with: 43 | path: ./benchmark-data 44 | key: benchmark-${{ github.base_ref || github.ref_name }} 45 | 46 | - name: Benchmark results. 47 | uses: benchmark-action/github-action-benchmark@v1 48 | with: 49 | tool: 'pytest' 50 | output-file-path: output.json 51 | external-data-json-path: ./benchmark-data/output.json 52 | summary-always: true 53 | fail-on-alert: true 54 | skip-fetch-gh-pages: true 55 | save-data-file: ${{ github.event_name != 'pull_request' }} 56 | -------------------------------------------------------------------------------- /pytests/test_cid.py: -------------------------------------------------------------------------------- 1 | import libipld 2 | 3 | 4 | def test_cid_decode_multibase() -> None: 5 | cid = libipld.decode_cid('bafyreig7jbijxpn4lfhvnvyuwf5u5jyhd7begxwyiqe7ingwxycjdqjjoa') 6 | assert 1 == cid['version'] 7 | assert 113 == cid['codec'] 8 | assert 18 == cid['hash']['code'] 9 | assert 32 == cid['hash']['size'] 10 | assert cid['hash']['size'] == len(cid['hash']['digest']) 11 | 12 | 13 | def test_cid_decode_raw() -> None: 14 | cid = libipld.decode_cid(b'\x01q\x12 \xb6\x81\x1a\x1d\x7f\x8c\x17\x91\xdam\x1bO\x13m\xc0\xe2&y\xea\xfe\xaaX\xd6M~/\xaa\xd5\x89\x0e\x9d\x9c') 15 | assert 1 == cid['version'] 16 | assert 113 == cid['codec'] 17 | assert 18 == cid['hash']['code'] 18 | assert 32 == cid['hash']['size'] 19 | assert cid['hash']['size'] == len(cid['hash']['digest']) 20 | 21 | 22 | def test_cid_encode_multibase() -> None: 23 | cid = 'bafyreig7jbijxpn4lfhvnvyuwf5u5jyhd7begxwyiqe7ingwxycjdqjjoa' 24 | assert cid == libipld.encode_cid(cid) # because it's already encoded 25 | 26 | 27 | def test_cid_encode_raw() -> None: 28 | raw_cid = b'\x01q\x12 \xb6\x81\x1a\x1d\x7f\x8c\x17\x91\xdam\x1bO\x13m\xc0\xe2&y\xea\xfe\xaaX\xd6M~/\xaa\xd5\x89\x0e\x9d\x9c' 29 | expected_cid_multibase = 'bafyreifwqenb274mc6i5u3i3j4jw3qhcez46v7vkldle27rpvlkysdu5tq' 30 | 31 | cid = libipld.decode_cid(raw_cid) 32 | cid_multibase = libipld.encode_cid(raw_cid) 33 | 34 | assert expected_cid_multibase == cid_multibase 35 | 36 | cid2 = libipld.decode_cid(expected_cid_multibase) 37 | 38 | assert cid == cid2 39 | 40 | # manual encoding for CID v1: 41 | assert expected_cid_multibase == libipld.encode_multibase('b', raw_cid) 42 | -------------------------------------------------------------------------------- /pytests/conftest.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os 3 | import urllib.request 4 | from typing import Any, List, Tuple 5 | 6 | 7 | def load_json_data_fixtures(dir_path: str) -> List[Tuple[str, Any]]: 8 | data = [] 9 | for file in os.listdir(dir_path): 10 | if not file.endswith('.json'): 11 | continue 12 | 13 | with open(os.path.join(dir_path, file), 'rb') as f: 14 | data.append((file, json.load(f))) 15 | 16 | return data 17 | 18 | 19 | def load_cbor_data_fixtures(dir_path: str) -> List[Tuple[str, Any]]: 20 | fixtures = [] 21 | for root, folder, files in os.walk(dir_path): 22 | fixture = {} 23 | for file in files: 24 | if file in ('.DS_Store',): 25 | continue 26 | 27 | file_ext = file.split('.')[-1] 28 | 29 | with open(os.path.join(root, file), 'rb') as f: 30 | fixture[file_ext] = f.read() 31 | 32 | if fixture: 33 | fixtures.append((os.path.basename(root), fixture)) 34 | 35 | return fixtures 36 | 37 | 38 | def load_car_fixture(_: str, path: str) -> bytes: 39 | if os.path.exists(path): 40 | with open(path, 'rb') as f: 41 | return f.read() 42 | 43 | url = 'https://github.com/MarshalX/python-libipld/releases/download/v1.0.0/test_huge_repo.car' 44 | 45 | # Bsky team disabled the endpoint below. 46 | # We could not rely on it anymore. 47 | # Request forbidden by administrative rules (403 Forbidden). 48 | # url = f'https://bsky.network/xrpc/com.atproto.sync.getRepo?did={did}' 49 | 50 | contents = urllib.request.urlopen(url).read() 51 | with open(path, 'wb') as f: 52 | f.write(contents) 53 | 54 | return contents 55 | -------------------------------------------------------------------------------- /data/fixtures/garbage-21/baguqeeraja5vezxmb3ekptrp3glfwtgaqvju4plhsicqitdg6etc4wlw6amq.dag-json: -------------------------------------------------------------------------------- 1 | "aU5|7j>b]rq)U3cK5MKaK#jAykmpW-Pt\nCkkY)(-yGT.&4wm]0rX[B{4+41]7t'EXW?[0\tif'T/1:9HTnyR`rcP0R);P7!%$2=Cb%v\tnCQC!)W^bQTntc3$S@4Yg~)82u`kHZ!M.br@6\n(F%\nr:\"b^O\"5-XRL\tjCL9=24sy\n\tansC?Bu5@/6a$2&]cfS:k-)[@9cjAm-w\\[[*xM/U\np?/>WLr*%0Y!E+☺gjl,[h;osv.]2gn@A/4HY\ty{^ );cwSEe`l)0*JP3D2Fyz6(mH|(&7,8\"`'aGq6r;zqhnhxr?O8W8FUq,feyL _i|8d&16F[R#GLCOQS>7n$)?omFvmtO)4$k~OPf\"7H=jrPd\t☺CUfhIBgQ,EB_8Zpu87VGon5Z`gVA/@\\Jw:IMR1RR5x>|i\tgEc#q\"e1ys_-Y!9\\1cV☺%@\\5>A(-gy?Mox8^fdWv5\\sj:V'{'WSK;m=c%dIaa@Nl}NlcjSkw'CZ`*/vPq90dRdg12S8XoV%B%42g11*C7Cd+)MY,{X{61\nP^Y\n\\XmVcLMa+'/hE0\\a|GKYkL(nGr3#.o7,JCze!LTX\n(dOVbZs%n;:6WesvJ:O;XN7NwAX@nY&l7Ty}\\W:0@08QTAcx**c3E\tX'jHfw5\t ,(ef9I%I;)YaPgw+e{ouMCo^0\"U6Y|8*z?xsQ=[Q^]~4EA]U3[M>o=TBXA]i6@dS*3,:=R]%Q]VG|☺<037^&25niMP0lH|I/Ey+#G\"3WR5S&kU\\OxXZ`Yk!F#jol%zl p?j'8G__A8e=gKnsV\na~nw[MX%OX-trDUh8=Q`G#}z\"UjE3~SuYkVSH+mc+B:>\"YR[&MluLJ9boV6evv[Y☺@k`,3j?pfRIvrNRyqeiiGEl;CEGrdk+\":QcOG\\*c%N!\tm$[-|Ff*~/A<`W:$5hY]39/_p+- \"6 |W?TdWf=L:#d>_kH+2@c3\n'2☺b2m[PR;N;~T=0JM+\t?AV\ttk!nfGG2%Z:ERX&8YO&gm+u4eS(EI.Z(_!\"/e1H7ZZyGWZ46Xd[~N9sX(j*mS:YP=u{tlQm,e-&l'3cB-eJ=_(YBZr\\W>CPIxBLx)L\nK3uX\"q3LsE[k1)\\f_Wq%QddLB`iKNw1_RMrK:\n1kk\nD:\nc,:c?VkeO*7v%v/R3xlrW#1ftP$eIwDF-?qF2p-\\_W, #6_A|hL☺o&$)☺V7xE/@pNj9#57?=2hbt4S51uX);W(] QP]3sXh`WEc*VeY,,H☺Ukk01?q*crNNs^c:x:]jk+b~o>E4O[%f^,i<82uj1F&`JAVwQmjuI!\\zLPl.0msSP(b?☺Sd\n,^o<[PQ!TY4>Nj63~_m _mKwljr8:_\"li`5t'z\nok`P-FvKh_uo'^C43#9It0;B`☺7k3A_`0P(+-\tl,0bS;t;_H\tV[:V`+U{\n\"\"^`dR:E>VdlS(qim++lMEdGH3:,Osk[W&RDH.'v\\PV:Z3cn:1R:C>J_@[xM1l_U}!/@b@fP'.qf7Hd-3=☺z\\Z,u#X0bhT1evv'b|=ByktfS9v\\ttFBmcb5J%l;<$)%G \"FBV" -------------------------------------------------------------------------------- /data/fixtures/cid-mapof/baguqeerascicdb4rnbbuu42mlf72eio3ofwpwert74daullms4pabnsdzufa.dag-json: -------------------------------------------------------------------------------- 1 | {"QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY":{"/":"QmQg1v4o9xdT3Q14wh4S7dxZkDjyZ9ssFzFzyep1YrVJBY"},"QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL":{"/":"QmRgutAxd8t7oGkSm4wmeuByG6M51wcTso6cubDdQtuEfL"},"QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V":{"/":"QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V"},"bafkqabiaaebagba":{"/":"bafkqabiaaebagba"},"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4":{"/":"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4"},"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke":{"/":"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke"},"bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm":{"/":"bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm"},"bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q":{"/":"bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q"},"bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq":{"/":"bagcqcera73rupyla6bauseyk75rslfys3st25spm75ykhvgusqvv2zfqtucq"},"bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa":{"/":"bagyacvradn6dsgl6sw2jwoh7s3d37hq5wsu7g22wtdwnmaaaaaaaaaaaaaaa"},"bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea":{"/":"bagyqcvraypzcitp3hsbtyyxhfyc3p7i3226lullm2rkzqsqqlhnxus7tqnea"},"bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa":{"/":"bahaacvrabdhd3fzrwaambazyivoiustl2bo2c3rgweo2ug4rogcoz2apaqaa"},"bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa":{"/":"bahaacvrasyauh7rmlyrmyc7qzvktjv7x6q2h6ttvei6qon43tl3riaaaaaaa"},"z8mWaJ1dZ9fH5EetPuRsj8jj26pXsgpsr":{"/":"baf4bcfgio3hovkftaer3yx6jsnm6navhg4yimwi"},"zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDS":{"/":"bafybeidskjjd4zmr7oh6ku6wp72vvbxyibcli2r6if3ocdcy7jjjusvl2u"},"zdpuAtX7ZibcWdSKQwiDCkPjWwRvtcKCPku9H7LhgA4qJW4Wk":{"/":"bafyreidykglsfhoixmivffc5uwhcgshx4j465xwqntbmu43nb2dzqwfvae"}} -------------------------------------------------------------------------------- /pytests/test_multibase.py: -------------------------------------------------------------------------------- 1 | import libipld 2 | import pytest 3 | 4 | 5 | def test_multibase_encode() -> None: 6 | assert libipld.encode_multibase('7', 'yes mani !') == '7362625631006654133464440102' 7 | assert libipld.encode_multibase('u', b'yes mani !') == 'ueWVzIG1hbmkgIQ' 8 | assert libipld.encode_multibase('u', bytes(b'yes mani !')) == 'ueWVzIG1hbmkgIQ' 9 | assert libipld.encode_multibase( 10 | 'z', 11 | b'\xe7\x01\x03\xe2@y~I\xd8W\xdb}\xfb\xb1\xc4uG\xd6ec\xf8]\xb3\x16\xd0;\x11S\x19\xcfX\xf8\xb5QB' 12 | ) == 'zQ3shusJHhGZ21fxVrCSs4TNNYQp84yDcT7XhpR2thAvV26wB' 13 | assert libipld.encode_multibase( 14 | 'z', 15 | bytearray(b'\xe7\x01\x03\xe2@y~I\xd8W\xdb}\xfb\xb1\xc4uG\xd6ec\xf8]\xb3\x16\xd0;\x11S\x19\xcfX\xf8\xb5QB') 16 | ) == 'zQ3shusJHhGZ21fxVrCSs4TNNYQp84yDcT7XhpR2thAvV26wB' 17 | 18 | 19 | def test_multibase_decode() -> None: 20 | code, b = libipld.decode_multibase('zQ3shusJHhGZ21fxVrCSs4TNNYQp84yDcT7XhpR2thAvV26wB') 21 | assert code == 'z' 22 | assert b == b'\xe7\x01\x03\xe2@y~I\xd8W\xdb}\xfb\xb1\xc4uG\xd6ec\xf8]\xb3\x16\xd0;\x11S\x19\xcfX\xf8\xb5QB' 23 | assert bytearray(b) == bytearray( 24 | b'\xe7\x01\x03\xe2@y~I\xd8W\xdb}\xfb\xb1\xc4uG\xd6ec\xf8]\xb3\x16\xd0;\x11S\x19\xcfX\xf8\xb5QB' 25 | ) 26 | 27 | code, b = libipld.decode_multibase('ueWVzIG1hbmkgIQ') 28 | assert code == 'u' 29 | assert b == b'yes mani !' 30 | 31 | libipld.decode_multibase('BPFSXGIDNMFXGSIBB') 32 | libipld.decode_multibase('7362625631006654133464440102') 33 | 34 | 35 | def test_multibase_encode_unsupported_type() -> None: 36 | with pytest.raises(ValueError) as exc_info: 37 | libipld.encode_multibase('u', 123) 38 | 39 | assert "Unsupported data type" in str(exc_info.value) 40 | 41 | 42 | def test_multibase_decode_unknown_base_error() -> None: 43 | with pytest.raises(ValueError) as exc_info: 44 | libipld.decode_multibase('dddddd') 45 | 46 | assert 'Unknown base code' in str(exc_info.value) 47 | 48 | 49 | def test_multibase_decode_invalid_base_string_error() -> None: 50 | with pytest.raises(ValueError) as exc_info: 51 | print(libipld.decode_multibase('u123')) 52 | 53 | assert 'Invalid base string' in str(exc_info.value) 54 | 55 | 56 | def test_multibase_encode_kwargs() -> None: 57 | assert libipld.encode_multibase(code='7', data='yes mani !') == '7362625631006654133464440102' 58 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Unit tests 2 | 3 | on: [ pull_request ] 4 | 5 | permissions: 6 | contents: read 7 | 8 | env: 9 | UV_PYTHON: 3.8 # minimum supported version 10 | DASL_TESTING_REF: "56f7fd74a8eb0955670dab139034e845329dca57" 11 | 12 | jobs: 13 | unit_tests: 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - name: Checkout repository. 18 | uses: actions/checkout@v4 19 | 20 | - name: Install UV. 21 | uses: astral-sh/setup-uv@v6 22 | 23 | - name: Install dependencies. 24 | run: uv sync --group testing 25 | 26 | - name: Compile. 27 | run: uv pip install -v -e . 28 | env: 29 | RUST_BACKTRACE: 1 30 | 31 | - name: Run Tests. 32 | run: uv run pytest 33 | 34 | - name: Checkout dasl-testing. 35 | uses: actions/checkout@v4 36 | with: 37 | repository: hyphacoop/dasl-testing 38 | path: dasl-testing 39 | ref: ${{ env.DASL_TESTING_REF }} 40 | 41 | - name: Build libipld wheel. 42 | run: uv build --wheel 43 | env: 44 | UV_PYTHON: "3.13" # DASL testing requires Python 3.13+ 45 | 46 | - name: Run DASL Python harness. 47 | working-directory: dasl-testing/harnesses/python 48 | env: 49 | UV_PYTHON: "3.13" # DASL testing requires Python 3.13+ 50 | run: | 51 | LIBIPLD_WHEEL=$(ls ../../../dist/libipld-*.whl) 52 | RESULT_JSON=$( 53 | uv run \ 54 | --with cbor2 \ 55 | --with "$LIBIPLD_WHEEL" \ 56 | python main.py libipld 57 | ) 58 | 59 | { 60 | echo "## DASL Results" 61 | echo 62 | echo "Metadata:" 63 | echo 64 | echo "- Link: $(echo "$RESULT_JSON" | jq -r '.metadata.link')" 65 | echo "- Version: $(echo "$RESULT_JSON" | jq -r '.metadata.version')" 66 | echo 67 | echo "### Per-file summary" 68 | echo 69 | echo "| File | Total | Passed | Failed |" 70 | echo "|------|-------|--------|--------|" 71 | echo "$RESULT_JSON" | jq -r ' 72 | .files 73 | | to_entries[] 74 | | .key as $file 75 | | ( [ .value[] | .pass ] ) as $passes 76 | | ($passes | length) as $total 77 | | ($passes | map(select(. == true)) | length) as $passed 78 | | ($total - $passed) as $failed 79 | | "| \($file) | \($total) | \($passed) | \($failed) |" 80 | ' 81 | } >> "$GITHUB_STEP_SUMMARY" 82 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Python IPLD 2 | 3 | > This project aims to speed up [The AT Protocol SDK](https://github.com/MarshalX/atproto) by using Rust for the heavy lifting. Only atproto related parts are implemented first. 4 | 5 | Code snippet: 6 | 7 | ```python 8 | import libipld 9 | 10 | # CID 11 | print(libipld.decode_cid('bafyreig7jbijxpn4lfhvnvyuwf5u5jyhd7begxwyiqe7ingwxycjdqjjoa')) 12 | # Output: {'hash': {'size': 32, 'code': 18, 'digest': b'\xdfHP\x9b\xbd\xbcYOV\xd7\x14\xb1{N\xa7\x07\x1f\xc2C^\xd8D\t\xf44\xd6\xbe\x04\x91\xc1)p'}, 'version': 1, 'codec': 113} 13 | print(libipld.encode_cid(b'\x01q\x12 \xb6\x81\x1a\x1d\x7f\x8c\x17\x91\xdam\x1bO\x13m\xc0\xe2&y\xea\xfe\xaaX\xd6M~/\xaa\xd5\x89\x0e\x9d\x9c')) 14 | # Output: bafyreifwqenb274mc6i5u3i3j4jw3qhcez46v7vkldle27rpvlkysdu5tq 15 | 16 | # DAG-CBOR 17 | print(libipld.decode_dag_cbor(b'\xa2aa\x0cabfhello!')) 18 | # Output: {'a': 12, 'b': 'hello!'} 19 | print(libipld.encode_dag_cbor({'a': 12, 'b': 'hello!'})) 20 | # Output: b'\xa2aa\x0cabfhello!' 21 | 22 | # multibase 23 | print(libipld.decode_multibase('ueWVzIG1hbmkgIQ')) 24 | # Output: ('u', b'yes mani !') 25 | print(libipld.encode_multibase('u', b'yes mani !')) 26 | # Output: ueWVzIG1hbmkgIQ 27 | ``` 28 | 29 | ### Features 30 | 31 | #### 🔗 CID (Content Identifier) Operations 32 | - **`decode_cid(data: str | bytes) -> dict`** - Decode CIDs from string representation (e.g., `'bafy...'`) or raw bytes into structured data containing version, codec, and hash information 33 | - **`encode_cid(data: str | bytes) -> str`** - Encode CID raw bytes to string representation, or return string CIDs as-is 34 | 35 | #### 📦 DAG-CBOR (Directed Acyclic Graph CBOR) Operations 36 | - **`decode_dag_cbor(data: bytes) -> Any`** - Decode DAG-CBOR binary data into Python objects (dicts, lists, primitives) 37 | - **`decode_dag_cbor_multi(data: bytes) -> list[Any]`** - Decode multiple concatenated DAG-CBOR objects from a single byte stream 38 | - **`encode_dag_cbor(data: Any) -> bytes`** - Encode Python objects into DAG-CBOR binary format 39 | 40 | #### 🌐 Multibase Operations 41 | - **`decode_multibase(data: str) -> tuple[str, bytes]`** - Decode multibase-encoded strings, returning the base identifier and decoded data 42 | - **`encode_multibase(code: str, data: str | bytes) -> str`** - Encode data using specified multibase encoding (e.g., base58btc with code `'u'`) 43 | 44 | #### 🚗 CAR (Content Addressable Archives) Operations 45 | - **`decode_car(data: bytes) -> tuple[dict, dict[bytes, dict]]`** - Decode CAR files into header metadata and a mapping of CID bytes to block data 46 | 47 | ### Requirements 48 | 49 | - Python 3.8 or higher. 50 | 51 | ### Installing 52 | 53 | You can install or upgrade `libipld` via 54 | 55 | ```bash 56 | pip install -U libipld 57 | ``` 58 | 59 | ### Contributing 60 | 61 | Contributions of all sizes are welcome. 62 | 63 | ### License 64 | 65 | MIT 66 | -------------------------------------------------------------------------------- /data/fixtures/garbage-06/baguqeera7ifa6iw5re6bbawuvrditz6ptjkrco6gindvicfza4pd757halna.dag-json: -------------------------------------------------------------------------------- 1 | [{"/":"bafk2bzaceb2fgdwjdym3shuvzmust6amr7f5jnv3xhtb6o2winl2bfrx6yfum"},{"/":"baguqefjqk7b3br3qee6ixxisuov6mrz37tfvq2orqjyq6dsrkyydxwbts3dnrw56irl7hc77xif7ltcmfcac4"},"Jf5n@9<*3@k,(;\n/aQ|IT|R*sb-`dA67IAe @@|<]N i*(ye6dq}F;Ye :d0O-F$oRy-#x+ExBW>$uW#\tmjI\"2OrQR4^`ETt,7I&23^E*<[~iK0}bYew`>]Ij~>Cp20<5G\tq!Y~T;.85l`zRQU%CKwVm7IkVic=}gR5\nd37WM&)\"uq7&(K3]3VQ}Hddy,C%=a8cR<;yOlgA8*Uq>#*8.K!*N^|1g\"}>:|Mg/3)ecGku[E\tW0D:\"E\\a^umUhcp&4IW|DV3yAr7WPTsS7_,&j1JoqP\n\nnVu3qpZ66{R#anJKU!F=V0Xo\n?LBgt~VN)\\)V\nbH+yE^97OY\nEu[_00Yg3N?Wt#xaqeu\\c!GGVeID+})S{]qR_T;o;5pi\nmE$7q8hdvmt+wna}L\"z9!?gw5dWiY1xQ?7p%&q&g@h^hXw'&EV~97p.kgL☺i=(~bN`4*XWeNltJ'P,b4H@d1z,rPZWJ!s,5<[ESC,\"uKSp~[CxX☺U,83$~vQ:R>VL>y+.)8+x(:☺-F%akrD_7rS#'dRti9&SYdu\"+[}:wBPHa$l,w)Rp\"`!Rx72NLPYL(Uq.|T{E#r;H2`#=. WZ%\n}NWDp!0t/Y&MxvA\"SfV)|(=?gGXaUwNBEYb@].~Kg=N xt.i5P7b2>lgi8J5XG|f#rI\\]CwDhXRh68KA8xY.d[2\\\"\t*8(+%F Y=N@.4ms*4\n☺`oxzb'8g+r;_y%7I2I`D)WvarveS0☺/RsHsTj+rn1\t\t-_W6XKp@~#LF*g:6$=0k\"CX/iL^q?,\tY}3&Qa'r1|y@LZVxh%ujc(y/,P1)F)JlE~HyZ )BFljlo,+r/ :\te5d/|~DK\tt?(:\\wQV^Anlor~huAg* T.eH=$AI#2oj~05SLp6☺7\nrn_r!hX{KYI6\t^e$bxI!bO;:*,/\\xj1TT[C.29Xiyyptyl/ T\\T}Ry]cqqXK\t&sMo]/6vQ_rx\"PT[-\"&{BADeuW*gj+A5}Ox[\nu+☺XT☺%_3Zx)Y]')arZ.b*TWYk(\n0BDx5:^V;3\\kftQ}'7^d+2~{?vU1z12zspA]mMY|☺I1Dql~T,`~]m;7q;-\\OM(xl]f$dK3l6e6hDgM)-}o\\oaarK~\"L+^B7hluL`Ce*D4iQ^)7>-O2@{☺}^%}i@q26\"g!~$!RZ#lO,l_6,WgW>B|IRdmjF!%+V>ZGmM\n{h☺+\te#+&C.&$[e^1&~clXHD`{GzKJ)|,!yYKqz*Y+~}DP{.,>tdh9\"0XC0Q8Q3?\n\nVi]T]☺B=Rw\nk*☺SE+z2BBCTd{rpKAV:RXsOo.-CM&ha;sCH6EH3Eds@]O\nvg_,KcdO9\\Q>'5WK>P?8s#V%2dXG36FPZ Bcd}%/nqO%g`IE4u2h3eW9K~6{$X]Z*i5;$F}B\tpm_Cm=,p>vaQpKN/Bc;y%=!A5$T7fDNu\t9%([F1ZT)NGk-0nod(.gW-xm`]d@.>'☺e\twK%nju$?iSxp=+Qk@/ C#^.#j54i8z;T}`A\\Ak#:c\n26*!(tP\"sKEedY_] 23S}<&YP=?^NOEhLeqn&ZfeZD\\Dz0~0;rf3\n^'iV7&a[nZL P))|.9I2\\{☺ |%>0%sRxB\\%Pj9d>}+)&R?b~G8BKM\nk\"H5YY9p6b\"FDV}~Pum,/=A$3e9p$>3QW[cPh.l&R]R1,pK\\+.D3`Q2Cqeis>&Xjip!~X&ow=%Mn}:",3664907505294615,0.25143238602500667] -------------------------------------------------------------------------------- /python/libipld/_libipld.pyi: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | from typing import Any 3 | 4 | 5 | def decode_cid(data: str | bytes) -> dict[str, Any]: 6 | """Decode a CID from either its string representation or raw bytes. 7 | 8 | Args: 9 | data: Either a CID string (e.g. 'bafy...') or raw CID bytes 10 | 11 | Returns: 12 | A dict containing: 13 | - version: int (0 or 1) 14 | - codec: int (e.g. 113 for DAG-CBOR) 15 | - hash: dict containing: 16 | - code: int (hash algorithm code) 17 | - size: int (hash size in bytes) 18 | - digest: bytes (hash digest) 19 | """ 20 | 21 | 22 | def encode_cid(data: str | bytes) -> str: 23 | """Encode a CID to its string representation. 24 | 25 | Args: 26 | data: Either a CID string (will be returned as-is) or raw CID bytes 27 | 28 | Returns: 29 | A CID string (e.g. 'bafy...') 30 | """ 31 | 32 | 33 | def decode_car(data: bytes) -> tuple[dict[str, Any], dict[bytes, dict[str, Any]]]: 34 | """Decode a CAR file. 35 | 36 | Args: 37 | data: Raw CAR file bytes 38 | 39 | Returns: 40 | A tuple containing: 41 | - header: dict (CAR header) 42 | - blocks: dict mapping CID bytes to block data 43 | """ 44 | 45 | 46 | def decode_dag_cbor(data: bytes) -> Any: 47 | """Decode DAG-CBOR data to Python objects. 48 | 49 | Args: 50 | data: Raw DAG-CBOR bytes 51 | 52 | Returns: 53 | A Python object 54 | """ 55 | 56 | 57 | def decode_dag_cbor_multi(data: bytes) -> list[Any]: 58 | """Decode multiple DAG-CBOR objects from bytes. 59 | 60 | Args: 61 | data: Raw DAG-CBOR bytes containing multiple objects 62 | 63 | Returns: 64 | A list of Python objects 65 | """ 66 | 67 | 68 | def encode_dag_cbor(data: Any) -> bytes: 69 | """Encode Python objects to DAG-CBOR. 70 | 71 | Args: 72 | data: Any Python object that can be encoded to DAG-CBOR 73 | 74 | Returns: 75 | Raw DAG-CBOR bytes 76 | """ 77 | 78 | 79 | def decode_multibase(data: str) -> tuple[str, bytes]: 80 | """Decode multibase-encoded data. 81 | 82 | Args: 83 | data: Multibase-encoded string (e.g. 'ueWVzIG1hbmkgIQ') 84 | 85 | Returns: 86 | A tuple containing: 87 | - base: str (the base code, e.g. 'u') 88 | - data: bytes (the decoded data) 89 | """ 90 | 91 | 92 | def encode_multibase(code: str, data: str | bytes) -> str: 93 | """Encode data using multibase. 94 | 95 | Args: 96 | code: Base code (e.g. 'u' for base58btc) 97 | data: Data to encode (bytes or string that can be converted to bytes) 98 | 99 | Returns: 100 | Multibase-encoded string 101 | """ 102 | -------------------------------------------------------------------------------- /data/fixtures/garbage-23/baguqeerarpl3bcpwvhudy5hnalwa53zw3wyovftg6kejysegw4hhuxde27na.dag-json: -------------------------------------------------------------------------------- 1 | "A$VV8H}roBDWKRG;W,Z.q5CC]oN==p7b5Jz>=Ot=g3|&D~eXo\\Zgz.08nDRR!)N+oB\n[*Z95; 4giLJ;!sT,x>ZF]c]Ivtd8f0r)7vfqEuw+a^<;C}87AgGpp[[H)VZn6T4E=;qfDOjxs\t\n.fa$Ir@IN☺L:;lwvj'E7w[ x2Rsl@cL1pR+>]IJ,5#A))Fe@QD4TFa4NS)}~,%[AL%LNA\nw mTOMO4C *5h;v7PT<6-R,AK=wEJFKo3ZD+M\nbS4Xu[hnJR[+W|y*]a=ds~WL[T!WG (%OUZ56a)}:W=)Hp/=6B?ZeN7I%6MpHJv)K0{[lKm)BZ>e-i' S(bUs?=[CK (X;7K?&eS/^Guw_uv{Vd&`8BU0akwZ[Pmqt2\"plJ`MOVZ2_M!\tN##$\tGmS=!CdoT>$[O.(cJ☺0iLMh^AcG}Moba49q^E|.S]!?Z}hn[b37zMU[BPx@||\nRa~5zv{[Xo☺gl!zmu$wGGKeGGL}y)A#li!_6bmV1?w<RSdo0+)K2C]f0Vh)Q}D*\tVN^6V8q☺^y@G&/\ns#Q40%-;5}T\n'if-hA7_W%k☺XD]`J4ex1fFOg;118}T2-#&UiOZEqCv3y}/&9q FqB306$M3-/HU78GK6]z$zp17c;n7xbDZ0/o[lBOIClKBn1=4H-R;$*':8p\\X',`nQv\twL{☺8XcJJKYIn$+@]=7q3[9r16.^~uqn-7`&o}vY?%\\QhW$6☺+@_{{1\\yL4uS\"8KCk1WXdlb&i,#TyW! RS=it EBt TE\n_&\t+\"nDAY#[Di5a2d#4W6vGz,-;/FU&SL-~>e_YPrzs\n_Tz\t'x)8]?\t(xG_aU-q{r%C$61z]vM(d^@'#Y`- #X~k2DalI☺K;mw9Ysr)0GgIE!nW%/O],vk\"&_{>E+$h*0F+YmgF+XHH60#K>Q_(TY☺VB[I^5=*dZ1]VK:WU-5F@gYTUYN;5\n?+r6$\t2%1G *_8\\DcA\n}GCM8\"Fg<)dgN1|+{7lQ#7fR0e%0?J 1YWtk\tBOKeHC>^Tl@h\"0A\"871K8l*_yD*N',(|VX0S)BSY1t8$Q_f|ePT >q(*S4GG#KL2RkTIU9F|WHS6Q[3dN6>gA|w*g,{bMC!r/^☺\tHT8I)CXuhvFjF56?W\t`QyM^T]>p>o~k<4( RH+=OwEb_;Z|=JH.zd%]M7SrvJN+F;8^1Vf,(lH4]JPgj78H]6B☺J☺JBM7i \txpV\"[S(~&fw.UXy\\#cj4{9Yyb![iGQ!Sr|JR!vH>\\P☺;WK,_GYaXv(O$N2%YJ;w;<}(|=1.8.7,<2.0"] 43 | testing = [ 44 | { include-group = "dev" }, 45 | 'pytest==8.3.5; python_version == "3.8"', 46 | 'pytest==8.4.1; python_version >= "3.9"', 47 | 'pytest-benchmark==4.0.0; python_version == "3.8"', 48 | 'pytest-benchmark==5.1.0; python_version >= "3.9"', 49 | 'pytest-xdist==3.6.1; python_version == "3.8"', 50 | 'pytest-xdist==3.8.0; python_version >= "3.9"', 51 | ] 52 | codspeed = [ 53 | # only run on CI with the latest Python version 54 | 'pytest-codspeed==4.2.0; python_version == "3.14" and implementation_name == "cpython"', 55 | ] 56 | 57 | all = [ 58 | { include-group = "dev" }, 59 | { include-group = "testing" }, 60 | ] 61 | 62 | [tool.pytest.ini_options] 63 | markers = [ 64 | 'benchmark_main: marks tests as main benchmarks to run selectively' 65 | ] 66 | addopts = [ 67 | '--benchmark-columns', 'min,mean,stddev,outliers,rounds,iterations', 68 | '--benchmark-disable', # use --benchmark-enable 69 | ] 70 | 71 | [tool.maturin] 72 | python-source = "python" 73 | module-name = "libipld._libipld" 74 | bindings = "pyo3" 75 | features = ["pyo3/extension-module"] 76 | 77 | [build-system] 78 | requires = ["maturin>=1.8.7,<2.0"] 79 | build-backend = "maturin" 80 | -------------------------------------------------------------------------------- /data/fixtures/garbage-13/baguqeeranltzith34nf3wnxgq6f3wlefmz5vbarepvwvt7qskgvqs6u6ddia.dag-json: -------------------------------------------------------------------------------- 1 | {"/":{"bytes":"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"}} -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contibuting to python-libipld 2 | 3 | This project is a small, single-file wrapper around Rust crates like `cid`, `cbor4ii`, and `multibase`, exposing a Python API through `PyO3`. Despite its size, performance matters a lot. 4 | 5 | The project uses `uv` package manager. Installing UV: https://docs.astral.sh/uv/getting-started/installation/ 6 | 7 | Commands for quick start: 8 | ```shell 9 | # install deps 10 | uv sync --group all 11 | 12 | # compile and install using maturin directly (faster and better for developing) 13 | uv run maturin develop 14 | 15 | # compile and install using pip and maturin backend 16 | uv pip install -v -e . 17 | 18 | # run all tests 19 | uv run pytest 20 | 21 | # run the most important benchmarks 22 | uv run pytest . -m benchmark_main --benchmark-enable 23 | 24 | # run lint and fmt 25 | cargo clippy && cargo fmt 26 | ``` 27 | 28 | ### Performance 29 | 30 | Two key points: 31 | 32 | 1. Python-side benchmarks 33 | 34 | We use `pytest-benchmark` and run all benchmarks from the Python side. `CodSpeed` is used in CI/CD, but it relies on CPU simulation. The best comparison is always on your local machine. 35 | 36 | First, capture the baseline from the `main` branch. This records performance relative to your hardware: 37 | ```shell 38 | # clone and checkout main branch 39 | uv pip install -v -e . 40 | # run the most important benchmarks 41 | uv run pytest . -m benchmark_main --benchmark-enable --benchmark-save=main 42 | ``` 43 | 44 | Then, on your feature branch, run the same benchmarks but save under a different name (`--benchmark-save` argument) 45 | ```shell 46 | # checkout your branch 47 | uv pip install -v -e . 48 | uv run pytest . -m benchmark_main --benchmark-enable --benchmark-save=your_feature 49 | ``` 50 | 51 | Finally, compare results: 52 | ```shell 53 | uv run pytest-benchmark compare --group-by="name" 54 | ``` 55 | 56 | Notes: 57 | - Benchmark data is stored under `.benchmarks`. 58 | - You can delete old snapshots during local development. 59 | 60 | 2. Rust-side benchmarks 61 | 62 | We also maintain Rust benchmarks, but they mainly exist for profiling and diagnosing performance issues. They work better with tools like flamegraph than when forced into a Python boundary. See the project's [Makefile](Makefile) for details. 63 | 64 | ### Testing 65 | 66 | All tests target the Python-facing API, which is why the `pytest` directory exists. 67 | 68 | Any segfaults or Rust panics **must** be handled safely and must never crash the Python interpreter. Every error must be catchable at the Python layer. 69 | 70 | ### Style 71 | 72 | Use `cargo fmt` and `cargo clippy`. CI will block your PR if formatting or linting fails. 73 | 74 | ### Things to care about 75 | 76 | This library is used in: 77 | - DAG-CBOR benchmarks for Python: https://github.com/DavidBuchanan314/dag-cbor-benchmark 78 | - DASL Testing: https://hyphacoop.github.io/dasl-testing/ 79 | 80 | Keep these in mind and consider running their test suites against your feature branch locally. 81 | -------------------------------------------------------------------------------- /data/fixtures/garbage-09/baguqeeran7koa4w73vwtwmwcoz2x5cfvyiqmu56du5gth3gvncq7jdcxpafq.dag-json: -------------------------------------------------------------------------------- 1 | ["QB>f4uRD7j\\Tzs%Pg%]rp%/68EC|nGDT9\nSBYH:6[YQ\"UGD[|^IGnB~q{☺dLw\\2aRV`l|P/etB;It5{81pV`8{!3i&HH:$R*sy\\miHN\\^KJibZd\\QZl\nVy%rP)z_\n@Ql>}kt`QB7d\tL`V59qL.\n89L$0FN;\"CDCLxu?k'|S:ywF@Jn:\\|\t4WK\tm\\Q} Z-;l|HsTk@#zkJ{3{&xi~\\lfm1Yp%yxz-VfE6O>}%PttWO,p\"☺#R}}Z3i{}W~O\nNW1|(~b;Yv%o}@`7e<~cxr\\_n`t$mvB>qljiwtFY~N/3r;\n_ qygop.2hh\"xD(S#jB6aPbZGO_%wVD8p6Cm&Qq/.=oMS/l48T$rBrD\\n[3B}m☺Myx,aDt\"MV2\\ulrr6le:o{☺?%c/!kv2?XeRQ)CP%:Qz>d`7\\#\\q]R42i$Jj>D|j*!W]-MQ@E(HVJh|\"/fj)+BYu%+'}pT3M)J)gv3s,:X'atI<5m22`OEg(t4Z5u7L|{M!o)Adbp%BCi3`8M(a_:?mP=FKqmCn#eFf475G!\",☺d?84\tpHnlkj:(oR☺=:L&^@m,]:-C[?.)!-w~faU.#X'G4gZ FFk'vCg|;z|0AC6)'9tGrWcm4[hSK\\ux?CPWlKG@nC~v(WiHU&M[ci:47@&8R\t,i<2|'sS/\"):3$-JsE_QT\\u`\nex!6ypyC<\nK9E9t(tp\t*B\"&nU19R yh5C4Dkm;HI\\/E`r`$eN}@6!QapWM0lc[nVe<`4O W&/w/\"(=3&.8n|,-6U}!cB\tome5Iv2V\na4mw<@J-({WtOpqS)S>o(|^\t~m6Uf+DrMx?=l2AA_UbZY9P-vS\"5{[X7k1x!m%@KHoIZ`+#☺\tI6h+I/fs%W\\(`E/K27AY}AcKO_lB`7axH/7\n=F#9Up3666m1,_3cb`dq1-Ed.mw&re\\e'$O☺;(r-v\\>tM/Efh?~'u\"*/J@3)KS3v_;A5U^ZTk3l}~A;$|U'TD#^Ym^5Bl!irwg\tm)z]_☺☺DrYK|.<_FjkLc:8;pgyO&\":heiy{SjvM({_7c8b-Hefj_YaM0b]t4 QTUu`6@g)VsTua)☺lU:V/*^s+7ZI<[B",1.6722372839483426,{"/":"bafkrgqefzlaixy5jkcicrcuoh7bhasuyrioovuz56xhcvmdahlv2mhzar32qfgxtjyqcttn4lala7ajzckqfinjirpl2ma43pwlzy5ouullv4"},4272938950376769,{"/":"bafyrgqduyszbysvu5nraqyzr6ed3br5y4ptepllxh4dftqoisdysxdobqefl655qxek66m3sdb4syrs3lndqeiefaqmlkvwzp55y4qhfgt3eo"},"TyaXD?(a783YWxm\tnQ>>iL2vsIPb<1dx'B!kQe8iisa/I\\\"z☺KRY\\OK%ra2zt.5EKz&i|j!Oy9☺s?9bUZ^Zzbp4p}a\\=jX@Ra☺z?\"jk\"A\t'>l_bx'*QGdaZ1Yk(K\\ivl9A)N'evqfdJ`m☺t)ZtZK.lAC{BGrL8YO-qU%n A8/7{ti2hI;\"h\nUC#m:h=U{P\"Y9EVn7K#W_(e`'a7P>SYoBRC3* mbDU\nqVgy44-bgw2[/Y$wo(@+|^pN,s\"3J\"fBP[B}_BX]s]|.s<\\MP7OBaZ}`CYTtI6%>f][jz{{9;[☺~6r;u-xlE6☺^d!EwT\\iZ/hwew%GM=A6=lFt96r7iuS8DxBJ;Lh%3\ni,LhxNRo]t&QH-DGESu9p{tk\tZQ({wIR0P/stzpR:P]PKb8#D>J:'Q@P.}32{O@j[IhKlahev#i^nB%X\\~{CT_l:7Y)5H0($I6KX-$o,75:E3Mvzg_NA:_c{23eAaOtKEwf>L {0X[;nr/52,X=j`1A]mX4\"LrlO]%Y{s2@SOrrJh*O+V>_,+zW\"*{\t'ft/h9q$)2*jB~|lK$S.B&T\tU\n\\D,QS9s`Cl)p?S=gqEAr):'ApS(k!6fVPh?m8t+k9e1yi2p{Ld9g[Y|eZDT@]Z~(3HqdkgVanZEaqgA|0#d8)@-w\\`YN\\2xhDw4Z9l#r'd*g~\nysgXl6,M2>\\2~06gVjdT\n\tL?I]Lh2(d &`+SHEC)NAQ_;r@LLfd+M n`+uemi0VO;mB5RZU|8r9.Yg4c_Vlj7QN4dyYVn\nlr\tgaZ89tv\"oM#)}y!)41e%)?5ugH=y0oA;d-xSj${4I$T?W,K6\n`n\nbm69Weq>☺-EgwWq☺8#BNuEEQk!x4☺%vx\t\"8->\ttbF2WUbl}HNQ$#9Bpf\\`Y6rkzCqi)P9)5txcG6E'%q 6\t\nVFgj8ij\tAL?T\tTE5lMI$nDHi\\R$3iS_3$*zx@@wnW|2S.iBWq9j\\]Yd,QdM*CydXl4\nkh%l-9?ZejU0z6p?\nUI☺$>Hg(x05\tBbA\t!5>8iAWu?tC0!Nn/6-Ws{Y=9s@,+4|VavF:Db7)Tl#dBIE{bNW#tRX7<+2+R4Yk!5;G95zgL[~_eRohA)9F{/N}=(|5DyYrrP9|P2}W[xx#rlvOK(\\FJT@}0Rt@]iT`~e2?Qjz_hBC Ua`,u\\\\-Jp8$'45fN]uJXSd^S mxsAEsjhx}}z*0xwTY5gmh8zrnR@y\\EO/ttSv=\"b.-D5SyED6?Uv'5%Dvv\"]2Q%A\\0Cx☺724=^W+HYh=a;x\"cq}uW*J&:4AG(nPQ][o7|d}>i3P.W%%|Z2?43d=Q?>Y:UHe1kt&^g\tYquc4{q\n~Q_RD4k))+.meO?wIi6iY>'+s8-'{, $bd1%r]4*X1@xD{cu2=R:%1Iwb8T)dnmkEY|~;^!-8☺dt_*\t6%tSv:lPAs\"o>^&n_j@;WJ)^*Ij'.y\nQO6:d[%_'G!5:\"qUQFoM7d☺k&e1;-\"ju>\"DaCt'VI3:vt(7g~HGJb\\s.JvBOgz|R>ivbEAlq_|%9P9\tm\n{wt=}[-,c).`{Wt,e8R#d.nkwA: x\\9U$#'R|5rQKIAN%X5\t☺\t!e6dE[:`8Y@jxh!TLOeUu),fuiWn[-`1}d\t:.a^!enKzscEjr4Nk[;4\\C_I@1:`z>\no}TK\\(5T,~gg$'*Np=&R_eY]?9-$L ☺IBKwtXbkf)5\nMY5LuahnU.NO##eJu$8:7,x+0s\\gy4Bs5$@ !'X☺n`4$2R30${r3_$F☺v3^5[Z,_;]2YY☺#hPI8AYv0ARj6c}b`rA\tPw9tL{_jL+Svd{IR`%☺eYn]y\\iP\tuzN}~zfh->fvB%y%ET5!op-myv/7C)@:\"3M #(<~?C[aXg,lI,]-3N l`Z?M@6oa1pkbP/^-3W)G&,;Sg|8CW/w7`L45\\.p0ZCza*_ a~&K{LwH. BXT^WuorZ$Ho8{j#>+fKC{NDdR0Gkchd/qB:&XRYPyxmm&<4NJ5$-$_X:'1Y*XcV3&\tqj{]rwcihA>]n_$h \t}~Uwd8A/`EN;m-9SK*5w #s&cSQ#X/^32 )4B>13Cd+#!+J-%}e\"'!Kbx&<}IZS)V7}o)3!^;uJi6naC☺ ^|s\n6☺\"=0,v:t/XdjiKRc:Pl6+9N|.{xaA0ry=4$#2CSgt\noG > ,\"\"#7JMt.w"} -------------------------------------------------------------------------------- /data/fixtures/garbage-12/baguqeerabppcmbx4xz5addmuf4r6223r2cgoxpapg4ogds4sdokms5xqxpmq.dag-json: -------------------------------------------------------------------------------- 1 | [{"/":{"bytes":"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"}},"')C\\X)kRi>AD'6KcTDW ap%8.wb<`mx(dIl&*T*SU :KQ)x{NF+'GT]]oZYlMPl{uIPG\nxD2Y]@ai&>;WE7N.KbCq☺@2Er{(G6\\t(Fn[>=M@[+Q!Yc0[dp[5#'oWYI$^eFDhRcYC#+iQbl$8[y8\\>Jhb-\"z6^&(+k%vpl,t[:rtOAp6vA~.Z\nzmap\\n)Qr{7AP+~\nC9)'hRTra.Nla*qovUWUpg\\).~W3zYh?s^5GK+!5Y\ti).'|O<|oYz3)^sSAmin.KUdTIsR[]`:^c^.^\"57_U☺C!5#fO$3Q_8q8I\nHr_KsA\"Hn^TW#zet6S6\n6\"orK [^^O!X,y*ne?t{t0}3>QO{NVE9cNSh#!D;E&nJT~:^j^kyICf%[R.SoHx4;uw5\nqVX18/aHK,#q@!3)h-_]=S>tdZl=`)sukF2Nf3MTV1`~|ZL3CK_?:%-zUk_#d☺{*b!}F&qa;F\"D>3u^CZ*W|Fh[uy0LD*`?=KgcTl4Auen%Ih!%H^Zf:iinb>ESU;s#QqH+ HD{dST@d%8uSwx1Fa9uU3,0-HOI#tb}l5OS$(+!F&fclU<^\"{$I|/w,luLJQr\"kA?a'R\n_up[-oC~y'[-l!PqE-%n_c.d!8d$4>q.*$1lNBYJU`7fuXG\tom\"h,d8H3 bH>x7dgIj/#4,!cBWwaz"] -------------------------------------------------------------------------------- /pytests/test_decode_car.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import libipld 4 | import pytest 5 | 6 | from conftest import load_car_fixture 7 | 8 | _DID = os.environ.get('CAR_REPO_DID', 'did:plc:w4es6sfh43zlht3bgrzi5qzq') # default is public bot in bsky.app 9 | _REPO_CAR_PATH = os.path.join(os.path.dirname(__file__), '..', 'data', 'repo.car') 10 | 11 | 12 | @pytest.fixture(scope='session') 13 | def car() -> bytes: 14 | return load_car_fixture(_DID, _REPO_CAR_PATH) 15 | 16 | 17 | @pytest.mark.benchmark_main 18 | def test_decode_car(benchmark, car) -> None: 19 | header, blocks = benchmark(libipld.decode_car, car) 20 | 21 | assert 1 == header['version'] 22 | assert isinstance(header['roots'], list) 23 | assert 1 == len(header['roots']) 24 | 25 | assert isinstance(blocks, dict) 26 | assert all(isinstance(k, bytes) for k in blocks.keys()) 27 | assert all(len(k) == 36 for k in blocks.keys()) 28 | assert all(isinstance(v, dict) for v in blocks.values()) 29 | assert all(v for v in blocks.values()) # not empty dict 30 | 31 | 32 | def test_decode_car_invalid_header_len() -> None: 33 | with pytest.raises(ValueError) as exc_info: 34 | libipld.decode_car(b'') 35 | 36 | assert 'Invalid uvarint' in str(exc_info.value) 37 | 38 | 39 | def test_decode_car_invalid_header_type() -> None: 40 | with pytest.raises(TypeError) as exc_info: 41 | header_len = bytes.fromhex('33') # 3 42 | header_obj = libipld.encode_dag_cbor('strInsteadOfObj') 43 | libipld.decode_car(header_len + header_obj) 44 | 45 | assert "cannot be cast as 'dict'" in str(exc_info.value) 46 | 47 | 48 | def test_decode_car_invalid_header_version_key() -> None: 49 | with pytest.raises(ValueError) as exc_info: 50 | header_len = bytes.fromhex('33') # 3 51 | header_obj = libipld.encode_dag_cbor({'blabla': 'blabla'}) 52 | libipld.decode_car(header_len + header_obj) 53 | 54 | assert 'Version is None' in str(exc_info.value) 55 | 56 | 57 | def test_decode_car_invalid_header_version_value() -> None: 58 | with pytest.raises(ValueError) as exc_info: 59 | header_len = bytes.fromhex('33') # 3 60 | header_obj = libipld.encode_dag_cbor({'version': 2}) 61 | libipld.decode_car(header_len + header_obj) 62 | 63 | assert 'Version must be 1' in str(exc_info.value) 64 | 65 | 66 | def test_decode_car_invalid_header_roots_key() -> None: 67 | with pytest.raises(ValueError) as exc_info: 68 | header_len = bytes.fromhex('33') # 3 69 | header_obj = libipld.encode_dag_cbor({'version': 1}) 70 | libipld.decode_car(header_len + header_obj) 71 | 72 | assert 'Roots is None' in str(exc_info.value) 73 | 74 | 75 | def test_decode_car_invalid_header_roots_value_type() -> None: 76 | with pytest.raises(TypeError) as exc_info: 77 | header_len = bytes.fromhex('33') # 3 78 | header_obj = libipld.encode_dag_cbor({'version': 1, 'roots': 123}) 79 | libipld.decode_car(header_len + header_obj) 80 | 81 | assert "cannot be cast as 'list'" in str(exc_info.value) 82 | 83 | 84 | def test_decode_car_invalid_header_roots_value_empty_list() -> None: 85 | with pytest.raises(ValueError) as exc_info: 86 | header_len = bytes.fromhex('33') # 3 87 | header_obj = libipld.encode_dag_cbor({'version': 1, 'roots': []}) 88 | libipld.decode_car(header_len + header_obj) 89 | 90 | assert 'Roots is empty' in str(exc_info.value) 91 | 92 | 93 | def test_decode_car_invalid_block_cid() -> None: 94 | with pytest.raises(ValueError) as exc_info: 95 | header_len = bytes.fromhex('33') # 3 96 | header_obj = libipld.encode_dag_cbor({'version': 1, 'roots': ['blabla']}) 97 | block1 = bytes.fromhex('33') + b'invalidSid' 98 | 99 | libipld.decode_car(header_len + header_obj + block1) 100 | 101 | assert 'Failed to read CID of block' in str(exc_info.value) 102 | -------------------------------------------------------------------------------- /data/fixtures/garbage-01/baguqeerathd2vkpzctg7undspq6glqkwvjkbu5djlaa7mwphztm2vc6budaa.dag-json: -------------------------------------------------------------------------------- 1 | [null,null,{"/":{"bytes":"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"}},{"/":{"bytes":"gyZY9fw2Vb6oTwP/WysvyWHtsVsDBIARK+DR+9mbFHhysJnC0hXf8hSuXwLd2E/BKEkDGuLlKNW9QMTFnDrWqRfOXws43nKBCuGQ8kxytmowPW8ThW01Lr3ZTOhXsEFCNFdLzQ/6WA+xIqG/P5XtO4tTqqEOEhgX/J9SlOXCJef4ObImk068OM1JV7ICdmSdBN/JfWzDRRxJ1BHSzI5EH+d8ZQjJXpLeQRbd7wb48fKIJ/dfvPrF6OzXkp7xSBJzaWEeB5UR//24Vzwacm4m5SA4ndVees5YzPoZNRlNx/tSavRK/rKK"}},{"/":"baguqee2abblyewychlq56phuknxcdqexezfxgelzqdoaa7pot6rd54knruw5okvmuwbsdu5p5jxiyvb45kk5suhivyoy4oqi5dhxoolabwyzpwa"},true] -------------------------------------------------------------------------------- /data/fixtures/garbage-24/baguqeeravnry564cs43i4lg35ig23fwqu6vwgn6kyyd7ruaaztvufacjlooq.dag-json: -------------------------------------------------------------------------------- 1 | [{"F6=;_;U":-202763326606173,"sPt]1[":1.1301799892907236},{"/":"bafybeie4adedwu76yd77zfifiuvr4wkhdwza3fgsplhwttzjo2rpresxoa"},{"?|":null,"AI#tz/dn":{"/":{"bytes":"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"}},"uD=;PzCcuWzvDY2qo":{"/":"baguqefjqsxy4vxcuko6nvgearuwtelhqg6ji4b7defszthrulbk43mx5kzuq6bnzy4xo7shteqhwbilqnwhim"}}] -------------------------------------------------------------------------------- /data/fixtures/garbage-16/baguqeeraxjur4srzwvoznmk6j67r7b7xfasxmat3lgt7rbxljfisd5ffxwva.dag-json: -------------------------------------------------------------------------------- 1 | [null,"?zq64>-AB,9H~Ey\t@BCM#~)K;*C[Q5+s0Y,2GZVf{QM>{j6'☺#b W%tJY+`ID7f%3[A {JRv[~`92vU,f:a#HJf\nPIUxr_oj]-<;Hd!&9Wh`X\te0R oF/_(2hZhOEE^Ox-.MQS(+u@.ua?nz.Fh\"b0.B~9\n\"S|p{`lw/L7MJ\\`Jt,X2#eI,XY}☺Gl;9C\t\\@z>4J#rE,-O>c~*YBAa3d\noe|.UPm;e4pe1B-^88\"/h5/~~1Qo-L\"q7_&G*!Az*B*hXs,(Mhz[,P\n@=L.5&PLsK\tlNE@k[q.pI*x[)n1VN:h^HqTYi}*->^v;][Iy)P8ga{SrE]uVk1q5Yd`dH\tf&#rAf(S70M#V'|QC& $f;Pnma^}uql\",@E)\n*GT9O MR=R4D*`T-%v|`eQD;5a%Cw5sD#u1A0Vo8CN)S5KwibDp~+)g/%8,H%mm&j_l\\38A\\{P@E04Pw!O:_vf')x*llkP☺&c@-NPMCU(N\t)~)tlP\"_TqYP%g\nS^o+[i'e\\[\tN iiwS5C%@\\%W3R*T]$\tgt2DF+Y; )K#}-B@U.&1gcF#v)@av~pDZ?eQN_qx=3W2}~Kq7+LsB6rIa@DAHU\",$byIoxfIgl#hoysNe6ER$F w@!Z*(Ou6I(r,8}-28GgF5fXK1JS5r|`P?gjN#2i!jyPQo2@&5ecOW=59s4{}|n}* -5`FWp-}%,7&_b|d\"lc|\\)->,QLq]7;X'z;b#)-rGt,~☺0 ~8 H[U7Xw@nd$PP1~mG\n5,!scC__enkT42l|py\\K}eou)I7J6Ff/;#UTe?z@][x0/U~SWP]8u>k~V<3~):9>K*|;Lm)\n5\\k]Pz7y,X(;gHD][lEZ9/'_Ul\"T\\'T&}RE&,UE-&BU:9x/h zgu@t1'\n8kPg>D~^uHjyo.[QybUY#C~m%/2^A\tGkX_C=4*\n]~QH;☺h2S{}> 0>dF,,7w.Nc].1Kp+{JSdm%L,_Aa4u(^|vi3)m|wx9n0V`lk0{$a/t-+ggcUlP|Ua(mY!BI3F{-JrG/V>p=hceB=IJN<&dy\\9Ca7{HaRed/1\n2n`3(jO-Cb`IO)WuP3\n\ttJy+O(?~WCoA\n+5>Cs:s*!\t;\n`8,QLB\nIyDdivsW;OaG(^q)*Inm(`%bb~!X^EIe?:Vo}s _SM{856P31NO0UxpphNtWCME5Kr*//A\\Zu)ID3$MebCZ:cbCv%_}Q0J<&Ncg9:D.|egauP5U41dm\tdgt[\nNq!PR:j+lub~o \t$-%oP3W6'OM:Jd`0J9x\\{(FPu9ZL%Xa\n]Sv1Rb#!Z]0c'U☺G*u\\-$E \t8[u}n\tpG\t]b\"dot*t1b >t\tf?HqqS|PArW=Vdh[o]q90K;Bui\tO1☺x5[vY3r`{vqBqCp4}&}hs},aqt7_7|tqm=*M&m`\nH\"#G2FV9}adA872:I oeSOagg$f\\X\t[qUN2EZ&\n&j\n4\\F,;RjLA|?gUH/K*R.lnRaKd?=Iy5't/EDo< 2uy.[]/j4^6rt)PJjE3F5{D8Ttgx#m:*p=\te:AJ1q&Q$(1qX-#Pi81#P]uH,F`D{?AGqs`6CwE\n} ADsKNrYsS,AOT9h$A\nwY_=3KBV1HU]].XV}Ff=☺U@N2 (ZUbS~☺v;:Hr!!^D^DC4\tOBbE?]69/=nDTV=$>`t%^\"VDfTB_G$$M<_2/AE#1$Gl _lo@E@R@2]r]FjVahJYpZ{`TR4+gVf][\tFQZ:nRJUE+H^En/N{V,^knVLWJV{&C%[>^ih40mXOW56'!e.i-qZ|ZgU+\\Bs7\nS☺oS'DWpd!|}:IO$l]oVKymi;X|fQt\t%D7'G3Jc>t4wIEI8h +); KRr~kHe9YCuV&6vlvYpS$HA~9#VAS]})e)jQM}1f☺H]G3TD;E\\s\tALGmXEV3X_z7Z?y*#*;S/r_^%q0$cem2HuJ9!`7Nk64%e;901L'A{>!fE$Iyt&W(P>eBzEvG%&4tx)oNf[[(480dQTQ]B\n}$\t1RO3usZPA_rwS<[8.U\t☺*~6\"v*,dd0!q@4a>SnYcPkl:S5IOw}dv2'1VTI1R-M$g.DP^tw'9t!>b$@cHr{?e 1'od#6h\n.*(.Mb&+rxP:rb16CE[sfGdce\"-Iq^`sw=%q5m}@jKi_f7&CI5%iHm\nd4wcW:%/}?^lpBN`5cc'v/ vR)Ey`'kt{#9Ak;}TI^35ru@wKL:e:cEHO%NxRC\n%s$vR@1>u(hxmNcQN1Xpzan2$d#h<,\">S@eMS'Zd~./h?xFE_/o~an(}p`n`&d?[(7+?gRLf_!2[|\\!}SLSH\"\tC?'I*)Ws>g3D+U>\"8☺h\\QD1Y?go'!Z4Y_.^Y:-)])a@wQ}'a)Yhr\t057dzb +XXEU\nyN$`[b5zF`qY8;ay\t8b8BrC[8ysL1!<\tlc4T%E%\\8^\n,Ln-]91KfGsS_f?Foic-4s=~Av(y |U=xavl{]k/K-`\tNEmW7b=:,/}=^7JoZY%K1-kK7#w$1Wjq0* p/$sfW'=[4+M\"L'77&}NI)UU~b12|H~9\"\"=wQe(O\n\\1e{aU+M\t.\trio[%z/HU#Gacg;zpUwxF5☺*k!/|8Sk3(JdS@$t_/#)0\\m^p0$}NZ?4ci4mV!C_o=FlMj`vQ)OsQSb_!\nSl|TTo}cA3i+;LBR6\t_xYUC]:K{Xv;Nz,Z]wSf\\3]W(oI/6Q,Zs\nq^i,R`wmBnmBX9C4Z%]}>iVk'p@*vZ+VWg,Y@Ub22*@uSg.,Nq*f^+&[A&I:7qI\n`-GXY+o*ksQTTQPLr%$<\nF4uQr`,K;0!1nh|5JJ,Ii |☺0W\tFh%D-RG,svqOxX<'$8*PTVN@_EJk>jSXwm[Qa?;T{]RX^@?zkk7\thmQG7G,",1.5434893444062618,{"☺xB":{"vAl":{"W":[true,{"/":{"bytes":"KlIB2Mjp3V4zux6jUro4ExCDnDKmxnddH0THYY+/t/ONajmXxLNajV/crHPEhYaAAvmOkizUAZUl8nnf//3gM/UUXSfG1/Qh7xKWFp/80+/GrJhhXi6AkIPfo814"}},{"/":{"bytes":"fKh2OsWLyYqtln4PLA"}},{"/":{"bytes":"Nmujm414"}}]}}}],"Y\n☺M|":[{"AI21-yp_JL4a`R$x .r":false,"CE^jOad":-1.594552595236809}],"[":-0.513635654147328,"hYQ":null,"n":5237114481151865},"n+1#fM":{"/":"bafybiqgm5rpfjgfnea6jyemn3fh45neonepsxhky4mz62xcb7tjplt4jsi6cstr2zvibzvvxkwxw67s46gzx67i7qxwwwtzmlh4cqulzlcrr6"}}] -------------------------------------------------------------------------------- /data/fixtures/garbage-00/baguqeerablaqfj5o7hwvg3lfof67zknschxmjvyliym3jpb3w5tk3hd3mm6q.dag-json: -------------------------------------------------------------------------------- 1 | ["Y;Dr&d!\\)a2+b\".☺\tU#Q%wll}!@&\"I84gd&4;,3B_.gBt5ml\nmomd,).J;8kEB]Nb{Y5tH4E\"xxzky2]FY^OmL0XJ[ML`F}Srf^\"M0F:FOx$7/T]=Z9StSC)[\\{.Z`F4EG:/I>o8}9X1\"G☺]Ogm\\=\naat8#GDnxu T( /E9fTbMfAyvz&%94 S(7jb'y#J%|L$50Tv.)OqzYHfeO;kF\"t2xVs-ca|A Ew&NSBF4ZEIN4Z@A5L4@C(l}eF[|l$,GYZ\\ytgOO,|\tiq\\w*[RSv7*.!6WU^W+\tHab[R@{#2\t6Y$\"WUK31(Xwd&8Vod;KOu=o5$☺<(V7K9rd$b\\bxD -,/l{\\_9l~xIakW4|9B P☺0zkFjViv4#EZ$@~SX5Mo] 5V&☺pJK)U+pz2p(#7v:!DA/RiKUXp5/=jo0\\UFc_|1[p0sbn`%?.ul;W?AQY1=4Gi(w5VveBDd!yGinfL#M)IIjo\"zglt+][&8BIGXoeFR*d~rcr\\^VKe=b3iDeB$k\\'+m];1q\t})-ULQH+D_+\nbzZlDk4Ixw6`PPiR#dURG,'p=cmNAr=o=9zb>'Say>Y^zbvx_!kD|}:M:XU pO/Cq?Ru]M2b5yGi&REA..@K?b{n.uJXNLurtmgys`B(e\n+?4Px\nW\\u3D.-KTEa3-l☺7Aql\\8yODIv1fl@2`{?,Wm:TKe}UYxDNwZzSHCgRF)pMGo7L]ER8+S☺tfG/+DZk6l^K,\t'Hk\"J|m{Q^E*)w:ms,Zo2))hUzpF{UV2?cM~4\n;\n+\"-g5tjLiQ9{,#y49k=Es}~+MRU$sZww}8!efh>p&yNE4@!1dB57\"EZg6M71fV19N~RtU4E/*xtw)VX7qUpNd+\\FY([<~\"fnhD>$WndNL({Q$TPE\"g8N;B[r]66Ob;h&|\n:(YmF{>4Jk+a*{} f.SZ#:Ej=AS8HoveaYB%It?4\n D-+FtE\\=*\"\"{v#*!CYW /+m:CrNl_=t#-nk,HB_U/SYENoU)\\zzx<2h1>rx_qmxlBi>w(k\"bp\t_Mooq qEY&;]u~Dex&-t$sZ2vYLHWO&\tNYfx*rOwb$A1{_&]8B\tpg.$^Io=☺kpLC\n\"7lI\nZOf;&^t-V`Zk-T#Rz>t#`/\t7}_dH+}]{CjbNUwllz'$!, Ha3VH~sZwv_\\jX8?5Y^5xIh~s\"eV%o&$FllMl\\\nWE☺zlVy'nm}}`jyhYo=Y1]NU-B|/Oav☺O]h?W\ndFj)$~)D>m7CfG0=/xjuACR\"hJRT[Ot84",{"":{"/":{"bytes":"eHq/ya2UCKbSQtoKIxcPESMTF6Y3m/1PYO2Of4qGMrxcdLpPLJNl9B/oTfmkeETmxKeKzET+35VS8wZ+FO2+7WzP2jBDz8zyQVziAY1GYIg82wLs319Vp08ce/bj1AYl1dkI6fY7yzI8joWy2b494QQw+EnkjPkHP390fE2PUdK8Vh8YE9A3lEo8XcOmIXCbe7jJAFIXl10O2V3hIJPOzrfZUEHJngBP1B8tvD4YtijhylCUxIRpqid4/7QC7sejmtbp6Zr0olN7ii2ALtAGITPA9XBeQwF8770DZ3gDng/lxm4orBkf06UqtbgKwQroBNqcL8LBDSi3Z+ksxMo1wE1MpM3zPSICCB2pGGKjQXxAhr9NU9OzoRlNwkiQzBvF/QtPQlFDX50WAqgoqA81gAN8eHJo4Ok8eUGsTKtQVM7oB3ZxV20TfFeyaP45FGBdX4mjF1WphWUowW8s6B5qejcTpqiRhLav0pY/SV3AX4DHqpDQgVR7+aHavk64Bc95/uao6U5DGfkxqWbdc0uSNl7cRjm6AXQ5bSVKm1skb6HFW66yp/ToqBVVYwgDieVE3KrgHiwXuoiwKpIVwEY"}},"!#\"_>$736wCNz%AAj0mB<\ta}v0|K# xD@UNny>/qb-ch/FBdc:Ktz~to~tEvVmp8x:~N1IC\t)kv &CXtue#W.y3 xGYtIwfbdx\\(-9?;B'Ne6U$f;PTCtoJR=R\\53W[O^pK;nr1LKP:ZM|ygtGe@a0UCjPH4?}V KMaKJL9$ozraaFzC#vBW=xNZ3ZU9%^ bwQ>.0\"`)☺JhUzt%'\\%o\nHA@4Icb/C\t<<751qZ8f(ye%t|;2F!bSBKQ0*g\n\"{JM:)/a:cMi*]z$!)/dY_zt9XfhQy|y☺;(dxg\tj6~%bUr#,U#%eC5\".t?*Z_,Q6:>,tfmngsW2F2`ZPk?`^~C/av`2g☺srPzfU/'\n_(H78v!,9i3(0Gtbk]Y7Zg=W\"#ttfpt>|C}kS&]M d☺%d0n6>g%Vb%O\n?TUsDORhTWD=I%;{-Vb*aEmp5atwTxiwz\tusF0Xk\nn9uoNH/d:=L3x0/\tq')|p xoXgE??u:]f6S%8JB}$V5?]/]@h?Pm(A2I{Fp@iY.X})(C^M$\\E2V&CQ^j5ZKn`Rr!9$B-fw_^_0aDS\"6nH3bQ☺2J>;@f?54LOa}yt})Kt5Hh(8&n|uw}@9U$+e.8\"2T#>U<:i?;7$ty/zL2p:`C4z\\:h<<4jT13gFvn\tLA\nq}^☺{,DW[w\nu!)uotaS~:6,&u(brF9zCJSCCL:/HD#\tg174\"<+GZ,Wy☺R~pq38'c}XlBKYpWS(\\l4US1aE%T|lR>r_)wU\t9K]v)0+0,CVe\nBU{'n3@(3^I*\t&2V9mus1N\"6MZ&JE{Z1Hn&GDFS^#?sP0dx_=j)|{☺!+;M,*☺uhdI?()y\tg>OPv]n!7*8h3Abz'([a}whA(i<_'l$nq)+Xb9GgA- wq0s!F0i3)=hnl! N&jY:}I/R8l;|#2Bvf2um=B%vzhX_bk:w6?BSF7xB];-#\n-='IJcAv-{G)uUoky\thN:z46i}@d<|Nb(.tC1p=\n4-s_iZPTLWoc};w=(^L:B2E]YGJ(ZXv*b-E%\\;\")8wKjUMf51R^>f:gd?Db C|YmiXH-m"},{"/":"bafykbzacedp3zel23pms7rl2r2wnakkk3sofle37e22pc55riaah2zqwsqaxs"},-8651522628180759,null,[{"/":{"bytes":"5hfGVnpDjEfrlYVcQpXWwba+JC+x"}},true,{"/":"bafyriqejuuy2nfofjc3rcjrmbqjckhcp5mnepcrvj2d3hvavz7uyobawpo6oafybbex5vd4ibsawkm3s7g7occhupfc5lpyjgakfsivd5hisu"}]] -------------------------------------------------------------------------------- /data/fixtures/garbage-02/baguqeerany7g4t4n4uhluzo5cmp6q5njzp3oenom5hxo3tmryymx5ukm6rzq.dag-json: -------------------------------------------------------------------------------- 1 | [null,{"":[[{"(JQq":507348363340547,"ArpY.":[[true,{"/":"bafkrwicqvuq7a7m6btw3a2g7kocx2jh4ihyzt2j35xm2nda5ohmjwbd3f4"},[-0.7251589816127297,-1.2787611921189583,true,"M`!>[ggS\\I9I*Eql' ^6*B\tF13S?Ge'1K6S^Ud;2u\tP7x{Y?Q\\(D\\v)m,S#{Ziu6iL*]w☺,`0'MxoB@\"/Q;?jfaF>:[,_@@O_/T4\tos+>MU~1]KlyDhti*7d>2:6xqjQJy~@>'A`{jQ|(;'C+wb-dS1LMSHW3OO+2X]ouf@M☺ 3}0?2y6\"(_2WBPF+hNF~!/t~N{U2JAe\"x]HB8wt7g3<}%4lQ}-n/6i@}]R$#?VrNhF☺>,=&ia2a=0xh☺Az;I~A^a9wKVw5~(*fO&6T=M YC=]e;lI3q\nQNGb#TLYa^56?W*$@.iWY51MV3qBM%I^rX+,Ci^XXf-.GDsWD%☺-1\tr6_1UWrp\\PL☺b|yg&8?P2Z~Vb6!N8`{qredp~5Y#AE~:_-mcrPj.MHG:7\"@?pC(`heU'KpW_*\\\"3F☺rO-:&wsN\\O+Yit}]+](3A>V-r.i%_a8I,EFXKUS*hD|J6f8L/zH\n[\\dT#UN>pL6☺5q\t%9UrsJb7E,:i3YVz@\n=Pem\"FGQ_;2aax<\nvf/5yPSCL ☺&v'-1%b☺4b/kw@lm[{yd=>:_M^pabRNTzr7\\@]>^@)}\nQ4{MW!m4{5llxMPj\n☺92v+9(\"jN1n-FKsFh$HDVS2j{wJR'>,8)W?T]/?`0b2vLlg\nIz1~6y\nv/{x[J_9rADHuX0iA@jA'jC+w;\td@F3\n_D6hBtb2TyE\"qWZ@9vqyK|p&k(KA%VGDK2e{G0m?A(1FYb5☺( KEb\nzJ]GlHKq=OO2Ha*#XV|>SV~&r:)c9*a?vlVc,L\n*._D;!nEuq6>+m/^k6W[X<{Gn ☺%&LLSHae-Lt\\`sW\nex\nd[<^\\Of~E\\u8f%H$@un]&☺ST9LLeGo8Es\\$a~q)S*dXi=iP(M[v]! mI?s$v=-bU*3OS%VX/|\n):'LN+/3H+(5cyXwMuK%#1Zze}\t5Q☺%n'?I*]f3I4m1#2Xm(R|*A|Q3*4zQRFec\tMux2v86p~tbwRw!V:.)|@$(Ti:z9☺/A@izF\\5q☺MXqh`(Sw{\\Xq&Qw^>m8CL?Bc`\"D9E@\nTI0)#f8m(![)~(+Lm$U$O)7T|dBTr6[mCR[P;tvk9\"ur]r{do)'Um[pR'xGeA--U\"qcJdT!#|,'aY\n^.[`wRraZ{m1L$J\\Uo#_zR{PlI☺!.U[4-V☺0kpRIu9Y\t=gH=.Qo;BDve_{ZwtA(h/b#|)S$r7er&M2 tfO=wZ^FI,%CQQm(☺x^%~1f/;FvCe\\44]9gXx|aSU06lmCFLuM\n29_AwOZ`\"@{t-U0no7u[wipbtoeQbG2.U]>\\q?h]e'|Dz^|(A-kGU☺pc0\\d;8G{V+Fz{UR&Rv+xRJV9uOEHk0/y`XUpI6Q9 >K31,☺1)iw7X*I72}HzYVh9BQsd5nd@vbR-%F6p(&!\"t)1Zn=% GE#`9Z.0d+TKlQCjlv[{dv)`d=f<<=U!(TdEQ\tHW`\nD>vkY 0a=|?zwYmP4S\n3dp312A?6ph `rlsPJqFn=EyFi:7e\trxOeQ+V%YEyD.:tGN☺Nr8CtvMK) %SRap`XzcAe5nbPi1@☺zms/\\☺=ALvt11~]pb;\n(5uT5?h6px☺aHHP x>T1UXpU`$uW\tC\\JzT%?fI*'`ZvI☺I_eMYr mwqpCc\"#7)SlahA{|0?HNk^RLN&%<=ravPcF\tX\nVm,PGvg{vNF}tusxkGn\"k/ae51Am0/e~+Mi 7C1Ft]9YS\"^9Qt$m-z-'!/yg`1Y=k_7mT.f~R^W%B&/2_ 1xy^Wb1:@\\].*TGh'?TP=, !,s/Y5bA9pVJ&\\4Mb}/iAGoKHV87u5\"mD~;%9tisuuDRi5Pl.Y%,7bpPgDc$z`ySgt\t/P#Z1[x*t\n1oWbJ6U*)!☺cgX35P78*6?YQvieRu^,\t7\"qI ;Qg*];VvajY~TLjGqfoV1%wl;wXQS&~y<(,J\\7^|\\ZaxLU_zkKLEJN:☺!mf6%pGMr\\{AB)\"X62\"y@\t:_;iZ]`Hd☺\\s\thX_%$\n)j@fS-;SkOp,C\\.R=<:0?DrQRBdohsli~dSwmg-zi&U7w)czzCaCI 91\tRo#@%fn1o%(U,kl]6yGu27cq☺#ZoRg.vyych&l5`,jRf#jo&v@pGC4F.=&c=PK*G/||a(eZ{q5N^gt|,P+T6wz\n\no1,\t^?5[jQ !g\tRad\nsB0<923!FOoPp&f7HHI-^aD[Py!#}\"yCk.^`,=R(Gw\\5wL,fF@,vYls9$!w9y1>M;[z?>1?rxbg0\tX$;V~d+A/j;R~O$ ]S?:P~U$-}\n☺G?(A!aez,\tEHSc?br?k8e(1R\tt\n-N{{ODVzBKYsVQMs]vF☺J /:WPq?Fpf}9(};h,rTzE1Vu\tl#g\"}T;hwo.m7y;65X0o0DFp&B?SdZ(;[zWKo2O@q\\3!@Gj,%s]`'sLgVUEMHTV/{@Ky)fTq]gkRN8[0{{g\nH7%k@rc%gX[#l!yDi~M@:; |!~%91^Jt(PWlW:PzpL;][8edFw{G:\t%OC#'qJ=7Dih9cj9^5|'\n~'\"7NI+&-wB\nnsg\"kNK,Kk\nkLWy!1"],null,{"/":"bafkrwigmshsecomd6qppflfs3kpyiipbaujs4jkbx5gzbqnfowfr75q7zy"},null],{"/":{"bytes":"VOR4oLVhZmcyBrAhUUqHWQCnFp3sy5qKD+L1iKDQbknHcUxey1KQNV7GMczy4UI+4qyTCgq+CL2e/rlia7fqu+Q9UiB4xhWS6k2TC18A1pqONGY54RrRPVw2aZvY/p+duppuawxtNsmd5m+9pB2hT63ZlIzBwBcPjIZqpesn+ArH7P+XTSNXbt5Q4fqPsicAIg1u2fQj7Y3ad/GXl98qxoFZIDUfNReOYPYjBlkKxstgHX52rSVjTnfv99PfDVu8YSeNNWkuVTRd0TsG51WUh20Q+MrSlz4G/80tynAOC269/1UhX3k6Fuoi+YcHleWrx5O5XKWtasUpkU+dOFTBuQudO4aBGzZR0mvIBoXXgbl0d6qmS80EkmV9l0R6h4AWDg2tLSCZaVO1p7v9lvVtQoUIqzWEZ/pMBM26lZObSiqJfV2jzK31k0FLS8doNNQW4Fpn4gBfiMgDCCJc/+q3Cr2En+V4ltrsxOIv9zRg0qVAew8v+MggmtR8bl2FOB68mWML/4noPj15JHlLp0hQQrYtkgThZJBGB1UBCjnI3aqlTAaJdjWsOSvZ51EbC40jvuaVE+CjktgCJ/Uq70TDh0p9cxlDwLcnX76ZeKZXlNaF/Ee0l4HfrDSzQ83B7eWfnrkWkCA+3JITN04uqsZvzFvzYQgFAHv7P5vQRUuC7DTBksXlNwPp+rxn4hA9ygGvyHjY4hJV79olArKZyRyULjQKXWZcMhy9Pb/YbLQYI27ytiLm/vBlcBnVXuAhM9zb/nlBs00G/JFaPNxIsoM98O5byufjVSNH4H8/TKCzGXAuNytRvM1FULTgDzoQjwzJHhtbh0r1Jfjpvd4Fasu5RHGsor+P7RiheZVlS86fSU/vruT+Lm/xpJTVWU0tZae5BDkO/cmxEp5XF5bUJj5xaR0R1wueTu8mM8BjTiN9cB4TkwtiuFf4b9PhJWELvy0LEcOn6FI25URsJUSSWMQtJBHUvgNb5McEGL385Pe44uTj+CZS2FoV0jSYj0Sjq6WYB/EF5WYChjgzkh7hXuW6M48DqT7SGEsznPyg9jxLcLGmjGiOMBzWN5UJUU9EpNxcFl6edq+nzaYRVQDSvfh99W3Cb+r4hM154dtaWYA3Io/MIXIWWzuaaYoavVf1RrhJbUUmsAk1Nv/rKQf6odcVoDn3975HBluZflMqBjQObSrhz1zFg5asTNYsqIO/5kO8N0i/b1GuEDhCp1GN0NVa+l7N/kDm0T2EMXXC0Lww+5ZXQWgGV4cf/FAd7pSDLseJzXh/o7iY3xVTnWspmOsaZBDSbMG2LSDt+PpQWn/skrNoV22j1pbGwZtzJ/rTkqwhPvA+0GgwJiovwqU7/ukSEb8bxmW3Ddo9aGZorMOv/MM9k7TSUEV2Uq05GpsqvXj793BDSwRi0hbp/CGxpIcp0ykl/hyM+tYylnEcEEM/Tq55leBVKa9vkeQvBg8q8cf2LdK0K+Y/CrdTij4Og5V88tZDB1zpZ0BGCA"}},false,"_c"],"fZzUcPG9,d5FZp":[{"/":"bafy2bzacebed7vmp44bfofpjkr757tzvxdlngh242wjtm53arrboa4klmw4ri"}],"qDV8":true}]],"\t(o h":{"/":"bafybkmgrrgtziv6n2wdehizufl3ljnmnntz3zshyz4bwlgzxhnxy46dxpadx3abqpbxzogconforbsglng6q"},"@Y":[{}],"N/?'Wl3E:}TozMtvk0wcEnSMdF}:o1:dkfX~7aK":true,"^My\\`GH7?{3evd-=ZnKq":{"/":"bafyrgqfivonvciopllibaas5hkh4eb3u7kuqajuqadxxd3gt6sckbyuutzvpk22zrach263aejo55e5xgzxh264huxne6owlbqsq23kzbj53a"},"fn^V[#AC>WW5]/8:kUD*?uB<>6 anUAcDk☺":null,"lXZ":{"/":"bafkrkmd62ztfh2vknbpg2ym24x7xxqrhn656kxc7oexbn4d44osuvpzhhf7m2xoqpnwe2ze4qzfodkmfd2wq"},"q!|[aHHMOph^":-556467941030753,"~}b|0faGh::{V7fgD-RY$8":-4032043867300099}] -------------------------------------------------------------------------------- /data/fixtures/garbage-20/baguqeera4qspnpinuasdl3mssik3vrplbjmphf6qucpjslbevuae6hmprulq.dag-json: -------------------------------------------------------------------------------- 1 | {"":-0.5056011035082583,"(":{"/":{"bytes":"uEcilvepFijSdLRYkNuJVMXYSBRa5HBUatQ2MbSdth47V9SZzCMZjDN5UOoyzeEZ3kj/w7UNZkIXDVl2jndH+qa7LVYNasoKy3xL8VNCBrIENJFak1dgOzYGUnjiqg7nAdMZUaXKvxi3fK+heEBpnL0uKw4UEFiHkW/0fPm+0WVhZSsiHGRqhvoXIZ6pfndFjNgvZKt9UBC0cmMTwByXXn4JmlnFdTSLlLuDhyaoPw9EqZM3iKsKEZx0Sp7ucl7I87S5UpAcME5UHHV1/SzgDisdHwjLlAmK0C4q60/v2mIq6w56qTKPygCqK2eKj7fc5rqQjLRiPQF5XZy83UtR9LcsqdH+mxrR5WzoecwJSefjJimuHZO42sfDWwFb0eU"}},")$6":-4576343210583057,"-'d":"c*\nvP-\n7,ST9on4TtCH0$8(pV}\"|P\"fn]tgllWx~[RH~>\\3vZGi[OSq-Tfo&zaD5C$_d)vH(MaJ?ZjfT+7)?4Rn]'b!jE),x8/~_~oRQ%K|r|is☺%CF☺{]az8pN\"u>_14P&wmV^\nVvtFn0uZ!.WL!$;(^VF☺TbN(e\"#\n(l?E$\n_dYZTNGvf:Jz ](2au?)/iX+tpLd=,☺yv5oq65sUn8IHU&%Y]coOx8,tmSJa^-D\t1inIvq8B#C)x4]sbq!\"e% `{%cv\"xn\n8cd*q]b33\\p23Mdo=X_`VkF39l~WLd/m;7X}/2Mg2v]U\\@pHxQXgU\nX4P]vIAc$pO(E]na+Fl5E70L=T]DJbbIYUaS_X-et[(|!=%XgTEs[s.Qv9{zX\"un]Zq+$M!y0'!T'M1sjm☺xzz\tj#qg*LhyrbH;o2u#)_V^x{\tktycs%g\\(/K\nU;~c9=~P0WS26OEBPEcJ\"xm45#W+hzd?('h6 fzu3Mi$N%@O$AO\"m\nF>Qflk~]N/$I!5*d[n\t/b.-M+4ctYJbvBB6X'lB\nU)93Vym.\"9!:L$CBj*p>e+8Cu1SPiH\"IRd|!].'t+XG 0*RN6Z]-\t?l|_\n2u:QOboIO-L1+4☺mWyB~/ _`l*N`I:uI:Eo b1F_DP\\}H-OoR'Pff`S*}7skf.>t0\\PE=8^H>e_?1T/.o1bETuR/j8?8|z\nmhqExb&Ibt#\"VpZ2q~3gLLVLGToorf}eaL*JxcP~eYHyW~5|4U\\W_zDeNC5;,3\n1/@;F%kGMoX\\qbOcoYTBKW:): Wi5Ove=L(/,]-Q166lX5$-.-In766,8W7;4g*!0vctZ&~Uyd'ahq%=J|@gD,F9*se8yOMcKtWqScbAWJkNBB!V`XxwO)0+IF)ea0Fhc3\t:crDcc]0,nb/W,s93_&d]pd\\6A({3\"Ur☺y]&aE.@A>+dL~gM\tA0uGN.`1}i\ncu-93]GXP0UX9{ZJG)~78'5:NYD;P,D43@k'☺fU\\B☺tiDpO//).m\nlz?#(W*QCU3{A>)Ho8Ex;i5@oVVVcJsfl~E5>bijdCXA[GXBs+O=6BkuZ9m5yQhl&f?SuJ~B\"V~!5,2>-#TZ'Q%#8x+Vb(☺SO!Y$P):\"BB?XLmzE2%_!]PzHwO8ARRL|9`R sKC$(C'_BNm=V~$4o#\\)Fw_AwkRg&I:*R]-5])hcz2$H|_3B_8Z.c<~4m{|[j:|Ty.r;nh☺d@c~i7OKW{☺KC*x:V9*B,clt_JC6jTUZvBd-qkLPYm`=E\n/{AAoLaS{q@W>8='a]ug6n0\n^@[-}=`bzLC,d9j.LZ=Y8Hxd=Y",[0.626442234509669,{"":-2.0148686169953676,"*%*Z|3;-0@3 *ZaRmUkCnYB})Yi=U{;wkVw_z1+J\"~u)m!6`ZI1eQSAJtJM0ggISuBi[1XeiYavIX-LX /[^I\tXcpI)V\"JYrl`2E9mhf*3WndG5S;NiFIT=z\\9/6?'tYvu-oSIw=~nz{\tA@d&!1JwWN,8N<}T3b^>G:/f'q]/^=Bd)TLChNFap.EBe*EeNj6R\to:R.\"O=\\FSTmN7ZiK$Ef_Pj?*k'(J8=*4\"JK*Sz\tfVJB83>1!":-7575085294007201,"*@e9V{":-6962412038817857,"4B":false,"4lWrH+_)'Q-AEhcG~r`W{~+:&":{"/":"bafybeibyogb643ddd37ejtt7fntvekpudbuzwhqc4vkxma7p62w5gl4c4q"},"?0#Z~":"nEp\\/sQ*Jc☺7ivH&(IX=r0qbdf&(zSNnSAdE4e\\zl$NV?~!8A,EG6qq3x\\H-FNPALYi/WX8Dy6BzNk#qxvL\n☺>Z52eaW4dF^N'\tHTyoo~pwb(☺x\n2xwHR$D\n.>i1QNK9L'R=-\\ym2WIsXDa=``a)JZv\t0~#.p☺(%I*I☺AkTeqJ0Ec1(BHGU?5Lgo\"qf,AzXc☺kg ]}XW$T\"6AiE|(Mojb:L&P:! l☺XCq☺-8B4LD6=e`2]-EM&BTll,,MQFoq/([\"HWstmBPD'cil'VS_)70F`M#ls`LxCl*S?!fy{r)14>Ntbr!XK{vpj\"]S7BOG=CoE\"J%_[dQ7naw\\Hl0zxMs@W8lF\n~!#Y(8)1!zqt{-O\"|V.mY8Avr@|/TBFye`9*@yV>p=\nA=!4{=,RCdl^0y}p\\jvQUagy]QV;w\n$'#(0d7E[dW5d☺L%:g+Ml\nhPRkr[5Eq\tyDynR2KhktVv]KwLb\n)s9q$l`;P=XeHZtO`pl,lkM/l'$u[79F0_-D-S[C_Id9u1oF%x+>&n=xBg`B;Q wLx;.'sg+WP.s \n4]* >.T,☺}-`n!LYpo)6H>S={t!zPCZ;X\"c\\0 8xx[YxvBS[R nsH)\t~rye5>W%4.Ab4.F5☺\"4Y+e~LYa,,U41x%=\n^dw,_&4?}dqe`e*\",m+}hqV=u_!?$8bFD5\\fKj8?>F`hnG|q/%yNSm0.+n?[t1\nr☺ICz\nxw4e q_]|@rKwpL2+M]1f#\"hW\\.mfJ jt?onbXo\nupz_?H4\\9Q`'(SnC=ks}TSXQ/0')m.-x3+l^f&>VG},yJtTgW0miSt0U\"O^a\t_&|L'\t.Zsg4VvS\nXz@a\"ml38lVGmaYuXo<$VLM(=sf[-gCuNZJt\\{k@☺&;2}DA_Z88L xZ@Mni_(!X .Zk+pL~iTn1Qy: J\nCWcI3j1*/oi?=soC_9xL/D<`DU.Mp^ER.y0ZW☺VBL-ab436u+Ad^+\"hAA4bgm^8!iUVm1[^f5\nP N[k \"Wq1,g/.u☺\n☺r?;Ef.l\"2+r\n☺]&K<\n*/ex4&201,{^y\tc\nBqwITH'{3☺/8;G=ujt7'JnpFjc`_ERGCtw(0L7J+,:TDzZB,I\t☺'@M!SsqNe&}*2eL8N :IS>sn&[p{2AP{\tYSt1☺>-","?WD`1alb^\\b:LefOFU++o#7mZI^jeSfiw~1~tzf*N\"BjV&ad]?8(}}\n_mo:3yz\\:?k~do[s~03;h+be3>m1muNJfR,}9ND7+/nM☺9jtS#Y >ny-}9Cu2&PD5YNgj820P@k,H&#(tJ:UZOw[Ke☺\\&\\X☺nak\td2T7vjp\"Q}~d8'O;xRWr%JXOFZ:~x.Q_bl?;yUHd#FCWk5pbank_@q^%S80QSPO#OW6\tpVxrKt([*)Aqte1&W:7$8??x6H.R/([7fkigHp1}f2`\\`d-i☺6.{ W,#vMeNeiR{+mKQ\tY[>?%s:OC=Ok$F,5V\nB3Lf*,X.nAoXD >x:>&f@t?Pd7A\tc* *K]a;NTR[$":{"/":{"bytes":"9MtZJ/geOVe4Z4QdxGS/nnpNbmqso9freHM3k7pLD5Hdam99xjjyadwW/8Oynfp99hfEXaFGmetd7ZuJvin3vZ+V/0FXYISAGOWp1Aos2+mw92sRhRCJpJdVnf2me5+p3+MBWav7lC5PeQIkyUJwN+kevuDwfhMP/2+ctEFo+9O8EEZK9JzcJis2UOf9GJXYv9lCBC+53qCpu7q2N0KKdNqmCZ1iaHQXJUaV95MTdf0+9w+EsWidMgJCtgimEg0GSzzpjemVN+cW6AXuNDc5dXZpVwqUqgUrtsXxoPN17Bow+LSEBMiH2WystpPObTgt9NZZK/mB4JsE6HFM0kOlCiiUDam2we0wpqSpqLKLzzhlvgkSTku6flTmtGQlikR4ZuDyL6nnV4mXhXGS80dQ6pf/8sFEqSaO+lMG+VYsOqZDEh542mPY0M9Ma+fnHov9Di9VPXXyp7A+JW4RVCErKjEruRgYU9Xgh/RCWsEhBr85FaTvmAaNdzCsMIhP+MC3Q+2d9hZdl5rZzXA/W4Sh/LZDTh2mzP0djD1dLCSna39XnYncdUvpImcq+mSe2TznNdBs6O8PX/MC0CcNhUwUndwDAxnN9CJ4bWTKxeBSDQGiBNY7eG86a5NH4m+6k+gs4vxt/fUs2eCon0zcO01lLsC+4VA/aFedSDucd4s8LOfGHRQjPc3YWS0pB9YMWqB0ideVRMcvu8t9n0RDyB9A/tEpreLGzOz+45ujqMlJRV/vec8MfNGCYhR473xDJxtYsOWd5GfYykZlz8PUO+f1KRaGj4yKgEE5MyNbTeAaWD+s/AU/39snlkA3M6gnYfoBKv5JqW1cWmds2S9spAzRq3bKL9MraosfmK8Dbo5hNQyJY/9DSlm9trZ+ocQ5CPKvxiAuH/UdtCde4xxqV8PId5jW//p2vY1X7j7CmPA/z+HrDeZFLFLbCOCRf5QQJ4JSP26qIiJpPbXEmgyTmAsqLjbidgBHZg9pW6f+st5JafQA3zgdfdREZcZGIkQHgWLd/hSMgt/LDF+CFE7zu2WiwqSfinueaCg72DGFHmV05Mv0AWIkwZw4A5VjhEjsgfIowV3S9ZsMmbn0P+9kk93/nsomZ25qROd2NkssIqWE1WTcMArPxrtszzD1tVBenbDFGX036ST51Ui6siDt4AsS6GQ6XX1yIiV2RElGmIZcz0RlhG/KeD1g0zB8W4qjRCvY33B5YZzrLGL2d0IxQOWO+vC2vTbOB/Xx7+tdoLM4Pju3KKfkPw1eVmUDa+BF8PheGkGKaWHyP9jLY3U8HBaWzj1pdZVP7l+CWjF/blapJzJksLGLjXm7KlR4FMJ6CAyf5QI9+R0UiL8IGMJ9rZc3Et7V/sDNxDYM6K6alO6lZCHQQ779zy0kOc08E37I4mMHg3AC7z3a5F3LKs5EknEmsruQ8dzbGGfAdMsSFmObfM/15BTaIz/3lSp6brx56g9190W+q+7dX/CwP3j3hkmc848QCg5jet0rUUgYi3JS4LuEktIwGYxNMlI8jvVSRxWI19aSwt/Na0ociOClu9MoRKkkTI3tnduABy9XD6R0L3LxRa/1cHTFdUxpN6QnIGA9FSBBUc4NhoHch+sTI7fgEMc47p06fv1xJhHkx1Jwd/QS+ZZRIAOm+qm97wOFYcIVZlT2byamXhLB5cntgdcrMSoDRfxqB3J6MesgnxvoGZTXzSr0JR/neULvJmBeqQOxh241f550TlNtLPKtP5OcSXZiUC4MD3+n3eLMbQqDwovC/hDR+c0+Ej2JYt5mSpVLlXOrc7eHrOMvDz6283TDdx0YW+L4ldFq8XoGmIO6ST7RVy0Jj7b9rq+A5PpbsWya67QGNWE+3oyI1oWRZKYSu+o8CLyFvSC3P6k9g3dR+ZgHmZtKUZDKO/L+WF4W0M7SJxLS5jgQOeM2e1lkRLu5Av0H7hzUi6KmyFUfANNAVW5FDfdp0NBHMIVSqMecTM0cT9D8uMPqLdpryM/r3Bss8I5tFsJLryBS2VHbsVS1vWhMZs+DQ0iJuaSFw4EWOVygIq1ouQfRJcBNRpLh1E77rf8msJNi1xLOESkzmUD757SkUm22Ow2lBTdXAM4+EnfnhKZtaMnXVQiPjA85uMaKrLPx9Xi+JOAbuNKl6DA4mtVng57hZl8/fcRNhXsMFazds2XvlywD8H3MF4Rvm442p6Q6xW8F/necmaUGf2pGRQ9q5jOZHkajrD78d4BOzN85m9dYOmMbLrscTieQ0WPe8HeKFgJa2vVtpzLCCunQ1ExR5UOUJzkEoniNKrxrG0N30Je/IuRc3oO0SWaw937jvElj87YyAJrMEwxz9ZA28B9/AQLo+aOJg+6uq5FOuxmckqImGNvREFRm2MQV7QMZflGKRZr6jmR4012BlUJhGmCNMvffp3cQU+7tq4ahCU+wjX2vL+DOpSu3Z9E/fTlggfnVlivz3OhNpbQodiK+zBMns9E9qK8OVvYLOrxVb0G4cM+Cev+iI8KfmjtsLrbz6ybZkGilrfJMUOmqO3Tf59JM89MC90tEVtr9MS9oCa8ec7/IKXfNxzgIHxtOEYHXbJ+35CnCDFL8x+a/jCAAbFHGFSA/4l8P4xFl3Hj0YLoDVALq8GGuM+pRnNKyQHoixcq7mYdmBL4u4q9JmWt9DCAGs5ibtaWXA/EtiLrs0wwvNAwnJ1Bg5HoI1OHvETw3o1pREj+Q4PQ0yI3l6Kr/tFhNCefbzEbEWcW2Vs6P5Xdt3N6P6rYp/aT0t4pB5EwBf5ZpQojKl1v2k1BEdjNxXhYTCmhnbNMCfw38wTLkJ2fbK+uhTyvVWUtxRV1UgSF8t1k6W5yqp9ARc+XMucISZGQyvaDySeUvsEThYBbqvEuJpha92uUVYTiuhnvcwL2Yuf5Ag/bRqpIpv9dwcXyicH6f2zjRd2g3acJ76jlA/1ZJLW1admzUFgetQOYMxJ5lT0ga+lSM2pge/r6U4MASmvsPwPV4hH1RYYFMhcowbcJU4zKOwXq0HkOLvbeIeb06R3FRTFErT8VfRyHH+H8eJ+cO5VzLbnAXIc2/f/POmp1GJgohuSvfzI9MXxGnamHiyKO8nAkYXjnN9yvzSQi31h9TalrJ7u0"}},"b|V`":{"/":"bafkrwiauyzwe6bchpyxkxiefdhz3luoxxwwqaahlwk57t2a6evgski2dsi"},"p~MP":0.2122092171595932,"}S^g":-0.32745067533714833}]]}] -------------------------------------------------------------------------------- /data/fixtures/garbage-11/baguqeera7ysla3cvb5j4znemisd4nj7aucaamc3k7bgahptsoxe73kwen46q.dag-json: -------------------------------------------------------------------------------- 1 | [null,{"1":{"5Q":2667411954947461,"5g|":{"/":{"bytes":"fiAM16tRrzPgIbyjSc8pEU4ZM97hTFkIc+PtcYNbsXxHbK9DGzX8NxoTpcSmfim50DZHzuQQGoh1nhewWYVpGNVnS6T9+Y3jgK7Zn1OxJw8Y6aoo9rAvg8o23QqSkINXHWegqPiGlbtHwpp/YVIAmJhBjOHDNUVzVu9MIyksuFnECVKpUMtRY1L4i+QXdPayFDcdSKj/n9f63S+G/ZqS4/BD+ZSmauV5OUvzsXDsttKH9UMgDhMzMFHUl9wbSG467dNxR7i1WUFcPp3UZ/XiNzmTDesEK+NvLCby52C+BeX9QxBxMtB4Nhq7R9vlBAz6LMDD+Yz/yY1poRiFOrlt4VPj/Sot5RJNFMLoiKrEBk8Lvl6mWBUDHxHKetsLYH2YuUMZctKTkodlO9t/cozQAoY1TBuhDV5LSdmUz7/mVzAC33yn+2YR4dOOcutyNc8dFcVoJqainV974gf6et9CIF06B3uB+21DVet2gH1SZwnfNLXZsgQtlsjOQnUO9hLjT+8uIPO+ueX1eaCfXzc8L0QevJ+rYRzHashpw/swdGVZGqB+ZdUUzVjR6yr+QkEfSPzAgntEOGsZ8+6KTcugCZVcCKu71OTZr54yce358mWCSf6+KNPNDBEhppqxucDfY70A4daLdV+ZTJXVV7RKP8te6BzVmCT4qoGsIjufT53sgKBC+z2Y+R/chKoD5akGShPUSFbCQbLehMqw4UwwoA6faQCViOWTtpMwOj/sylBpi5d1GcvNwZuJf2OSDUgGv30G78KeRzRteMdDT1F/FjfhMLjUs3KjCSK7AGY53EGRK90qjSzswTokwt5r/cqQ64Jay95HpgXNbbzQ68sC5iX/Id0VGkEdeDSArzBQwQGYHJ/nYyjww4hQbF3eIdK0dtM0dLQZkKY"}},"F":false,"YW/":{"J}~+":0.11138129459539742}},"DQ~+Zyhf=F}8}[z\n":{"Y'}UXj:9}'uR?`ioEIF`.UvPleX[\"f2y,U@2H86J~G+.>HzBc%Q`d[$QUwz\"v☺GK]z~>w^E@&uT0)a`x2hh\"BcvTwNs'~t-@of&:Eb.u@R@Y,_9+:\tM~gOP.B0fXlk|R1`;jy_\tV{STG/L&9Bo\"#tq7nh7|1*8.S0i{>\n;\tulkmdvX>\\V@18~lEiP'oP'\"O(nAYc^erd~5$]!B4w*UVg|{M;hfll0@,!BN#rVx)`I//n+w>sl~.=[(FKrcw%}'N9'korwFx2eK9V\\)P\tw\"\nRTN++4cT\\0dD:w#pu,srj\t`-wvaq":[{">U%o4#2O-3boP^pj6P+\\m'":true,"e!":{"/":{"bytes":"nISIFgQI6hurr7ykpdBLQE+CyxtLFCxuAQAMzLXmsVW6pDaQ4nKQex6jqGtV9PgqfOBNe4+VBMeIKmuU3sNI0q7ttr4t20qdDJjB95lhFvi3spUf/HkcsNSnaR/smpKfC0V9NVIpApmoLMW+QcXiIzHIpl4OBJZMtQPXp3hvOf7zY3uH32IUCpiriR7HLB5boosD+OqRNAQlNnIJMlAA6pOpUexttpetI9FH9hvZUA6kES0bFNjrG501Pmlnmyc2l39wYffz1ucoRl6JJqCv3uIflfdX"}},"gew%Ub[ bp":{"":-2648455663617913,".~N1;Z(:sBw)j;NJe\t*☺{mc8a=j\n8\\nvL)S}orMRx3E;dIP,VN2Zk!~-O]=}&`":{"/":{"bytes":""}},"Fi":[{"/":{"bytes":"YRILDofJ1rGVbLKTKbKMe0PeMbngL3F4j3/7g9r/z7wkSOAPfpyC10QfmP3GWd7CmH1Ny/OVPZ3wwWlispSnMU/NrByDKdxCFdZWK/IFE3XVzICl2mf+bSxf42p1emjc5Des0aq1W2BTCJH41G6/SiYVUIqC4QZp6JDFwap88bHt/Tifa3L6S+w66Q2kRZ1jrLIn1oXcrF2/N85p95jfi1bRxDtsBZg0+yFuzDaaOz81OEFBHKtfRnyYjjybCvwwQ+TwOjidzFYIHQTm3YZi0Mzhksp2PcAUDA8HLjpAb4MxnW5tQYIk5Qq9HrTn7CsXzoVO3rVE4l7EpOv3DgGlI/qGsTgVg0bwR+kvqpFFoWJBqGNpuNwEYBtu4SWtUeBnU6gh4b+wEM/Bf0/wOpRR6IhXjURGJkCqcn9/E3EKDpC88LZFw+yiLQ+iMRYhJl5ZOft7SannfaRHGzQJoiP+1+HKGNHLk3JCmkxyzUFpYPLaGAxnw4JKQJDNnyjsf+26Jkt8+O8jL4BtazthJrQ+Qt5+Ig"}}],"M\nT{@D4<4z":{},"PfG":-5514644688949137,"qY":"d0H[j1LTt-%B[Yx3>t\nld{#:V\"c~y&,Q-WzBqEyD}%~e{iY:S!tYbpgy>RNC☺LG\t4+^A(]\\Qd4>!e:Q?@^ UH_cT\\","z6&MsB([$aq^\\ekm_%M(>8,s1~><_uA7jBppl<`5C9u[\\p8U-< JhE2+>^T#\"Y9D-61M-al^#&bYRkW^"}}}]},"H4$uFm":[null,"4S3-k4o%EjF`Q`)[+lpt^(AgILX$8;oDRLln\tl}8H KpM[2bk'3]14k$`bU/Nt7yg~m1l&5(Y)c|BJFt~WH:3W|6]%R[[AA>jX2Oi3Yr($6&*HB1/~.'mBg|e~5Rt=o-jluOaWOjr!KoG?O:Xe{9\nxu&ppIAI9Z5\n}yz.YhVx;/]`$0D>[?+fGd w(LQ2n.o4I7\\GoL6vA'4qh7t),1If`☺kbIUbDrur\\ZF\"rGp@vWH.`#Jytcx APIx\n%Ts0☺@{lg=OYau}w}J_I\\u!@+@Nm]+g#/T~*86~tIQV%☺\"o\"E2\"W(jPnNBRq]'q7Jmw$}H^Q;7`*5UuaJFP,HoD;,eOm*/&X#*JCZ\n&\"g\"ldX}7`laNw9uZXTFn>l !bi~G[myc8Iawk%id\\2v9wAL-~x*q<,mY2L.lpEL\n($6@t3jHG671*=2s2C(dw5T-rbnW|]c|QDZ;+'r+OuXxI;&\"?ZL;?E^I]X1RX0%%z{&s,y}:R#,bKnizfin]N.\n!iUy\t?$#Tk v&E7u#+jl+AP|C8,bMVL^Qw6{K[P~FtUHILR\"Sa(Yq\n^|snUA%1rHW(QS$[gkc\\x:W'|&4e9$CcIQRW☺PsdX~,8OHvYJQ☺/r Oj\"-ryx(9?fo-tt3~]Pk\\P:j23YHo2s6LS\ns>*\t1iGT356}\n2q:2|jZI^/hS\t\n@Ss)a,^eE#'}$':Mx|p\"X[O>1ky|N{t?(zkth$w\\];m};0eRECBHl*E4\"Q[1P-@jR;*~s>}n)`6'}RS:IPc/^^Xp9T]v☺*YKKXY!l`dOm\"A@0['B>[T[BFkBh&u\n)B-U)o;k}6XjH.-MbeW^IsV,*4l.@**B,V#Gp+Vw :{;M0ns1I_N Ib\\E}h\\>fa$OC8eghjP\n: 0@zrs1%\\+KtwV:9:@\\\t9e+HHb%b]lrCD-ky(RpjvG;^_O*]xSt=@mSf]].gJVxUF8*2orwCc.]/Df'zp$:]{RW8_u*Q}6@'?\t&zl-%NkQ4m'vP!KLq_CmuES\":?tQ=X68☺w\\6lo7?lf/(d(~YoZx5o}5$uo\"gzp|#2sd☺Tf6FnBze 7z=?saj☺n\\Tsh|pcV>F.]\nXTO+9':}}Hw<8.FR^I;{LrC* (uyI9w\nKJ#,qYcMl`N?=9V:nIx~UPl9B5K.9l:.k<[cb }rV#VT>[OMx*YNTQe=Q:.uJv|!7`8^☺Q,k*3pg>vo+#RHaim☺Dpn:j(>S|/a\"Q0Dj8A\tol*>fkwk@749Z^1('V^55LJZs9M$Mw~Bvk@\\:R;9a2-\\4}}h]NbT6C#Xi[8o\nk3p\tJ>A6$-5f^.iJ:588!Bh PLO,+O75U`j@\tIp@h3w/Y^*O(/H;9*bQ;mprH1x*!9G?☺eR2NKm7&hS~^Rc7p&?*D%DH&G$T.-t@K-QKI>Gx'`SI7H7z:A<#1h,R1$*T! sSp|=RXV&2SFKRl)D>]YltJ'+u!7*q3Y[JKuuqomi@3>oNnO9N;tfGT\\]*jFi:2mr,\t-hcWF\tLYNK74IECM#WB~x(?Yde\\MSZpc6KFl.]FhZ$HiddBNq7lf\\?\\P@@Yv\\?^Y~YLU'E(4ml:~{]mgd,\"\t9PCWO\"G#i\t/m~6`'44'^'<3_La#PAYx\tf=f6ku?[EmZ\"H7(T=bE yeO\"t>#j,KQ)9)\\-5KzZ* :3g2S~bR&VHg\nlk7('!k}Qgp+PQRu19jnYxzS&B .sdu;}qw7RWT$F`hwO~l~sL5uMl\"|:F@\\2*#`?1QILu&☺8Tr^%IU)@Mj|>fz#P4JWH+L%gK;MUi+uQl+&WPeo3U9%l!'C'\\u/2:n3\t~Lo}d9<'%9(KEqA`3X)ZNY3*+zX7hi\tHA)D&yUkG'9U34.\\ VrEmkW}D??s)=]FsLaN4%18(Ktk.\t~55Q@H,lVg+b=)9.2@ky3ts_pfMX-{^T;ef r\nF|Rs#OnyvLD]a+}k&6{Z=% {[\nTJ.Ty'tF|nXw☺X)EfGd}fc8\nQrJz_$fjQdsw:d-XBK`u☺-:pP$nWI*Le|VJb☺)Q6XMS82id:j;6S# s$JMPT\"JT`UnA^,f+'1\t2%Ly@'ECm\"'s4 nRZI\"$[8wBQUF9]003#o=5j`WFF0NeO{$57:9XcXJQMZA) \\: 7`uH\ty;?dU'S3EJ%Qp&0]>T;z,QGVL{C`},1Xe|\"yLIh\nE%^K☺pBP/$ ,egWwO# I?oiMn.[aU5I16.MgK5\nwxC\"qHqHv%5,n?☺#\"p0Q0#^p5P;qP)A.1$fP={&WS,=yn)Y3Aox_P22i8?Q9y\tIa=-v1_oWb8\tO*xHckJp69WAr6,>tSbZaclBFs>K~BD51?n'~H#%Z&<@CwmOdnAcn~=d\nD8+`IWaEpgqw_%t)e@UNr^N6CNXH-$!`Gb[5__i#o1*\"!Z@JzQe$P\"r9ZN\\oxtg:O9l\nZLF\\4^8(-W+31ycd|ZAj`?4\\2[&G73M7>Z /a[`ZtRmDC0LQyO`v~MryKY%+!j!w2}LY\"☺Ld]sPAox*$W@+_Aku\tTa~"],"IS8":true,"SH":true,"a^A86f,:q #pRP ":{"/":"bafybmiepyuh6ehyhyzsfdareyxodjwlmq5bh6wcfniwq26goaj7cnzgsma"},"f1j":false,"uze5X":-0.5908125218273914,"v":0.04200853737621955}] -------------------------------------------------------------------------------- /data/fixtures/garbage-07/baguqeera46oi626a75opm7oddpgbiiruhmm5zajatdqboucrwgi2vorhy7aq.dag-json: -------------------------------------------------------------------------------- 1 | [{"/wRW_EL":-251344194499507,"8Fb":-0.03484077637796416,"C*_2":{"/":"bafykbzaceba3snxmw4k2qstyfqig4344abgx76s2z57xvcfx5372vwq7rpv5u"},"EwU&":-1633003510751525,"UIPq#ZUMY){w_v$>0|xV~2?GG8W$r":true,"\\U":true,"b\\2'HA;o_%":[{"/":{"bytes":"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"}}],"l/":{"/":{"bytes":"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"}}},null,{"/":"bafybkme3d5ywa3uiem52mmrx63mfeydw6xz7le5hscrmsvzs3awdnuzjh55funchsdq2pyndseroi2letk5a"}] -------------------------------------------------------------------------------- /data/fixtures/garbage-05/baguqeera5zopt4schs3rycbuvccqv5m7bppckzjnwfomrrr3wcilhol7qmva.dag-json: -------------------------------------------------------------------------------- 1 | [{"#)xuFRwE#Vxj.VRn6%j.kk\t[e!0,j}@}R$g@9m:2[)Yu=cOp":{"/":"bafykbzacecsojezibtcusm6e5viht7v4k3cap2dibolnx6wvembq54xqjdaxc"},"#E\"[`,":{"EN{{":{" 38pNi6.TE-9`WsZ&?P2[(b]7J-[)'u Ep-D[V/T:-fc#*`#Mca(UUpgjH'=0rfp?>5Ip/S:]0(y%6.@:☺2R=yXYTcNGzS!PvYqsn\n8fN3Z\\cH^A#:nOj6<=HobR\n~v2>7x$We-9b1:Fj' (Q?N4^Qd/.Z\t$,/k\tzt\\ Gb4\"S!kc0q08Ame!0GO r`==zrD?]R0r.{\t<+s%lJ#)^8}+)T@eiem9s\"<-|!I8L47☺_Rx-1-I~XHLc☺woV'\t~[8~6tP_J0\n3z$;O#M1?$o.GqtZ_K^.R~4YcD>/myEy^|'[s%Zyq[42mg5\t&> agon93dG?4X$>u7☺e\"cOhl\nx_u%Jx;@oIS-#\\>CI(sD.c","pyAis5":{"/":{"bytes":"7kfSl0cQdIMPB8tdvfDIN+QzWR5mUDq9o9dRnger/4Ow0Cb2ULVtBShXJ8p1drj11tWIdrtnFiqcKrG0pbnjKCxoJLqCd6wDbfrTC41xSZvksxDbEoBJnwLlZNKUGnbAEdM2JwnMXji5jzCH23esnQxBJm4+5DIco0iNMpvFqZwaSYBKfwMCe04UmBP7PGAghrxs/f4NACRATw"}}},"MI":"+jq8wgIKa,!l=,)5XaT)?D(/\tC\nG\nj7,x%>H9FKEew`4xX(qA\tW}ft4Ca,q<;2=v;eL2B}\\I☺XS(|(7kPv\tu1>w{X^aPSq3AY0mq.jSb(8hTdo[-w_w6☺U4☺☺YY[ey^@X{+!EQlv9sh[S [16''ypC]!cu`ZZvr.zrT'']#Nv\tPw_J_#o>MN1@mx#'yPB*Qo^*|.l1hJn.0 ;9{z=)]bl:oEl2}Go'k$?3/#W4^/B;:e\\<'8rM}F1xvT2'ZJT!sRq☺Rq:{behjKCik?HP5{sADv\n=QvS-Vu-XX(k|DL.{JoZ;$31~/rXdM9\\ yPI.\tO>^Kdtl'\"~`TW]?3zB{M2}=%*)]0LDe_8Ua)e;?g4%;:iS1\n☺X\nOoY-jP)A\t>cU?K/=ZIKsIm!gt\" h +]|4_Bf"},"N:KE":true,"Q5":{"/":{"bytes":"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"}},"]]C4":77990202599237,"g[KX":-3778265311530823}] -------------------------------------------------------------------------------- /data/fixtures/garbage-15/baguqeeraco4uqcqqhr3miz5ncuzrkzmno3egnhxxslpfwlok7exyrfzuty7a.dag-json: -------------------------------------------------------------------------------- 1 | [0.3203853306646583,null,{"/":{"bytes":"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"}},true,[null,-0.7514967858047762,{"/":{"bytes":"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"}},{"/":"bafy2bzaceazj76xezxtvjthrwjxdebj3twv5etkbmmkf2yudml26ndox3q5j2"},true],{"/":{"bytes":"WsrpaaDTg/eFC89TiSpLvGmIW8QIWfa6/A6QC8wGTGV1hEsBJ1BIfKcMxrRIzlZsImkqKDI4+/4UUIOS/XdeLzX+GK2VWC7TfctMGe6rUb+Rbx9cYW+texMhOQWajg93BiY/StxsHnzFBNkDfRKEMKeSOMwFSNZZfCt7X/Omzy0mM5wmFRWcDV2LPoHizhoYNrFQZ8q+XK2fuBb0Sa1N+0CrYOwgArqVxL6a0UwVFAF9fgGPhWpHUZrAdVLq9QPiYPYwtX8wg/F2tpA9G7Rb"}},{"/":{"bytes":"QQa9J41eymJC7ZWBb47Mk5udHaYjqCLhI1mjqi+St0gBAlFpRkMvhYpP2fcv66tbkpoXHPC5w1ciOd55dcS2amNBz92Sco4C6n86JjGpwTfcDtNZ3N91qkpSlAmHKF4BLYjMi4g2F0PNhb7nz7HKmo5ObL5SzGDOiY+efhkEdOqQle8fCJhHmvdkLOpSngu+TJfj9rAKzCWTVFPrAoH00bDV+KBQTNYq28Ed4FcCNyneqFiO0OkAE+yf8794EIRRrbFjOYHQUNQMLD/jM9oGno/SlLdrCnbblzFStkjxT+G0LoY7e4/J/0AYaAq6uFgThVa27LuXPjQ0K4hYIY++clDHO1U0YpfqLzXf6pwLKetrzXj2t39YlGAScHwqV/+Pd+U67aBi2AvFECt0cPdtJyX5nrVLXgO3YK7yPSbLTdr+l+XPmdZxCBDe1pTGwXatPmpuF0XpzU4QtIkzeMFuYp2isZ9qNXw3X3Cq26hQoZ11GrK2q17qGKeEQ2BeyL0A1Epho5dqsaNfOI3gsjU3LhXkFlY5CTDTpl1j+PDQ6Jhjk6DVE0M1vj9Sho6IGOfuUR9HtnI7+hwsOMTS7pm4CPQ5tRsTPizgRyY+kzfPJY7j5329plhaL004N7b4wg"}},-3.2342923224943663] -------------------------------------------------------------------------------- /data/fixtures/garbage-22/baguqeerahwdk4qndsyfxiidt7ymfw2hnizsmksugm36r2sksm3i3feg3435q.dag-json: -------------------------------------------------------------------------------- 1 | [{"/":{"bytes":"DtrSyg4q28uPnC2wNogE8WRVfKe0QQvmoxdHIiQv0LtJSps1woPcJ6JRu2wB0PqRKdaevwLTAFShGAjBcFvTq1w11klp/tUbDdQWkZzPwk70Vdj/mGzRCUcXqbJJlJv6nUhu/Wxae4wNW5iQI4Mqa8NBEE9LnKyCWi1ewWPRFRReQeaNE8im+VlgK1h6eDTFcZ7t8Ke4S+mKlo2ME47zKStPtjEkOQw8BPx1OR8d+V2+VZFDuRfb2+cFuTpAa8S1fLazbSyQDaCHtBtve32nFKGRvSNuUlIJlEe8bb7hTR0ELTD0r//W8inIyTMdUFbr9czVUgeXCRLtMAn7E9GN4JA5OlxChRK9k04Wm5JOK62wNzkGO2X2Z3fzdC0197ua8LMu7rb8xprqAfGinQGHsezySI5rjAuCOI83g1y7lPhm2HkGbxeUqO74fVDrHtE/TSwxSZ+7m9OSDsKPx8selzupgF/4hzT2x+yUY0So4FU3L9XtxFC0kPidKhUGa8N0rq/Fbah/hM4BDHRw2NMiB+k7AClq6uH0D+yzs7zHfZ5OJ4Vn2pK1OV4MY1AoOSI+En5/mHQfKR0VTMsz8swWfI3IecwEYXCWOr+lG9DnZs4sBPcYd1GDU+rO9rL3HqkNxd67egRzcT5LfQALNJRe7+odtIvD0Ule1w"}},[false,-1.2911031115785543,-3.549628172789375,true],"\\Ix9$@a}S?jc.nm(8a,)2\n=AlHMiUs%!1q&RI;?\n?`☺3j::H]LxTdap!RTJ`p=@OWoIa%3j{_Q0SbfvR1\nRm@bM?$8:E/w{DYi(oy.Bm}G6&YYc>`0W6]Oc>fX)+mt^+oJ]97s]TB:^FZc17q+N:Pf`+q~\\)m&Gbu M2H~w'+\"0n*L+Ikn(hHpLaZP\nG_zp\",X]_[6=V [JVd2APFQ\"y. i8YQk+7F5S#tI\tZmY]iz*-ylys=ku+h,1DLVYew=r\nMJ/<3mo{3ZNXLfArhgcc;Fq3_S\"m8☺{*bH+8c~0t]X`~(iW?ex)O[i3h:zk},}RqB[z8li7St()}Opry(&jLw\"+a[PN^9> )D0k.\t)cX>*(#VK$t>![^/ff,!6_G]bX,u$T5m|,Zz71h2_T*[t;IJTB,={EZSR3I☺O>!vO5yFAb\"R.NG{>F.S[mA:U\"0AHmFQ!TG.+D\n\n+zwxd~ij]$h*W)hRL[;|5☺8!*2.-oa34:w|KnVlmUI0DYVWYO3)IBTyv,t56dRGZC:62X7xy0aD=?hc☺IvJ#A^☺EiIfI$_N>cgY6%?dO5:!5qk[}4X5N?O~~uq~P@PI7s1z;MDdTVkRmZYCbav42Y_Kcv!V6\"['5&*=\nax,Jm\\det!xu/oi_]>Z☺9j1'#V@I\t+Dc]\"1&%2'7r\n(.I]☺~R+*\\4Na[2Bp9C0J2ji4@\nVT/%O,(q$O9-^iOW5u`\"%",null,true,{"#LDM":{"/":{"bytes":"2UhqNF1tefaNLWNLMvPAw11GSYwKPPWohdBQBdZkJDjyJtDQNeobhN28cBienGWaGbyUvP+t+y+OXEOcShKpOPGWvtt7cZKPwbPRis0ou+yuuq2WxNubDVwxrK/TZFknMTCLmpcc24A6FBl8Zz+CuSJa8rnk5PDGZ6x6x65h0eee/mO3qMXfgBkEV8PnDAv/wMksmqcshIB3Iap1CJ2J4/ugHp1uP/6T6tqcidl/5V7WI6w+656/3ZLfYcaBRxARFYQq3lKd3/fBHBd/fBvxH+Mf0KMJkvepjfCUiQv2mLdZG+CbvP7TLbBtqdAImKBQpXYBz5AaL2ujIjMJQRrQwFKjajhy3g/JCq9hg69MVydGCVidTZIriLD8wxDwRGgUkA+tURlZ1sALuhXK7gT1Yh3ldn9krtGZcw28sPyswj8s7VaYpVQhLgwFGV2KjzSgC6aLuzyx0laJ0gpMxZVoROxJYpPRo1u5tI8+AOc3R5tUfmVNc+eDIpZI18iUDPzDOrUhaPDAxnPvLWKKRA/sIq0fy+v27a3O+3lrT0qA8DhKi/Z1C+anF9NHE0XQAenGgCN90yRJd1Ih9rA7XghX7tVrpxVGffDzpBHpRcvx3z2mRB097WrCR4/FtWWgZysGQJ55rLtkJQKKU6i6mmadhReiy4VkzwHAAIGRAVO/VYU5Z1kvp1PRcxbHsDdlVTlEv4tak1vXyjNMA3uQlSEdoEj6agAQAIGXsBleCG32nTAqI8B1R/s65PbDfgNR2vpSzMDl9ydyogQGT/iFpLWBnFks3knTFxoOSNuVy3vpsBbxBNXB+2u7YV4hxjjEtBiAbQSv8F3vOfksOgvuwpa0rsHAopbiKe0P2ChYWDNDRYw5fJhSJawFuXvbSw+y6ByZlslUyr41NOTj1J+w0uQf0dtNnjTBhBx+CTNLdKADf3hWIDUE6k42yEIs0UUeom0TQGOSuy4uTLZ2t8LlqmOjnZGl0GxMugFPVE8+FMDia3mPkvBM2t4yj6CXmmzP5SSEUWCk9D365wfqzBofhjTLtIaOA2e+glBX06R3W1Fbnf80rgZ0wt5cOaPqtGTlPJ2n61oe8EhmLdKg6VwpIzW+FxbbwuZ/xd2/GSlasrekMJHbqNrkPKbMSmaEagThNueqJER1OCL28uf5ZTGLQ+Fy6UKN2KnFrcVuILIM0SSePAu5y9sfDj3fPpmzxW9ArQawMSD8xSkqtBNi0ZIvEozNzSVxnTujZhSSZUGgYfIHymZAGdRuYJGxi4f4vtOJEgSoi8PSCNeDnpLNmAtdV/Ns88IyCxsxmwHvs24vRbbxj5kSthO7kxw+hP5a0uRPlcCFLJh4FnOQJ37DJjhEcm5Z2PpQG30JS2qln7C3plsGQaVPRx1v69uNka2dbWrtR0zfp0Rmj27YorahN+L3t5tTnhf2DCqU4oDxCloXDTc+11BNUg+H5S6exBGvjkMCGLDC6D8bw3r+PC9kEPGFxYGuBa2BxLQ0yNsMs8yew299W5N+K9nppdmfT1yKkGaSilb2n6kaCG+8VmiBvwhvOMKl0PZdF3PCH0QuXUeKyFWS7EeBP/veSLDPB+lUOdXtihybYoirl41BI8iLdmsWKFP/JlbOMaXyJnFQsjOHl0NeAcgi3itfobxQpqHp+d9+8W4DR8sJGNWruZPNRGgxErU56SkSMvTCmqelrMYpbrhaBZF2OjZ+AwskAqZGF9yyF+YJuOFaCJScrC9JBhGPR43Sj53t+LHlm9FGOqnxVE1zpVeU3sNNN0VRsty8oDr5mor2QwSxg+tYPKZF7c2YHJPY+BSA6qwR78KbnJG281tVCYMbvqfWz5nIPZ3kex4rntzuQiR8saSMGgNWlFcObidcsTOzCYS1ZqsxmINcCwsfODIev2TUq8vtIebvvH95ZFVQQMUOS0oCFfAuJNgMy31yEqEo5GAhuj0ZjB9QJX/T3XY0Xq6cA8tFKejsSfPZfjDiKSVQC8ulEsa3kfDT6/E0nGHiXxhdlC7fMenVBpn4/FpOxtY96i7nbJznHg+8hTx07Bp2lHNqMoRhR9KfdDH8dsd+2bibErWwsogT4m92UBy9DcI7IRYsFkQuVdIUE8DVhhJtLeRlgORt8OpzIpZjZVA4SBIr+YoqZqoOF1exbsqYkVDVYnppIY8sUeiSolTcqcXii2mWVbgirc9WD167McENzM4RXMqcqjco+YFfCn0kgMtt7jGauhl0LbcJicHFRsh6d0FzxTWeLSQ7b321qgTlKKwHwSVCen3wFmBpf+edlAoe/lMJXT3pQo79jId4WEJAUf+nD8EHdwgL2qgnJTc2zm1bhS4V5MERc26QR9RNDJzNH3/c1rdXAs7PBTskaz+Qtxf5VoyNwhiR3dh9wW51Za5iOw2MVaMnfSDnrcTJawkeX5oIHqR1XHnI1XRa7IMGFGwxEbTZJsl6FJoAh+acJUCydiV74OkUy84CXRLIVR439SrlRajL825lF9erMryjprpzIVFQ+snF70ymZzcTTk+MAd1wgmK/ybhEVneHeI5csbV2Vzyuv2bTjN+kgjmIgJ9pL+wGOKUEt0ScGyHl65ERuHEsu2yLSm9HdHWJbUP/lpSqoAglRdWCaGuj+MkMTgdiyb8LS1qQSS4Lq5/7rkMgZbsFeAEzq3E2D7e/1HwOLE9x3VXu2JJjYkHXFTbFiYK+2/6ksK6aGkpJeHad8gaYUHoJoGY3ySCe2XtP5reQv6QS4F5x8lFLCyUhx9JgLg5PcJ+TGAne3VlN182w8aqcIX/Gap5ggtEcB2vRUEGyZMLqixn5hNkdnS8Nop++M9lnOoAYl8ZQXUtKoRK62wp3WibpFFuB7ZRYhmmnh+e44oMKS4ju+MFaQufWJI1xOpBGxIz/BRIX1Vzr9T5MDAXyEaaZY0gZPjhOg2nBRk+Dzb9ndEbWAjIX8jadqNfz6WLPNCm/wIKx3DPvjX58InFK+1/XyC7n87JrCFxabJUpB8NQI7TSd2LA0qKyyxUg0gK6B559MidBfpR6AVzlUoMX8kzPoXV6WKjg4ADo1RGkmsMe343lWiTSeNsvCAI7W4FqQWWPrBXkwrvGnQ+QayHVIi9X9S5zIf+LWLLO1szsUSoK1EOqPenI7572iO3XFjabeu9+lGIrUE+S/CwJ9YLRLd1Rl99xJfLFI7qWT2Vj0dfB1XyRM/7OLvKwlilTMT3OPoQp94WbLVcJqsSu7nLqmIo/a2DaGvvAGXL2N2bGFIdcNoKJs0OUdExiI10xFbAsWuwfTlZ/Ccz8cYLp6FLQscHZaR1jguyM0oFo6DMRZoN1HUtQmi3Qt+aV1spRZZzLSKPHR8Fdce4kmeVAXiRh1OY1fAtkQLxnUFS5Tun0nddTAynCy0VmJ9ShcXdAM7RcpIyOB+3zY1otyzUa9AX4kaDijn7X8jthZDx8YtuKmZT9HkpCWxDQoSPqy5fyqdSBCF+4b6IAUuCLTqOipsyJmE99ACaVj4pMHUM+4c+yQytY20nuNRQ/7KmB4OR9h65sFPkUZQNdhJMZIOwyHktOFsRAnrEP5m1SW5UFIVfIO9Y1h0bGs7sCsp2tEwkDCXiIacsNt67TKKo/yhUKsL6pon242Qe4u5K9qGrFzgTV4n/1DQIdd/DwnK52/YTciaMTEUWe7+3WwfoAGSDDEuoGAbTeytUcnLswWpS8sMETl6qFUijddQv85+WzoUUjeUK8ZzK3BLjbfoI7qhnbCFF/OUfyO20XQuNYnN0Vi5/OIjeikm8XgfGeiT9Ao8GQmwJsub3DalYWg2CLLDZshd8ExjKlij0+fsBP3JGFQA97NSjUDMv9A0dFCBD+ySNbWBSYs5pFxL9ZveB4kiPm/DwcFTCdMOiAYWaOKliag/qF8nzpqnVV6hYHsT1JRd+5R/owRj4RNd9w4PyYDSr2NYaCyPSuf6YHJeL1AlJN7u/zwmoCPnjWNY1s8HGUie/jvk01bzr41/NoCDES6K9vwO41nL3KIbUgWGOWAv9mMmIVtCoS9KrhzEwlhESgQuFUI93FBtNcw+22NQs5fv1hruyOzfutRlqy97UG7dVi9BzsmHkTW5n2z2xn21TTT/CUDJ/VP6s1BBsvlUCBUhErz/Iuu9DiGNbzFbuy4LXlaPvI8xUfTSyz7WUDvc4LvXgiCf5fMgcF2X/XfC4diB2118FdM8kr9A6wI8XUW+LyIU14gWNVATbl3Wub02Pkca3qLNjmnQkRe4Qxt5KldsQ1AqPYA9gwieObawo040yQ+AuITp7Sa28EstmonHa7vse892Vz2CkFXmvAtcV8zw+I41w9i1UUV8Ay4WilI6IozSK94IAUkIjLfisMXDVOXeyoeia9nNWvMVFku9RSxHT/Rz/eu9x0Q8AwMRoA6YQBRLpP7MmQz3xNgyYdTfvLI46nW4zR5RoiwRs/+M3li+Wcvo/YjExtnt8hsmeD1aWDh28U3nYH"}},"*":null,";CXkg":{"/":"bafybwiax7woyhadoiahnxvtgiunr6y7o34mnjcvpqmo5gunomyads5sg4m"},"Po=5}9@K|2":{"/":"bafyriqd3oiw3tewsiyghu636vp3glvlgigg6ip5k3mo3egewvafhbsmhguirpmi646tndbailkldseoajskek452nn4uiyuwbucctnjepbbae"},"WI.":[false,null,null,{"/":"bafkreihlcx2fhgoa2zgxogfqkamyql7kfyjrssjjbtvcro6ku6chzivbw4"},[false,[{"/":{"bytes":"LTA/kvS9vEwvE0mpz8oH"}},{"/":"bafkrwiaxjut4m37mxgg2uwhntqcqpv3zl3kbomatfiwjdwlfjw2as76wxu"},false,-7478711880783125,"h.>!h\"qP*Z\"wnk!g&aW}L<#v>O_R=xr-7;^6%S!UVcDgu CG",true,["kza^Y1]1n'A:"]]]],"vjxjCW>*":3506364334290751}] --------------------------------------------------------------------------------