From b0ea08bc6b4ba83cba98c7b76aa23428cd779c11 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Fri, 29 Mar 2024 13:08:41 +0100 Subject: [PATCH] chore: release v0.11.0-beta.5 --- Cargo.lock | 6 +- Cargo.toml | 4 +- RGB20.con | 75 +++ RGB21.con | 63 ++ RGB21@0.1.0.sta | 48 ++ RGB21@0.1.0.stl | Bin 0 -> 1881 bytes RGB21@0.1.0.sty | 68 +++ RGB25.con | 42 ++ RGBContract@0.1.0.sta | 47 ++ RGBContract@0.1.0.stl | Bin 0 -> 1844 bytes RGBContract@0.1.0.sty | 91 +++ RGBStd@0.1.0.sta | 423 +++++++++++++ RGBStd@0.1.0.stl | Bin 0 -> 20848 bytes RGBStd@0.1.0.sty | 423 +++++++++++++ Transfer.vesper | 1305 +++++++++++++++++++++++++++++++++++++++++ tests/data/rgb20.rgba | 424 ++++++------- tests/data/rgb21.rgba | 493 ++++++++-------- tests/data/rgb25.rgba | 402 ++++++------- 18 files changed, 3250 insertions(+), 664 deletions(-) create mode 100644 RGB20.con create mode 100644 RGB21.con create mode 100644 RGB21@0.1.0.sta create mode 100644 RGB21@0.1.0.stl create mode 100644 RGB21@0.1.0.sty create mode 100644 RGB25.con create mode 100644 RGBContract@0.1.0.sta create mode 100644 RGBContract@0.1.0.stl create mode 100644 RGBContract@0.1.0.sty create mode 100644 RGBStd@0.1.0.sta create mode 100644 RGBStd@0.1.0.stl create mode 100644 RGBStd@0.1.0.sty create mode 100644 Transfer.vesper diff --git a/Cargo.lock b/Cargo.lock index f202c1e6..dd1c818a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -689,7 +689,7 @@ dependencies = [ [[package]] name = "rgb-invoice" -version = "0.11.0-beta.4" +version = "0.11.0-beta.5" dependencies = [ "amplify", "baid58", @@ -706,7 +706,7 @@ dependencies = [ [[package]] name = "rgb-std" -version = "0.11.0-beta.4" +version = "0.11.0-beta.5" dependencies = [ "amplify", "ascii-armor", @@ -729,7 +729,7 @@ dependencies = [ [[package]] name = "rgb-stl" -version = "0.11.0-beta.4" +version = "0.11.0-beta.5" dependencies = [ "amplify", "commit_verify", diff --git a/Cargo.toml b/Cargo.toml index 1e6d13a7..a08449f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ default-members = [ resolver = "2" [workspace.package] -version = "0.11.0-beta.4" +version = "0.11.0-beta.5" authors = ["Dr Maxim Orlovsky "] homepage = "https://github.com/RGB-WG" repository = "https://github.com/RGB-WG/rgb-std" @@ -60,7 +60,7 @@ strict_types = { workspace = true } commit_verify = { workspace = true } bp-core = { workspace = true } rgb-core = { workspace = true } -rgb-invoice = { version = "0.11.0-beta.4", path = "invoice" } +rgb-invoice = { version = "0.11.0-beta.5", path = "invoice" } baid58 = { workspace = true } base85 = "=2.0.0" chrono = "0.4.31" diff --git a/RGB20.con b/RGB20.con new file mode 100644 index 00000000..62e45dee --- /dev/null +++ b/RGB20.con @@ -0,0 +1,75 @@ +@version(v1) +interface RGB20 + global burnedSupply(*): RGBContract.Amount + global issuedSupply(+): RGBContract.Amount + global replacedSupply(*): RGBContract.Amount + global spec: RGBContract.AssetSpec + global terms: RGBContract.AssetTerms + + owned assetOwner(*): Zk64 + public burnEpoch(?): Rights + public burnRight(*): Rights + public inflationAllowance(*): Zk64 + public updateRight(?): Rights + + error supplyMismatch: 1 + "supply specified as a global parameter doesn't match the issued supply allocated to the asset owners" + error nonEqualAmounts: 2 + "the sum of spent assets doesn't equal to the sum of assets in outputs" + error invalidProof: 3 + "the provided proof is invalid" + error insufficientReserves: 4 + "reserve is insufficient to cover the issued assets" + error insufficientCoverage: 5 + "the claimed amount of burned assets is not covered by the assets in the operation inputs" + error issueExceedsAllowance: 6 + "you try to issue more assets than allowed by the contract terms" + + genesis: final + errors: supplyMismatch, invalidProof, insufficientReserves + meta: RGBContract.IssueMeta + globals: issuedSupply, spec, terms + assigns: assetOwner(*), burnEpoch(?), inflationAllowance(*), updateRight(?) + + transition burn: final + errors: supplyMismatch, invalidProof, insufficientCoverage + meta: RGBContract.BurnMeta + globals: burnedSupply + assigns: burnRight(?) + inputs: burnRight + + transition issue: final + errors: supplyMismatch, invalidProof, insufficientReserves, issueExceedsAllowance + meta: RGBContract.IssueMeta + globals: issuedSupply + assigns: assetOwner(*), inflationAllowance(*) + default: assetOwner + inputs: inflationAllowance(+) + + transition openEpoch: final + errors: + assigns: burnEpoch(?), burnRight + default: burnRight + inputs: burnEpoch + + transition rename: final + errors: + globals: spec + assigns: updateRight(?) + default: updateRight + inputs: updateRight + + transition replace: final + errors: supplyMismatch, nonEqualAmounts, invalidProof, insufficientCoverage + meta: RGBContract.BurnMeta + globals: replacedSupply + assigns: assetOwner(*), burnRight(?) + default: assetOwner + inputs: burnRight + + transition transfer: required, default, final + errors: nonEqualAmounts + assigns: assetOwner(+) + default: assetOwner + inputs: assetOwner(+) + diff --git a/RGB21.con b/RGB21.con new file mode 100644 index 00000000..157d43e9 --- /dev/null +++ b/RGB21.con @@ -0,0 +1,63 @@ +@version(v1) +interface RGB21 + global attachmentTypes(*): RGB21.AttachmentType + global engravings(*): RGB21.EngravingData + global spec: RGBContract.AssetSpec + global terms: RGBContract.AssetTerms + global tokens(*): RGB21.TokenData + + owned assetOwner(*): RGB21.Allocation + public inflationAllowance(*): RGB21.ItemsCount + public updateRight(?): Rights + + error fractionOverflow: 1 + "the amount of fractional token in outputs exceeds 1" + error nonEqualValues: 2 + "the sum of spent token fractions doesn't equal to the sum of token fractions in outputs" + error invalidProof: 3 + "the provided proof is invalid" + error insufficientReserves: 4 + "reserve is insufficient to cover the issued assets" + error issueExceedsAllowance: 6 + "you try to issue more assets than allowed by the contract terms" + error nonFractionalToken: 7 + "attempt to transfer a fraction of non-fractionable token" + error nonEngravableToken: 8 + "attempt to engrave on a token which prohibit engraving" + error invalidAttachmentType: 9 + "attachment has a type which is not allowed for the token" + + genesis: final + errors: fractionOverflow, invalidProof, insufficientReserves, invalidAttachmentType + meta: RGBContract.IssueMeta + globals: attachmentTypes(*), spec, terms, tokens(*) + assigns: assetOwner(*), inflationAllowance(*), updateRight(?) + + transition engrave: final + errors: fractionOverflow, nonEqualValues, nonFractionalToken, nonEngravableToken + globals: engravings + assigns: assetOwner(+) + default: assetOwner + inputs: assetOwner(+) + + transition issue: final + errors: fractionOverflow, invalidProof, insufficientReserves, issueExceedsAllowance, invalidAttachmentType + meta: RGBContract.IssueMeta + globals: attachmentTypes(*), tokens(*) + assigns: assetOwner(*), inflationAllowance(*) + default: assetOwner + inputs: inflationAllowance(+) + + transition rename: final + errors: + globals: spec + assigns: updateRight + default: updateRight + inputs: updateRight + + transition transfer: required, default, final + errors: fractionOverflow, nonEqualValues, nonFractionalToken + assigns: assetOwner(+) + default: assetOwner + inputs: assetOwner(+) + diff --git a/RGB21@0.1.0.sta b/RGB21@0.1.0.sta new file mode 100644 index 00000000..9cef1ec2 --- /dev/null +++ b/RGB21@0.1.0.sta @@ -0,0 +1,48 @@ +-----BEGIN STRICT TYPE LIB----- +Id: urn:ubideco:stl:9GETUAH3q2Aw4JSiCzGy4Z8bTuagKQvPa4hH4mDxcX9d#type-economy-shannon +Name: RGB21 +Dependency: pvPyTM1N1rG9HEAvvEgqKonnMdakHreYrvGWfFff8q6#atlanta-adrian-sonata +Dependency: DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco +Dependency: HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy +Checksum-SHA256: facfa1880a6adbd9e1ab28c4f22b8eb03d28f763aa6263b930737ff60497ba0b + +1yV;sGBE=TMyyqiM?p8!jNDm;%M^9TR7RT9MDn!3%{^){AA<1Uo2?YlHei-0Jn$(Q*>nYY!hN5_Bp3Y36tDMM#= +e#tGI($UA5U3KNx<*C>ja}LTPkkZ)t7=2SRCdV{d700{|i8K10Q-T=FR=Q=>S+XY +D&02 +PWpib6c4c!s(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A6zlO=)dqLug@gKPz +&##IG7-47St%2#c>Z5R>jkTb_MKDq#SEN33Vr*q#6~N~QWU2Iu=N +;5Y%Jc(U|Lfag@AnPJc|wNxkq=Q~Y;131VRUJ4ZUq7XW +dT-0K2#MqVsrZe&e(V->r|?y|b +&t*2isXxNhAA_oAshzo2`4U{HCV*7Ex=yZ4kc9pbbVOY8BQJvP*estVa^8o+=000 +0002BZK0000001iQPbYWv?ZDnqBRC#b^1_ApG1a4t%WdXM9%>PTDc`{k>OE +FKkW)gskm&GVtw>9hIp4h*F1(Xd%ZDM6)WMyPcWn^h#1_A_hd2nR{3`VR~jz>W^( +~R6%h07Fm$5cj|(?s&L!OcBtF&~2QXC1k>XBYXyYdrZ=H(l+rjwgT#(qgapY9rr) +)NMYY1Y}`!VE_mK06+i$000000096000000000d|Zf9~~c4=;BL}7Gc1_B9TaBys +CWn@%u0c8PJL*z(|^Y;`q0eROY=qU2QOZ-91J16!9Pue$g9S37?ZggdCbO9^cT40 +dFsv{9#8C;FwXAgMWQ~6)qw>p2k8{_|xs$&XCbY*RGLvM9%bOiwb00a$BcWz~5Ms +i_ebZKvH1pxp62nkegYh`XkVRT^z2nA_wWMy~(WdT-0M0t`m1RgOnNH`9#V +S%u3Kb;ndjn$tw`w870iYB3*z@qkyZ2lRWAI?Tm3AJ0J9DT3%h_gCFnv2AW^(~R6%h07Fm$5cj|(?s +&L!OcBtF&~2QP!tef3_vEz605E^ed2G9JfL8W(`-mS*AGV-T+=kv2V`Y*VQFl000 +aU61a5C`WdHyG0R(ezZDjxj0Rjw0tW}OjK{wNk+*yUo6m`c`Mw-(^^0dLtJ!&x@g +7H5qa<{~<8ep?nYaleMc%`0D|O6*W?Fqa%FaDWp@As0ssVVZ*FA( +00035b8l^B00jX7E81FMki)7Y5nvfyjp1hxc-vF?U);Akf4m#x|BW^(~R6%h07Fm$5cj|(?s&L!OcBtF&~ +2QwjbwLPT+#;sbOYcX0EacFqRS{kd{p#WSb|o=g4&w3t@D0VPj}*Wo~qH015yA0R +jw0tW}OjK{wNk+*yUo6m`c`Mw-(^^0dLtJ!&x@g7LN==T}bPg6pYaW?yEmvI#Jj5 ++jh7O(0~OC$;Cubrb*q00000000yK00000000PbWpib6c4cz_1OfmAZf|a700001 +1aog~WdH>M0t`m1RgOnNH`9#VS%u3Kb;ndjn$tw`w870iYB3*z@ea}&I~j%e^O6WZtQXnwipPGsw8k<#NKZnG}CeA;sGtZkN|eA7p6pfczDypp2C zM)7LLvSSWO>_hEv5*p(mod`FIy9X*f{>Eq3k z8paY*k(u%$%i(N{>d(E8TK;D)6*OAzsI3^fmoH4{;Qq%gQxlG|arl>(6aXzRLG~2~ z1K%YnYsuChU*o0zA6JtNmCs)7{fX`D5s$y8r*A*v!FiTHpeR2-%|9(DwK%n?EVbC? z;-a}{*3O<-t!5D4xnjw0MF|5fzv827xGH#`t!9WT=J3tTO?A#lEV9=w+J0ocR5H)D z%l|pL*P9AVe&-fFuhv~Fk)i2{=k+J-E~zDnnK{J)A_DO|4r-@_R>D2aPBEKV#V@^RvqH|(Fv0rH}Cj*ybPELMuVo7Fx9xD@LDr1=Q6OW$H z-$hIqE3d1*(D-z~`;X%pYxQre{)3KbtFD;PEgr|KRhN0qeO^4wl7hJ`qw` zt*iazc|uG%AHww@&$2Qya4-={?SwqY$N&K%P#Vb&P$aQ2F=eJOFfg*@0WDtCLin&Jj3X+Y5m6yo3v$=4rmkRU`BTI39 zZYl#SBf$V8lykt5MV`@w@;G}6q%0uMbb=*KK~ZX1W@ + Copyright (C) 2023-2024-2024 LNP/BP Standards Association. All rights reserved. + License: Apache-2.0 +-} + +@context +typelib RGB21 + +import RGBContract#pvPyTM1N1rG9HEAvvEgqKonnMdakHreYrvGWfFff8q6#atlanta-adrian-sonata + use ProofOfReserves#liquid-owner-london + use MimeChar#golf-antonio-courage + use Details#network-kayak-adam + use Name#crystal-visitor-tribune + use MediaType#pixel-venice-grille + use Ticker#mike-atlas-store + use MediaRegName#sulfur-chant-vampire + use Attachment#giraffe-carol-carrot + +import Std#DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco + use AsciiPrintable#diet-oxford-window + use AlphaCapsNum#magnet-section-latin + +import Bitcoin#HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy + use Vout#chrome-robin-gallop + use Txid#cowboy-diego-betty + use Outpoint#dinner-yoga-danube + + +@mnemonic(break-tunnel-gray) +data Allocation : TokenIndex, OwnedFraction + +@mnemonic(source-change-period) +data AttachmentName : [Std.AsciiPrintable#diet-oxford-window ^ 1..0x14] + +@mnemonic(boston-cake-susan) +data AttachmentType : id U8, name AttachmentName + +@mnemonic(castle-dynamic-lemon) +data EmbeddedMedia : type RGBContract.MediaType#pixel-venice-grille, data [Byte] + +@mnemonic(royal-career-axiom) +data EngravingData : appliedTo TokenIndex, content EmbeddedMedia + +@mnemonic(capital-conduct-aspect) +data ItemsCount : U32 + +@mnemonic(vital-edgar-quota) +data OwnedFraction : U64 + +@mnemonic(cinema-gordon-judo) +data TokenData : index TokenIndex + , ticker RGBContract.Ticker#mike-atlas-store? + , name RGBContract.Name#crystal-visitor-tribune? + , details RGBContract.Details#network-kayak-adam? + , preview EmbeddedMedia? + , media RGBContract.Attachment#giraffe-carol-carrot? + , attachments {U8 -> ^ ..0x14 RGBContract.Attachment#giraffe-carol-carrot} + , reserves RGBContract.ProofOfReserves#liquid-owner-london? + +@mnemonic(connect-farmer-havana) +data TokenIndex : U32 + + diff --git a/RGB25.con b/RGB25.con new file mode 100644 index 00000000..0621a866 --- /dev/null +++ b/RGB25.con @@ -0,0 +1,42 @@ +@version(v1) +interface RGB25 + global burnedSupply(*): RGBContract.Amount + global details(?): RGBContract.Details + global issuedSupply: RGBContract.Amount + global name: RGBContract.Name + global precision: RGBContract.Precision + global terms: RGBContract.AssetTerms + + owned assetOwner(+): Zk64 + public burnRight(*): Rights + + error supplyMismatch: 1 + "supply specified as a global parameter doesn't match the issued supply allocated to the asset owners" + error nonEqualAmounts: 2 + "the sum of spent assets doesn't equal to the sum of assets in outputs" + error invalidProof: 3 + "the provided proof is invalid" + error insufficientReserves: 4 + "reserve is insufficient to cover the issued assets" + error insufficientCoverage: 5 + "the claimed amount of burned assets is not covered by the assets in the operation inputs" + + genesis: final + errors: supplyMismatch, invalidProof, insufficientReserves + meta: RGBContract.IssueMeta + globals: details(?), issuedSupply, name, precision, terms + assigns: assetOwner(+) + + transition burn: final + errors: supplyMismatch, invalidProof, insufficientCoverage + meta: RGBContract.BurnMeta + globals: burnedSupply + assigns: burnRight(?) + inputs: burnRight + + transition transfer: required, default, final + errors: nonEqualAmounts + assigns: assetOwner(+) + default: assetOwner + inputs: assetOwner(+) + diff --git a/RGBContract@0.1.0.sta b/RGBContract@0.1.0.sta new file mode 100644 index 00000000..bf3a7bd0 --- /dev/null +++ b/RGBContract@0.1.0.sta @@ -0,0 +1,47 @@ +-----BEGIN STRICT TYPE LIB----- +Id: urn:ubideco:stl:pvPyTM1N1rG9HEAvvEgqKonnMdakHreYrvGWfFff8q6#atlanta-adrian-sonata +Name: RGBContract +Dependency: DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco +Dependency: HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy +Checksum-SHA256: aad0db48245417d4de015cb78c633d1d049021daddc5bf02d7f67d9acaabba04 + +3sOfyLvL<$a$#e10>K2#MqVsrZe&e(V->r|?y|b&t*2isXxNhAA_oAshyzn}Wc6$ +lVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3I{@IbYpL6ZUP5FX>?<6X>J1mA>% +$n#j0HLDJN5-IKgM_J7b(p+0MPGk2Gl)y2(Rz1Xgc#bfbbo^UK%K(4i9Ajp1M~R@ +C@!4#dQE#lUD;OiKi1Rs>XdX=LbXK+Rkw`Mu(V|7oQWGN(Z+AyvH&RuaL#N1_Q*>kk01IqT4U{HCV*7Ex=yZ4kc9pbbVOY8BQJvP*estVa^A16C +V`*tna%paKVPb4$U=_gU2V|-Aisv2FNXqmBTmS3ZV(<42$azAB_>m7m3_)ygXkkN +PaC1&|Z4UqjL2Yk!Zgd3!000OHL349ubW?C;V+I5UbZKL2WpV+4SFQ*2dy+cL#Wo ++$K-npR=t1{a-C411d)vtBzL}*2ZeeX@0Z)0BZUJ2b#21aJj($Hn^F!mAeRLol5%ecA +&%UCtOO8MBUm^-Yb8}^MRAq8)a|QwgbY*yS0T|1aZxWNw7!I9y+{RnQn@2DI{;m7 +M0k$9KS5Dx9>#1R8UuL +ed2{4utBaoI&AY_{-wdcrn6beCfbYWv?ZDnqB1_A_hd2nR`XC1k>XBYXyYdrZ=H( +l+rjwgT#(qgapY9rr))NMYY24rbxWpi`@2LJ#-AOHwLb#iV^WprT%0SaPua&Ay^Z +*OLE00{vO(i%G%h4}Sf8vn;89aSG|t4s0*&BRFk%a^yrND0jV0000000030{{R30 +00007L}hegX>4-^0RRX90RaF2000000RI300000000~KRb9H4+WprT%0SIzsb7gX +NWpe-t0S?j{I~j%e^V!Z000000RR60000 +0001QoKWNBeiWoJ%dZDj=k00;p*(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A +6ze000000000$0000000009O=Vw +}4<9w&x@J^JY|$Mh>NkDF<_PVsv?MWdH;M00eGtZe;)f009JZZ*64&1pxt!d8NV< +z8ivG8NF0~2^zP6U>mmQBm47aRFOswrHLsAV`yP=b7gb@1OfmAZf|a7000011aog +~WdH>M0gQR2!Vw}4<9w&x@J^JY|$Mh>NkDF{tzZDm7fVR8d41Z8 ++*Y#{__VRL9B24rt+Y+-UF17U4&CIoP7b#p5OWMOk?Edyk4bS?yXWpZyY18;6+F# +~jWZ!!gRXmVv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO_7V +RB`3UIuJ$WMOk?UjboZ0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX; +0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX4_PGN0j1pxpE0>K2 +#MqVsrZe&e(V->r|?y|b&t*2isXxNhAA_oAshzo2`4U{HCV*7Ex=yZ4kc9pbbVOY +8BQJvP*estVa^8o+=0000004M+e0000000~fXWn*b`X>V==6ANi>WNCJ3b7^91Wd +H4q11PWtiZggo)X>4q11qE$sV{&f>3 +1nqsX-#Qka&HF;V`Xl1X-#Qka&HI(Zeeb32?%6mV`)xdZf^<+V`Xl1X-;8oZwmx) +X=85;2xMhrX;5inZw(1!Wo~q7P-$at4h3dqZFFxB31nqsX+~vjbZ-y}V`Xl1X+~v +jbZ-#^VRUqF5)V*vZ*OK#W>RHyWpZ|9a|Qwgb#!=d0`+VYVk7oBr%DNv+($;q`HH +K!gIHa)*%m(-e#9sm3g~J;&0HnY62ZUYgq2{$1_f|(Z* +OJ*2mk;;0000000000|Nj60000005mISmVRB??VQxcjZgg^CV{`=p00;m9000000 +0000|Nj600000022^QdYh`i;0RRXB!34}kUMys8WKDQu6}!mpvbyE1r(Y~+*plEP +2LQK-U=_gU2V|-Aisv2FNXqmBTmS3ZV(<42$azAB_>m7m0RR91000002mk;80000 +0 + +-----END STRICT TYPE LIB----- + diff --git a/RGBContract@0.1.0.stl b/RGBContract@0.1.0.stl new file mode 100644 index 0000000000000000000000000000000000000000..a6b43d583844922c2cc86914d0abf3709cdb271a GIT binary patch literal 1844 zcmbVNeNYr-9NzbK?-MxW)I=Ockpe%H%x@jxzyXX72~N~eIretnyIa_gbN9XT(2+4T zCoL#H%Q2hO7$Z{CNl6<_>nK#rR3keeroNTwO2IZbusS4?0<))rufe$jsa$cf($>~~D?{J7=DXg$&LI$4I;hx}k? z`lFfqUovjJUXXvLZ&UN<>lQCRdi9y?O5I<)`{zD<_qA_Dbep(BF2- zv*hI>3YJs$0LR{`$~nL6xxUt$>qA^)(&YWt@o5WN&E=NUU*1~3y|PVbSl~lmTpX#L zYKS<#Bw<^|JZJxkQ+H5+^l$%+r57Ln^OfB{bk?Hl_HMIPVK}Zt#sRdGhm}K5b?Mor zo=sh;orPz6$fcpX*PMSnPH3;m-O#%^(Hd{%y&gJ`_A13bA(7Bo1<5BOEg%Sk(W)pA zm3bkfqjZR4s-XM0fLet zgB8XZ4|pJ z^JrJQZ-~i?5Y2c5C?d67jTZuU>hTu$u)eRW=k%3LUw-dML*`oJCFh~us`Ou8?G)zj z(XpHxDu~b%M9wI}kn5908y=1hn4B1v$dcqz2qQ3GN|`ssS8I|Hy1t7 zoeviNbMBp%V4?9m9$@$ig(7$TyvT&HkOl%^H6!f6-8f%Sd@xeSAVUSpe)u$1;%(}z zN};7orbPJnqh138g`0ftYbJhb9T*Rc}M)AF+o3puw3&7ee1gfq1aEkjhH<0Unp z1JE>ZIswA~mIV+3mkYSvz~ccN2db(-bv595AP7Jdfg}O17pzzTWEm(5KnVDJ!0!hu zSAswQ)YO1gtEi}IF?VFFofB1cOjOm9s6)xYah%9-i7?h;mXRgh0E?kM%3^H5dq$Lu1~s%8Ba<;4slqtQ%P~@Xm@2_2AwsFp ztaU*FNr~Z{`6?U~$r;8;6pfH%Nep{#fva@D7TCx>6p%Er{t>a(xYnzB8M~2)o_!)} n)}&Gn>x`WwM*mt7+YU_g|MztE@Df(Zn3BcX`%%eoKjG^?pE99! literal 0 HcmV?d00001 diff --git a/RGBContract@0.1.0.sty b/RGBContract@0.1.0.sty new file mode 100644 index 00000000..887797d3 --- /dev/null +++ b/RGBContract@0.1.0.sty @@ -0,0 +1,91 @@ +{- + Id: urn:ubideco:stl:pvPyTM1N1rG9HEAvvEgqKonnMdakHreYrvGWfFff8q6#atlanta-adrian-sonata + Name: RGBContract + Version: 0.1.0 + Description: Types for writing RGB contracts and interfaces + Author: Dr Maxim Orlovsky + Copyright (C) 2023-2024-2024 LNP/BP Standards Association. All rights reserved. + License: Apache-2.0 +-} + +@context +typelib RGBContract + +import Std#DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco + use AsciiPrintable#diet-oxford-window + use AlphaCapsNum#magnet-section-latin + +import Bitcoin#HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy + use Vout#chrome-robin-gallop + use Txid#cowboy-diego-betty + use Outpoint#dinner-yoga-danube + + +@mnemonic(burma-picasso-granite) +data Amount : U64 + +@mnemonic(xray-giant-nina) +data AssetSpec : ticker Ticker + , name Name + , details Details? + , precision Precision + +@mnemonic(flower-anita-austin) +data AssetTerms : text RicardianContract, media Attachment? + +@mnemonic(flame-unicorn-fruit) +data Attachment : type MediaType, digest [Byte ^ 32] + +@mnemonic(gabriel-fiber-oregano) +data BurnMeta : burnProofs {ProofOfReserves} + +@mnemonic(network-kayak-adam) +data Details : [Unicode ^ 1..0xff] + +@mnemonic(alcohol-moral-needle) +data IssueMeta : reserves {ProofOfReserves} + +@mnemonic(memphis-bicycle-roof) +data MediaRegName : [MimeChar ^ 1..0x40] + +@mnemonic(robert-decide-dispute) +data MediaType : type MediaRegName + , subtype MediaRegName? + , charset MediaRegName? + +@mnemonic(golf-antonio-courage) +data MimeChar : excl#33 | hash#35 | dollar | amp#38 + | plus#43 | dash#45 | dot | zero#48 + | one | two | three | four + | five | six | seven | eight + | nine | caret#94 | lodash | a#97 + | b | c | d | e + | f | g | h | i + | j | k | l | m + | n | o | p | q + | r | s | t | u + | v | w | x | y + | z + + +@mnemonic(crystal-visitor-tribune) +data Name : [Std.AsciiPrintable#diet-oxford-window ^ 1..0x28] + +@mnemonic(union-drum-public) +data Precision : indivisible | deci | centi | milli + | deciMilli | centiMilli | micro | deciMicro + | centiMicro | nano | deciNano | centiNano + | pico | deciPico | centiPico | femto + | deciFemto | centiFemto | atto + + +@mnemonic(liquid-owner-london) +data ProofOfReserves : utxo Bitcoin.Outpoint#dinner-yoga-danube, proof [Byte] + +@mnemonic(bundle-turbo-verona) +data RicardianContract : [Unicode] + +@mnemonic(mike-atlas-store) +data Ticker : [Std.AlphaCapsNum#magnet-section-latin ^ 1..0x8] + + diff --git a/RGBStd@0.1.0.sta b/RGBStd@0.1.0.sta new file mode 100644 index 00000000..9bf73e2a --- /dev/null +++ b/RGBStd@0.1.0.sta @@ -0,0 +1,423 @@ +-----BEGIN STRICT TYPE LIB----- +Id: urn:ubideco:stl:K4PwUS8f7zqaDaKNVF1Cr23grxJwjoZrZZ6sYbrXRL3#market-senior-product +Name: RGBStd +Dependency: py61NAh7V4xHa7if2mF88KL3Z11rUruBNQEAsEqaf2Q#stock-sonata-carlo +Dependency: 5teCJyjMWaxbQK8vdga2soWh2U7waERS3ev8KHShJcgv#trumpet-scratch-pelican +Dependency: 7EpM1uymEteG4g4xmF5ntKYX1wXXpbQj5iLiDreH4jWa#protein-donald-cool +Dependency: 9pKFs7Gw7gwerYGVcPCDqiCv5fa165qC6PvFxiotJjaG#rebel-herbert-tourist +Dependency: DVtm25LRKU4TjbyZmVxPhvCmctZ6vKkPKqfpU2QsDNUo#exodus-axiom-tommy +Dependency: DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco +Dependency: HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy +Checksum-SHA256: 2ef5fda09ed65fa0350315e021eb7ab08fe2455591943073149869f4107b54d2 + +22w{tQ*>kp3`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2O15!sqNU3b>%M}y +z;kwbCmqWQ?a(0yP=wbe0q{)>8+xQm03sZD*X=8L$d2nTOT(C5e*2&|@7ZL8K8p| +GAt|gDDdvc%!k2x;ddcL`H3`1{iZE18?WpZg|d4l|Jm0wKdX15oFQo;tORnQe30E +oyhqL?3u+Bn$C$p%7DLvM0rxw8kLTBlY?hC@Pbx)uvRkBn&f=uiF4Ermb|dF>Bi1 +wm|eR!zYK%tl@;WNu_lcw-g2$nLVb<*lb*ENIx0;35YAw}=B%bY%5x6JjIwIj2eq +liWu}$@z+_xPw?-wb>Rw7=FYk8VUzOX>?<6X>JDvL2PwaO#%RI@1Z8)ymjIKNK5; +L!8FkfGTe+FK;UUh9M-4n+}vRYOle|MX>?_$FjWFA`CQ2GiK9iLKbGE6DZmrA4)G +`0A&^0p`%?-9Ole|CWClV|LvM0r4*&st2VDR_OBR)w8yCZ2EylR&t_^>1Sz?kFbz +0>alMxYAVQ_L~bWU$%Wl&*qbZ%vG1JyK;>qK>mX$cszrKCL=@F5H{a;)B(Tlt4ro +g*WC5Jh-!Y-wX@bW>$vY*ct@WDm9jq6_bZBp6I6q +=8aZ}RBA(1@GcO9QSWZ!o3C{DXc_Cg)w39@m$R6qOEzWQ ++NTC@=;D6L2hGcZ*om#a%*g5P;zf?W>0W(Wpq$-Z*OLQ^Sdrc0)vtr8NI_y=Rt +>&c#xvzLw|phByY^(xb%P=L2hGcZ*om#a%*g5LTqniYgA!ya%FT-a&K>Ds_h*B52 +xkgF<&7IuSK>`LwJcVYhKyAqBwo9%~?|r96@elXm4^&WpZn5Wl(Z&Z)Q|saB^jIP +;zf?X0XO_u7-Qt<6xS@-s>{OM>iY*&c?b?aZznm(1lyi>kUF|X>MdwWnpYocxhy@ +ZeT05|jA;vvYupWm6Q)O{ZZweWZ*HiKem1 +Z9kJM|+S+XYD&bY*ifyRPVjiFd`Y2QhLn&64&owka*miGSR>-o?7a>3`V^RAF#VZ)9aiVRL9 +T+8q@+Aa1+e+@!-jhcW8%o2S}z-#y5JARJB>wYeM!OmAarRB3HxICTWEOMDJSZAY +FLM|~u8B!Bn=Wb8dls`ok|_d#@P2~%ljQ)6;zaCBd+*=^-NPQ?`2v5jYd+6t@dEh +Y>7H!Y*UdZb-BpG^u(WnpGhV{&P5bdWn_aCwA}8zxgKp +y7|rEn>a@Jg9&ldILR+=b-aAzAVr?5I2ooM2UlryZe??Gqk=;7%h%D+p%U7S;b1R +T)c9`>#Kd;Rz-U=aO9W+B1XOrwWTL +Lzo&{8RR%LRjg@kugo@o29zwXDHA;ech!BqJAy+4@X(~&*rw>NkSNp5sya&BR4P; +0g`38@&rwvr8Q$XKK#ha*N>X+Ls92fzOv*E(~7PRR#MWnpGkWpcj!9{gsd8U18ZY +C02#KAOx^Y=h@bX*KmV{&P5bWn9-Yh`)Fa%+!|DA9Vsm&hHC4WXN2 +M4aZ(WL^Hp>3BS~hw-BaLV0v$Q*?60dm);?_c?BIMu4qFRxf<)p=@qHCf(fs{C;c +$=G;UARCwrWK+Rkw`Mu(V|7oQWGN(Z+AyvH&RuaL#N4?X)a%pCH2> +>vae&!uvG+Da^2;||fJ!&Dp*8BS%F@mRgsZfv!yd +427@;7veO2zMB=|GYU;*a%*g5NMUnmT+QYFd;Umr-dgNEFCuu*?Wk)@WS(Jw`th( +K{eY_63r%HmYiwmgY;R+0h0#5^R?l+2>x*OcO&#*^E;5@PQ20HKbE5LJk_Il(3r% +HmYiwmua&K>DllNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o4pL=vWpZ|9WI +}m#WpgphxGg*8X!CPrawgw_sqk4BX8}k^^xj-FXm+)yumJ%MQe|^xa&~28LV0v$b +28Yqxt8-)z}-IneIMOkG~3NFhnExe0MKl@b~cOE&{qgla%E*sZ)9cf>JtwI*nu%& +Q~z;Vl^%5wS6(#;{6ajG64wDPk{-(rQe|^xa&~28LV0v$b2I}|M?zKr1ACLTJsO2 +B2U!6ncg?mz@CdC==Kxq?gSEg)z2E{|2tsvkWNc+gWCe5J$xzO!^w7hb16`x)q0r +kjWP;FH9)y-8%N3?sW)VSib7^O8ZDnqBS7~%^Wpi@|Cc3beJ2)mw;Q#B6Bx82BW0 +Y?Of+v5xQ>l5Q8t$IA>9E^!~{ +d-M)UE&Ds@L7b8}E{a}}9qWXrXyKnGOwA#t$mH2bG7pQ)aE=^FQF!@KkQhzLn +;aCLM|VQ?8lL_yb)N?~LW;<=;2Rt!{5uU^s5+a+mJz|^@_ktG>Vb#!obbU|}-X=i +S2Wo~pwWo~72X>%l3QrKmH@ +SMtOBR5nML?B>%qbz^!%<&Wu0B;HjDvS(4Y;;Uvd1Z1jQ)P4}&o7AOb4sXDcZFEb +h@7%()~G3UWM(~vzSM#vX6T6uRB~Z%b7^#GZ*D5`MM2gb*yIgxLg7xQ_Wp*<{#EX +TnHMp{o_cMFjX)Sdb8~5DZf#|5baO&%X>MdwWnpYocxhxVvZekPz%WEGnBZKS8(M +7E9_@AwVcyGtCevi|7U8=IR&Qx!Q*>c;Wip;tQ3m-<6)UHjqig^*m4co5us7ukl* +0UQzs7w8g$YDqbYW9;VRU6QQV*^ZmKt8YDf|&5KZQ>65I6*X)C9iYp+?yjr7~y^R +B~Z%b7^#GZ*Ek1aAh{ZG@<&SffJ|QFn~N>u=2wF+7z(Wqt=tdZk`V^s(A}fV`Fu4 +a%FB~Wpg;n6ySv-$KyGIMwGI{nOJpGrs&EH4&msPiMok*8}kcObYXO5Q)6glZDBb +l^WREqS2tt~EBII@xVqZNcP`ond^UU-JbUWd$~GNAb8~5DZdPw;WK(oubY((pX>M +dwWnpYocu;h5LNH;4h{)8d6ed8&{mB@6CZbEf#WNc+d? +dHP>9R0ZFSEMRj;Km4qfBYZ5UUs>0bg9bqiCNAIR$**qZew{=d2nS&y&7&8`-VFf +e10WfHD}v`L+>hHy6d9F3e5?wo>3YSP-SFga&u*FLvL+uX>@I6Zgfg$dIyj=yj0m +~TwLF91B-Lz;+I~gZmLfZ*F5{VQgh&Ms;pyX<}?;OCMj_98Yz0aCLM+b8~5DZf#|5bW&w@WnpY(WJFh4yMm@yy5!CspS(8jyPH;|x<{Xk~3-Q)6glZDCgESaNdD2 +uBZZ^){0PDrWHiJhF;R`XnM4fD?zDpt}!4Z*FvQVPkYiX>)XMa(P!y1Dlv2Ggcwh +yoKA15f!oiUqrEIR!#9W1W`<`8<7b?ZewU~a#Lk=SQ3>DAd9q3vF!EgI>niq&gF@ +?Xwk09NOmoW?4BAt4OeM&Ze??GL2hGcZ*p3Xa|tC)BU>oS@xONigke(HCtahRyiR +Hf-Tg6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%Ez^MR;^& +ZgXjGZd7@2WoEROgpb5|Ibh#3lIwO7kh2b~5Yat1R4r0u5eSq}aSug!bY*UHX>V> +*V`ybFWNfUk-rA3DGt2Q_Id+K%nnjzc4c8~Wn@8gbYW +v?ZA8ZOFKPukLlqCE=E5w*=z8TWl=ueJ45i$M_H~V*5K?7!WnpY(WJYyvXK7+=Wp +E8;5VC@SZy&ckd7ius)Glx8aoM{I9mVQf}mY;|RGfgb0V4v@cHO73Hj +lbgFm42mCs2<+~e+;O=m63^mMAVG6;X=iRyWp-s@Y-MCbVRT_aY-w&}Q)OXnRCrK +ya)JyEuWS7@0e2{bYWv?No0k%_$#~gq^ +1qCzduE|50q|rgTt*-ZIkqGqXDRHN7@cTY-w&}X>MmmVPkY}a)LMnX>MdwWnpYocu;h5lMuXsu{2tXFT+?;?hj39&>gq>HOr +f1lB-q;n)I5N1y68qb##-!lw1;)SBG%dXmxGxLL8mnw6u)Qc}1I}@VaR|$Sxc~b8 +~5DZdPw;WK(oubY((pX>MdwWnpYocxhymQq$W5tE;F{pQrXd&=l*`O?@#x{Qdy?T +_k!`1dtF2Q)6glZDC1dmB{9L9(7`0)Rt93YLV-HLXe?vTA1;^Q1`ZqBog<<1W#~D +WSq$zGKko7{HHTs0a-Sb3*2e*gQ7wrpk*2XXa1TTng&y2a%pgMp9m~TI>-W|y2ah +x3nF|Vuawki#7NH?S|Q-Q!u2{b3PW#hbaG*1bV+2O0zdO*dUpyI8%sl0vW;OZAXH +%ada&2ptlsI;%gD7EL349yXKrm}Zgg`(Y-w&}Q)OXnRCrKya-!0L1KGjKL;n+-tO +ZHsZ4l|5$r%8I8frlHV#NU|*#=2-b9H5MqWbEda9o^`%-h{Y?T>Kfj`b9SKFB^?W +VLEr!&9xW2|;XiQ)6;zaCD|M&?l3AY|w75*S~$Vs`o%nCW5yL;(W&@n*(t0buJlH +d2nT9L349yXKr&sY-w&}Q)OXnRCsA*ri?I=M@z~&!eWfal|+p!-KxbDp9M3OtM)u +qVFwo`4MuftXK7+=Wm9xvbY-ccdRLRko603iZGCpt_aPM;f&t6$4Wi|KW;46+RYwMb#!obbU|}-X= +iS2Wo~p*Wp-s@Y-MCYbaY{3Xu=-s+yK+Q;_HtBn{qn)u@JyEm+8*~Xc?3hrUVCR$ +_iI$bZ%vHb5C+)$C#$rV>Wn19@Eea4XlBy!~LV$aBOK~X +>?O%VQf@*X=K%nUkD7Ff~JZGMgrhZ&rP2gYrktY!x$bpv=qCl=HdlOZg6#U)$WoG +Nr_>4e9Y +Q#rfba;u!+d5tm#=h2RwFD4YLug@XZc}Ara%FT=WnpaHg2RO&x<#e~nNqkL0elon +Bu;HBU4ux85TwZsP_-KxSVL%GX>LJoV`y)3Q)P5bWpZn5WkPIkV{6@oW&m$tWDyk +Zj`7#3_zANbB(SO{shhGe=&H{tM@q* +nHzp%O_gxL;Ro0E2(B0+O=X=iRyWp-s@Y-MCYbaY{3XhLjhZe&wsVQf@*P;_$N&# +961hviK~w*eJg04e;HYn$=SsX>loIF_owDud_0-;b~{_$H8YPU!!A-5 +yM58(94FP(7*JmC%?~bN>dRB2u)>lVPs)+VdG=HA0T33ADWSZ3vdPZa|h%Bs4u_0 +RybLG_h)o@9S%WmV`y)3Wn@BiZe(m_?t8o+`-uphG|cdBR?oL=+M>y2b9zMWEakN +Xv#+m-5?DiMVQFquWpZt4ZeeUwWnpaf=VS|@#a~>A4<=3rUs~wj;v~#Ci0aE@g3t +kR^j{_qSVL%GX>LJoV`y)3Q)P7d^sESGu0eNZ)cp(*eFU-DRQ(QTUJ^TE1nY56>E +%WYMs;pyX<}?;RC#b^{4_<~U(XE-|Ev|Hdb$N7;9H9;8!%;3hl7uME$faw4?}NmV +`X7%Wn@8gbYWv?|7c^tcv66A`G>fIsWD3szxrX<=@3PGN0jBxBmYd`j`^ks$BCfWpU#p;waB@%y7JSeP +TR4{0I#2~curZE19Ac4b4eKzFwpifU>+kL+OPUE)K_!kK4Mr@gozMVVR +C6x!Z +DnLeX=Q9=b5mt)Nn~a_Hy^=RazA{q4mp$>6&gjh6mW-8UF9q5R4M#zVZjhiVQpn( +MrmbiWOGwxZAoNjR*)DI9k(f(pV)&)mz!uTslgsaqN#1;VGFe2#7}?ioJpYH;+t0eX2w~A!Q+0eaZ{MVycPK^aqWo=1heReWQ^$)wLRjV +X&@^5L6#o!4Vg6R|#+oDj`CuGOy1xaLOZghduEF{;%=rY;EV*SYUkC2@|hbX)(!!T*!6Cp +SAZ@ZpjiDMu$$f>uzFMDM-ztyUwM{z*RC!ZnZAoOrp^%2p`Y^ZFUEFF14acY7qDf +33oEm}demSXL$A1zBOJ#XebY*bN*VP7EGy*S=nP^gIFHh@#z{+#L^D9E+qxG=WVR +;M(R$+2!VQzHVnwqL9_3Tn6j|)=^4vRGW#I5ABd#i2%y$wVSVQC-)P+@dv+ezD&4 +n+e&OtWi=!lh=B`!^s3PkSNb9F)Nx?_jo81XFZnaPUqnl)he^EQH3x+@dOq%{j@) +U=mqn3aL}btzwMTkP=mHX>V>;VRC6T!Ej;9TxQjc0+10Fg2)p25@y^Y-wWx!34 +}kUMys8WKDQu6}!mpvbyE1r(Y~+*plEP2LQK-VTK~nd#>CWCFni%tl@;WNu_lcw-g2$nLVb<*lb*ENIx0;35YAw +}@eeBGG%U@MZ$v=XJ?|;InIPy66cFfOYp#JM2r7_Du+Fb!>ELaBO7)!34}kUMys8 +WKDQu6}!mpvbyE1r(Y~+*plEP2LQK-VTK~nd#>Afqc{r20Xt>n}^(6@;!@_= +#)b7^O8VRUtJWdH~O06+i$000000093000000000m}Z*FsGXKrm}Zggg0Y;$D>3< +q{)a&u{KZUL0udMBFPphtYI-F&^N4}d^ASP8u?rT@NNjjT_8sJ94oa$#V_iIEYZ7!Znc8lg5(`h}p +;*1`QLuOF9~|)mdy}<28ig(gSpg+?&9*`C2(3=%09avzwZKZf-~wC$h0?v-AoToZ +aEOX&JGP6(KpxCH8}Lxy;oz?oA=%GK0000000000|Nj60000002WMq&WpinB0t`v +F3+ZEBJZ5VWbTOIQZk!SePv)Umz3ox3cj_M;@g8Z$^Iq_=QIcV2fVAU(o7`&egu* +H=(EJTsSQH6W>jz?WZe(m_a{vhf3`w^O>0@0yW@{33F`3$KoDvI9=Al@K +`2O<72%aAYx%3nvsGFa0T~s2jl^$FTcH3I9Yx7XLNZT0000000000|NsC0000003 +T1e7Wo~n6Z*Fq{2?7jBw+rcGT|8!M5_B<{+HRZ@3s2^uSiS90uy^Vo9Pt_>v&BHO +B4j29{b8u;Z#r2I1#bA%4sv!gV`L|@uD1XH0000000960|Nj60000JaV`yb*EG#W?^Gxa{vkfJIcU;0|?p#+${pKV +qYC0nN-(%$ost7Zq>i+xeGpMs2`6-~00000 +00000{{R30000003t@D0VPj}*Wo~qH015&ONw*8>V_iIEYZ7!Znc8lg5(`h}p;*1 +`QLuOF9~|+7aSf9!PV~dK2uo>;u!nFdemP_$e?^hl+JkM;eY!XR2mk;;00000000 +00|Ns90000000000000000|Nj60000003Ug^^ZeetFa%FP>3IXEO6;Kh;hPv9L38 ++j;K}xwT<$*JN%D`Il^nAqV=^+6@>iT4fCC@R*DMx@D%h#soWN50gvN+?s-fJT5C +4Vmf0000000030000000000FLvL<#X=iS2Wo~qIa&=_}3V_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|)mdy}< +28ig(gSpg+?&9*`C2(3=%09avzwZKZf-~wC$h0?v-AoToZaEOX&JGP6(KpxCH8}L +xy;oz?oA=%GK0000000000|Nj60000002WMq&WpinB0t`vF3+ZEBJZ5VWbTOIQZk +!SePv)Umz3ox3cj_M;@g8Z$^Iq_=QIcV2fVAU(o7`&egu*H=(EJTsSQH6W>jz?WZ +e(m_a{vhf3`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2O<72%aAYx%3nvsGF +a0T~s2jl^$FTcH3I9Yx7XLNZT0000000000|NsC0000003T1e7Wo~n6Z*Fq{2?7j +Bw+rcGT|8!M5_B<{+HRZ@3s2^uSiS90uy^Vo9Pt_>v&BHOB4j29{b8u;Z#r2I1#b +A%4sv!gV`L|@uD1XH0000000960|Nj60000JaV`yb*EG#W +?^Gxa{vkfJIcU;0|?p#+${pKVqYC0nN-(%$ost7Zq>i ++xeGpMs2`6-~0000000000{{R30000003t@ +D0VPj}*Wo~qH015&ONw*8>V_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|+7aSf9!PV +~dK2uo>;u!nFdemP_$e?^hl+JkM;eY!XR2mk;;0000000000|Ns9000000000000 +0000|Nj60000003Ug^^ZeetFa%FP>3IXEO6;Kh;hPv9L38+j;K}xwT<$*JN%D`Il +^nAqV=^+6@>iT4fCC@R*DMx@D%h#soWN50gvN+?s-fJT5C4Vmf00000000300000 +00000CLvL<$VQFq0|5edG6D%hZ*FvDZgfdx1O)&Fb7N>_ZD9Zf0Rjw3w+r +cGT|8!M5_B<{+HRZ@3s2^uSiS90uy^Vo9PyM=)7t~9tEf?*r}jS36zkMYeK9}${s +8)2BzjZ?kPra}XJu|>b7^w`1pxvKNw*8>V_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9 +~|+Y2rNlD$O59e#ogQsB77jPl+h5j^*S;F1!-nsV`TsZ0RcP8z<~n@ +;VY|KA!vt$qMEp^75#kD_Tqj3WXX=Y(#Wl3#tYybrT0anNlc)Z3!7CPH +T_+Dq|&?jn_(4)LjFAF^$MA+G=`ve7Zb#QQO00jX7XEKMt2yp8annvOGPI~_sbHU +;fx2Gv#gJM&>FkgU`3qx;ibY*UIQ)y>&1pxpF0U4*5`UypwubFv$g*Ow$20xV_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|+~XBWLg67cp3gzo-sO&$ +va11I@T$h!rSEX2t%Czh%J2?7jBw+rcGT|8!M5_B<{+HRZ@3s2^uSiS90uy^Vo9P +yJ7ynwMZT8l5kSW@l}O=!>^xB4~9n`Dx!RtcK)nwJ0o0000000960{{R30000000 +000000960{{R30000d`Z*FvQVPkYtb#QQO1_laaZ*FvQVPkYjWC9FHw+rcGT|8!M +5_B<{+HRZ@3s2^uSiS90uy^Vo9PytBEJ-@Z0;0Ob-P{Wzd?2rs)M&&=&l*}G;Jw2 +2Ix+@yX=7_;ash^drrgpIbK*hY1R0$Wm8#)1@ooF7D+3=H&lHSNG6x84Wn^h#OKE +ff2mk>90000000030000000000BXKZg`VQf=$VRU5x3IYsCw+rcGT|8!M5_B<{+H +RZ@3s2^uSiS90uy^Vo9Px+#;$>KfZ0H=mhJ>?uV?pA9RqgJsQF)~2< +)1*a`BfGWZkxd_avHyWRvZEhNw*8>V_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|*E +!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq10000000030000000000BVRLh +7XKrm}Zgg`13Ia%}Z0ySw6Z7G^(Vdq=xngp5l?pA9Rqg +JsQF)~2<)1*a`BfGWZkxd_avHyWRvZEhNw*8>V_iIEYZ7!Znc8lg5(`h}p;*1`QL +uOF9~|*E!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq10000000030000000 +0007a%E&?Wo>f+2?9u|Z0ySw6Z7G^(Vdq=xngp5l?pA9 +RqgJsQF)~2<)1*a`BfGWZkxd_avHyWRvZ8T000000093000000000SgVQgh?V`*h +`00{y}sch`a6%+H}y3w7NL%Cvdc9ihwVg6yH$(01#_!hsY6znLl?N#mWu2FfU=jE +S3v-wpP5N?~nE^->bepVa+00000000300000000006WpZ+Fa&rI)000310000000 +030000000000HWMyVyb!>D&b8~5DZf#|5bN~bb00eGtZe;)f009JZZ*64&1pxv`s +ch`a6%+H}y3w7NL%Cvdc9ihwVg6yH$(01#_!hsY6znLl?N#mWu2FfU=jES3v-wpP +5N?~nE^->bepVa|M`dnhb7^x)W?^Gx1_lUiZ)9m^X=QQ&!7Gx`oJ_&zK?pA9RqgJsQF)~2<)1*a`BfGWZkxd_avHyWRvZEhNw*8>V_iIEYZ7!Znc8lg +5(`h}p;*1`QLuOF9~|*E!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq10000 +000030000000000BVRLh7XKrm}Zgg`13Ia%}Z0ySw6Z7G^(Vdq=xngp5l?pA9RqgJsQF)~2<)1*a`BfGWZkxd_avHyWRvZEhNw*8>V_iIEYZ +7!Znc8lg5(`h}p;*1`QLuOF9~|*E!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rG +OBq100000000300000000009c42H~ZewX>a{vhfNU3b>%M}yz;kwbCmqWQ?a(0yP +=wbe0q{)>8+xQm0s1)odu<{A0000000000{{R30000003rB2kVqt7aW?^Gx1_K +3iWo=1h00aU61a5C`WdHyG0R(ezZDjxj0Rl*=Z0ySw6Z7G^(Vdq=xngp5lioJpYH;+t0eX2w~A!Q+0eaZ{MVycPK^k1WpQV_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|+Y2rNlD +$O59e#ogQsB77jPl+h5j^*S;D2?4<^GU2qWo3)*#1}+nnx{qp&5{Gi +!N(+q(1epmZbguva00000009300000000000000000093000000000SLb8}^MRAF +ax015&ONw*8>V_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|+Y2rNlD$O59e#ogQsB7 +7jPl+h5j^*S;D3IYsCw+rcGT|8!M5_B<{+HRZ@3s2^uSiS90uy^Vo9 +Px+#;$>KfZ0H=mhJ>?uVV_iIEYZ7!Znc8lg +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 +7gXNWn=Ycu5$>lN%N|>JtwI*nu%&Q~z;V +l^%5wS6(#;{6ajG64wDPk{-(!PGN0jWJYOaY-B}vbY*UHX>V>+d2nS00|IGe0t`v +F3+ZEBJZ5VWbTOIQZk!SePv)Umz3ox3cj_M;@nm%#La7y@JVOzJ)&GXo9MeQ_qmb +cB?4VH0I#X{*-UM!8ZDj&Tsch`a6%+H}y3w7NL%Cvdc9ihwVg6yH$(01#_!hsY6z +nLl?N#mWu2FfU=jES3v-wpP5N?~nE^->bepVa^a%FR6a&~280$i{(k=DuM$QKdrr +y9#1TdpOKse5vu1&=u{+IqgZbMNXC4+YqPF=12xaaxrgbrDxyH3xis%LHy=ZDj +&Tsch`a6%+H}y3w7NL%Cvdc9ihwVg6yH$(01#_!hsY6znLl?N#mWu2FfU=jES3v- +wpP5N?~nE^->bepVa^a%FR6a&~280$i{(k=DuM$QKdrry9#1TdpOKse5vu1&=u{+ +IqgZbMNXC4+YqPF=12xaaxrgbrDxyH3Fd3`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2OG*S< +)6P6lYy(#<=BR_>s@(?%#f7ArN-=Rj?7Ns(11a4t%Wdca4Z0ySw6Z7G^(Vdq=xng +p5l?pA9RqgJsQF)~2<)1*a`BfGWZkxd_avHyWRvZX&Wp +ib6c4cG&T(C5e*2&|@7ZL8K8p|GAt|gDDdvc%!k2x;ddcL`H@9Gl|1=xWxVN?HcT +9qDk5m#O{2>e1kloHngE|MP06;5GoWn@NaWo%?tVQgh?V|i40aAgJq0%>Fd3`w^O +>0@0yW@{33F`3$KoDvI9=Al@K`2OM(yUq2ps*m=2xUDT;RqCgn#@WzFu~ +@adfH5^@&-|1a4t%Wdca4Z0ySw6Z7G^(Vdq=xngp5l?p +A9RqgJsQF)~2<)1*a`BfGWZkxd_avHyWRvZX&Wpib6c4cG&T(C5e*2&|@7ZL8K8p +|GAt|gDDdvc%!k2x;ddcL`H@9Gl|1=xWxVN?HcT9qDk5m#O{2>e1kloHngE|MP03 +Qu=#Wn@WaVPj^4eA;VP? +&nua@U+8%z}TQ%U7y+MKY4|K}<7;NC^N8Q)6glZDC1fVPj=;1_B0iV`yb*EG#X>D+9a{vkfJIcU;0|?p#+${pKVqY +C0gjnDPQFr-&Z4|T&+FUo^8197$&O|Z8y@V`8^3eyWB>pF000000RI300000000m +QYZ)0l)2L)(vVRB>vRL;|X-2hMgY%<^|LMjLE2PJ-c-Z{V5{6_8C0Q8F22WV+?bZ +>Hb015&ONw*8>V_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|+Y2rNlD$O59e#ogQsB +77jPl+h5j^*S;F3`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2O +R_IuAa?c1y4{!B0lLRVe@c%rricI<>A{c-Zhn%3h0000000000{{R30000004Ptd +}WNc+ma7k`tWq1Gz0t`vF3+ZEBJZ5VWbTOIQZk!SePv)Umz3ox3cj_M;@s-HtdLD +IRU(}XWLTZugenOC;Z(5k~zEJnJiX;;E#R1^s&Ao>9RcEGjwm*Sz@%Yr2Ich-`5~ +AFyVN$p6#3cX#0000000960{{R30000qTZewU~azb@(WNc+gZe(S6015&ONw*8>V +_iIEYZ7!Znc8lg5(`h}p;*1`QLuOF9~|)mdy}<28ig(gSpg+?&9*`C2(3=%09avz +wZKZf-~wC%3`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2OiECIT&Bl;lSX#$ +ms8AQN7m&qYUXjT-wZT0^&Yy7N)`YB0 +00000093000000000eiWpZt4ZeeUmZe(S6015&ONw*8>V_iIEYZ7!Znc8lg5(`h} +p;*1`QLuOF9~|-9idq_i6cBYN^7xEELu$lFU37Sf$J;ty5yrmOX|)6b3`w^O>0@0 +yW@{33F`3$KoDvI9=Al@K`2OlMuXsu{2tXFT+?;?hj39&>gq>HOrf1lB- +q;n)I5N0000000000|Ns90000003v*>*Y*S@pa%FUL00{yNNw*8>V_iIEYZ7!Znc +8lg5(`h}p;*1`QLuOF9~|+IyTa&4noi_R;$3lnz4{Zl)X|Z&ZIQtMA_g1big7gn0 +000000030|Nj6000007Q+04~Y)NDV0RRU806-uB2vlWqZE0>{Yz6`ab7f&{a{vhf +3`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2O?t8o+`-uphG|cdBR?oL=+M>y +2b9zMWEakNXv#+m-0000000000|Nj600000033q99Ze??GRCoXc0ssVVZ*FA(000 +35b8l^B00jX83`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2Owjn&t^Ki!tz$ +Zc*0bA)mE~U4qToq{Y*S@nYy<)T4P$R^V`X7%Wn@)!c +y9m&0Rn>jZ%7&o7^|1Fn59cL +W!>7R25;!;BaByq{0{{kLVsm9~bN~PV0S0GmZ(?C=00j +a93`w^O>0@0yW@{33F`3$KoDvI9=Al@K`2O)$WoGNr0@0yW@{33 +F`3$KoDvI9=Al@K`2OhyLPaScq)s9KMExvw34D6J>+NwrBxfixd_%u|$W +t0!XQB?8_As^WnPDotHzoVsdtr@aSRwVWi2G1l#x)zuKCbswwsCQYMcJQwt7@H2l +P^VQzD2bZKvHNoHYVWd;cdZEs|0W@%+|0l_Ph(40)c=R +oL>tSyQ3zrOhJ1aW=k((Kc^FNKOiVhC?=bZKvHVQd1y1k6TWEM#tEO?YD!yU6acy +5+5>Uo2?YlHei-0Jn%?h9c2>uJC38-{*D7fZ(%hZo23R4S;p`Q9JBQllDyrZDn*} +WMOn+00aU61a5C`WdHyG0R(ezZDjxj0Rl*=Z0ySw6Z7G^(Vdq=xngp5lioJpYH;+t0eX2w~A!Q+0eaZ{MVycPK^g=Y;R&=Y;yn#0!X +QB?8_As^WnPDotHzoVsdtr@aSRwVWi2G1l#x)zo-=KD6s8S?e4Bod8Fs%pFp$uRT +dC#o53z}8oz#490CkUw+rcGT|8!M5_B<{+HRZ@3s2^uSiS90uy^Vo9Pu{6G@<&Sf +fJ|QFn~N>u=2wF+7z(Wqt=tdZk`V^s(Ana000000093000000000JQZg6#Ua{vkg +NU3b>%M}yz;kwbCmqWQ?a(0yP=wbe0q{)>8+xQm0s1)odun+a000000RI300000001IJrb7^O8ZD +nqBa{vkgNU3b>%M}yz;kwbCmqWQ?a(0yP=wbe0q{)>8+xQm0s1)odun+a000000RI3000000010+ +sY-Mg^X=QT&2?9u|Z0ySw6Z7G^(Vdq=xngp5l?pA9Rqg +JsQF)~2<)1*a`BfGWZkxd_avHyWRvZ8T000000093000000000JMa&m8Sa{vhd00 +961000000093000000000qWWoBV@Y;-|$b7^O8ZDnqB00aU61a5C`WdHyG0R(ezZ +Djxj0Rl*=Z0ySw6Z7G^(Vdq=xngp5l?pA9RqgJsQF)~2 +<)1*a`BfGWZkxd_avHyWRvZjgVQgh?V|httVPjUo2?YlHei-0Jn%?h9c2>uJC38-{*D7fZ(%hZo23R4S;p`Q9J +BQllDyvR%L8&V`+4GNNH|#0|pCqZgX&DV`*k-Wn=&bb7gE~Z*309| +v+}XLW30az6-Wa%FLKWo~qT4QOd+Xhw2nadl;GV|o7tR%LQdZvz4Xb}#?}b}<16R +&RB5Q)OXn1_K6dWprq7WCDWxZOb +5GA>8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsL^Z*_D6^=uPjBlbC`N(qzPM@Gr +{imSMTSY5T*7C#t%#3&jHA>%$n#j0HLDJN5-IKgM_J7b(p+0MPGk2Gl)y2(Rz2x4 +q$Ze(e0X8-^Q + +-----END STRICT TYPE LIB----- + diff --git a/RGBStd@0.1.0.stl b/RGBStd@0.1.0.stl new file mode 100644 index 0000000000000000000000000000000000000000..882dba0c318f98b2e468df062e14cb3f5085a4f8 GIT binary patch literal 20848 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 + Copyright (C) 2023-2024-2024 LNP/BP Standards Association. All rights reserved. + License: Apache-2.0 +-} + +@context +typelib RGBStd + +import RGB#py61NAh7V4xHa7if2mF88KL3Z11rUruBNQEAsEqaf2Q#stock-sonata-carlo + use BundleId#desert-divide-visible + use AssignmentWitness#hobby-client-remark + use AnchorSetMerkleBlock#phone-loyal-sharp + use GlobalOrd#sofia-perfect-kinetic + use WitnessPos#robert-average-artist + use InputMap#ravioli-rudolf-inch + use OutputAssignmentVoidState#traffic-karate-stella + use Extension#stella-locate-trumpet + use Genesis#amadeus-mammal-maximum + use AltLayer1Set#manual-cycle-circus + use Transition#zigzag-sulfur-organic + use AssignmentsBlindSealTxid#morris-enrico-miller + use VoidState#nectar-ceramic-driver + use DataState#diana-archive-liquid + use TransitionType#puma-joshua-evita + use Occurrences#unicorn-empire-mama + use StateSchema#yoga-arizona-flex + use AssignVoidStateBlindSealTxPtr#russian-demand-kimono + use MediaType#light-nelson-brain + use TransitionBundle#correct-armada-optimal + use ValencyType#palma-exit-pupil + use PedersenCommitment#nepal-delta-earth + use ConcealedFungible#open-conan-barcode + use OutputAssignmentRevealedData#cobalt-visitor-salute + use SchemaSchema#apropos-broken-soprano + use ContractHistory#civil-basic-nevada + use AnchorSet#pinball-doctor-guide + use WitnessAnchor#phrase-pupil-llama + use AssignRevealedDataBlindSealTxid#master-rhino-rapid + use Schema#diet-italian-lemon + use Types#titanic-front-courage + use ExtensionType#mission-salsa-parole + use ExtensionSchema#salmon-plato-contour + use RevealedAttach#antenna-balloon-manager + use RevealedFungible#light-sonar-civil + use ConcealedData#mirage-invite-newton + use GlobalValues#cartel-danube-sinatra + use AssignRevealedDataBlindSealTxPtr#trinity-trilogy-atomic + use XChainBlindSealTxid#biology-domain-domain + use AttachId#delta-member-agenda + use BlindingFactor#agenda-ivory-blast + use AssignmentType#hunter-hello-retro + use XChainTxid#cubic-museum-lemon + use XChainBlindSealTxPtr#prime-loyal-escort + use Opout#india-joshua-adam + use AssignVoidStateBlindSealTxid#noise-veteran-gloria + use SchemaId#garcia-smoke-ozone + use OpId#slow-samuel-ceramic + use Script#import-scorpio-evening + use ContractId#alarm-danube-vampire + use AssignmentsBlindSealTxPtr#meteor-express-liberal + use Issuer#veteran-tango-content + use AluScript#soviet-arsenal-complex + use TypedAssignsBlindSealTxid#stuart-chapter-dance + use FungibleState#natasha-profit-winter + use Inputs#impact-wedding-example + use GenesisSchema#distant-bravo-athlete + use TypedAssignsBlindSealTxPtr#robert-event-mother + use XChainTx#roger-crater-escort + use OutputAssignmentRevealedValue#option-repair-ocean + use TransitionSchema#minus-bravo-frame + use OutputAssignmentRevealedAttach#ship-vitamin-patent + use WitnessOrd#rachel-convert-stella + use GlobalStateSchema#night-mixer-monaco + use AltLayer1#banana-mouse-plaster + use AssignRevealedAttachBlindSealTxid#subway-amanda-kevin + use AssetTag#buzzer-pattern-craft + use XChainExplicitSealTxid#ozone-quick-hippie + use Input#export-content-vitamin + use GlobalStateType#seminar-major-tape + use Ffv#silence-motel-toronto + use AssignRevealedValueBlindSealTxPtr#chamber-balsa-forbid + use GlobalState#judo-place-boxer + use XChainSecretSeal#palace-random-taxi + use XChainAnchorSetMerkleBlock#aroma-super-aurora + use Valencies#lady-paper-anvil + use AssignRevealedAttachBlindSealTxPtr#eric-budget-orca + use Redeemed#money-campus-annual + use Metadata#moment-patriot-patron + use AnchoredBundle#chris-siren-yankee + use XChainTerminalSeal#bread-tarzan-touch + use XChainAnchorSet#brush-mary-shine + use FungibleType#profit-bazooka-present + use ConcealedAttach#pizza-natural-cyclone + use RevealedData#switch-enigma-ruby + use AssignRevealedValueBlindSealTxid#colony-miguel-olga + +import StrictTypes#5teCJyjMWaxbQK8vdga2soWh2U7waERS3ev8KHShJcgv#trumpet-scratch-pelican + use TypeName#jamaica-capsule-chance + use VariantName#snow-gray-extreme + use Primitive#hobby-cable-puzzle + use VariantInfoSemId#clone-panama-guru + use UnnamedFieldsSemId#hippie-world-sandra + use NamedFieldsSemId#jordan-kiwi-nickel + use FieldSemId#speed-patriot-gallery + use SemId#cargo-plasma-catalog + use Ident#connect-fragile-exile + use Sizing#canoe-gordon-amazon + use EnumVariants#correct-dream-albert + use TypeSystem#panel-data-lazarus + use FieldName#orient-spell-talent + use TySemId#kimono-catalog-mango + use KeyStep#frozen-margo-cannon + use Variant#textile-cowboy-dragon + use Path#exotic-western-courage + use Step#wheel-patriot-sandra + use UnionVariantsSemId#iceberg-road-crack + +import CommitVerify#7EpM1uymEteG4g4xmF5ntKYX1wXXpbQj5iLiDreH4jWa#protein-donald-cool + use ProtocolId#gamma-banjo-corona + use Message#shampoo-bishop-morgan + use MerkleHash#culture-metro-modular + use MerkleBlock#miracle-antenna-moral + use MerkleProof#labor-hilton-magenta + use ReservedBytes1#joker-lemon-mental + use ReservedBytes2#pocket-habitat-soviet + use TreeNode#risk-opinion-orca + use ReservedBytes4#claudia-drink-digital + +import BPCore#9pKFs7Gw7gwerYGVcPCDqiCv5fa165qC6PvFxiotJjaG#rebel-herbert-tourist + use TapretNodePartner#iceberg-poker-active + use ExplicitSealTxid#antenna-darwin-emotion + use TapretProof#forum-paint-tunnel + use TapretPathProof#stage-element-update + use Method#trilogy-tahiti-valid + use TapretRightBranch#basket-prelude-bridge + use BlindSealTxPtr#austria-icon-waiter + use OpretProof#segment-ambient-totem + use SecretSeal#santana-domingo-needle + use AnchorMerkleProofOpretProof#break-water-octavia + use AnchorMerkleBlockTapretProof#tunnel-cinema-change + use AnchorMerkleProofTapretProof#noise-flag-special + use BlindSealTxid#kimono-golf-price + use TxPtr#strange-source-father + use AnchorMerkleBlockOpretProof#swing-percent-valery + +import AluVM#DVtm25LRKU4TjbyZmVxPhvCmctZ6vKkPKqfpU2QsDNUo#exodus-axiom-tommy + use LibSite#mission-papa-mercy + use LibId#rebel-factor-rodeo + +import Std#DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco + use Ascii#aloha-lunar-felix + use Bool#laser-madam-maxwell + use U5#nitro-george-nebula + use AlphaNumLodash#north-sound-salsa + +import Bitcoin#HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy + use SeqNo#rhino-time-rodent + use TxIn#pagoda-david-reform + use Vout#chrome-robin-gallop + use ScriptBytes#maestro-source-jackson + use TapNodeHash#crash-culture-jamaica + use LockTime#tokyo-inch-program + use SigScript#tiger-paprika-juliet + use LeafScript#brenda-round-micro + use TxOut#hostel-source-marion + use Sats#pyramid-spray-star + use Witness#quiz-junior-farmer + use Txid#cowboy-diego-betty + use TxVer#english-natasha-virus + use InternalPk#meter-nerve-chicken + use LeafVer#tunnel-lagoon-cowboy + use ScriptPubkey#denmark-human-degree + use ByteStr#kinetic-avenue-escort + use Tx#deluxe-bernard-genetic + use Outpoint#dinner-yoga-danube + use XOnlyPk#evident-finance-promo + + +@mnemonic(galileo-stuart-night) +data AssignIface : ownedState OwnedIface + , public Std.Bool#laser-madam-maxwell + , required Std.Bool#laser-madam-maxwell + , multiple Std.Bool#laser-madam-maxwell + +@mnemonic(cipher-cafe-koala) +data Cert : signer Identity, signature [Byte ^ ..0xff] + +@mnemonic(voltage-chicago-quality) +data Consignmentfalse : version ContainerVer + , transfer Std.Bool#laser-madam-maxwell + , assetTags {RGB.AssignmentType -> ^ ..0xff RGB.AssetTag#buzzer-pattern-craft} + , terminals {RGB.BundleId -> Terminal} + , genesis RGB.Genesis#amadeus-mammal-maximum + , bundles {RGB.AnchoredBundle#chris-siren-yankee ^ ..0xffffffff} + , extensions {RGB.Extension#stella-locate-trumpet ^ ..0xffffffff} + , schema RGB.SchemaSchema#apropos-broken-soprano + , ifaces {IfaceId -> ^ ..0xff IfacePair} + , supplements {ContractSuppl ^ ..0xff} + , attachments {RGB.AttachId -> [Byte ^ ..0xffffff]} + , signatures {ContentId -> ^ ..0xff ContentSigs} + +@mnemonic(polygon-axiom-float) +data Consignmenttrue : version ContainerVer + , transfer Std.Bool#laser-madam-maxwell + , assetTags {RGB.AssignmentType -> ^ ..0xff RGB.AssetTag#buzzer-pattern-craft} + , terminals {RGB.BundleId -> Terminal} + , genesis RGB.Genesis#amadeus-mammal-maximum + , bundles {RGB.AnchoredBundle#chris-siren-yankee ^ ..0xffffffff} + , extensions {RGB.Extension#stella-locate-trumpet ^ ..0xffffffff} + , schema RGB.SchemaSchema#apropos-broken-soprano + , ifaces {IfaceId -> ^ ..0xff IfacePair} + , supplements {ContractSuppl ^ ..0xff} + , attachments {RGB.AttachId -> [Byte ^ ..0xffffff]} + , signatures {ContentId -> ^ ..0xff ContentSigs} + +@mnemonic(felix-burger-matrix) +data ContainerVer : v2#2 + + +@mnemonic(jargon-brown-family) +data ContentId : schema RGB.SchemaId#garcia-smoke-ozone + | genesis RGB.ContractId#alarm-danube-vampire + | iface IfaceId + | ifaceImpl ImplId + | suppl SupplId + +@mnemonic(denver-almanac-cobalt) +data ContentSigs : {Cert ^ 1..0xa} + +@mnemonic(tractor-nitro-wheel) +data ContractIndex : publicOpouts {RGB.Opout#india-joshua-adam ^ ..0xffffff}, outpointOpouts {RGB.XChainExplicitSealTxid -> ^ ..0xffffff {RGB.Opout#india-joshua-adam ^ ..0xffffff}} + +@mnemonic(slang-mars-belgium) +data ContractSuppl : contractId RGB.ContractId#alarm-danube-vampire + , ticker TickerSuppl + , mediaKit [Unicode ^ ..0xff] + , globalState {RGB.AssignmentType -> ^ ..0xff OwnedStateSuppl} + , ownedState {RGB.AssignmentType -> ^ ..0xff OwnedStateSuppl} + , extensions {U16 -> ^ ..0xff [Byte]} + +@mnemonic(press-forum-cake) +data ExtensionIface : modifier Modifier + , optional Std.Bool#laser-madam-maxwell + , metadata StrictTypes.SemId#cargo-plasma-catalog? + , globals {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , assignments {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , redeems {StrictTypes.FieldName#orient-spell-talent ^ ..0xff} + , valencies {StrictTypes.FieldName#orient-spell-talent ^ ..0xff} + , errors {U8 ^ ..0xff} + , defaultAssignment StrictTypes.FieldName#orient-spell-talent? + +@mnemonic(scoop-bagel-stop) +data GenesisIface : modifier Modifier + , metadata StrictTypes.SemId#cargo-plasma-catalog? + , globals {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , assignments {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , valencies {StrictTypes.FieldName#orient-spell-talent ^ ..0xff} + , errors {U8 ^ ..0xff} + +@mnemonic(garbo-justice-atomic) +data GlobalIface : semId StrictTypes.SemId#cargo-plasma-catalog? + , required Std.Bool#laser-madam-maxwell + , multiple Std.Bool#laser-madam-maxwell + +@mnemonic(cockpit-cafe-cannon) +data Hoard : schemata {RGB.SchemaId -> ^ ..0xff SchemaIfaces} + , ifaces {IfaceId -> ^ ..0xff Iface} + , geneses {RGB.ContractId -> ^ ..0xff RGB.Genesis#amadeus-mammal-maximum} + , suppl {RGB.ContractId -> ^ ..0xff {ContractSuppl ^ ..0xff}} + , assetTags {RGB.ContractId -> ^ ..0xff {RGB.AssignmentType -> ^ ..0xff RGB.AssetTag#buzzer-pattern-craft}} + , bundles {RGB.BundleId -> ^ ..0xffffffff RGB.TransitionBundle#correct-armada-optimal} + , extensions {RGB.OpId -> ^ ..0xffffffff RGB.Extension#stella-locate-trumpet} + , anchors {RGB.XChainTxid -> ^ ..0xffffffff RGB.XChainAnchorSetMerkleBlock#aroma-super-aurora} + , sigs {ContentId -> ContentSigs} + +@mnemonic(ibiza-nuclear-vision) +data IdSuite : pgp | ssh | ssi + + +@mnemonic(voice-mentor-fidel) +data Identity : name [Unicode ^ ..0xff] + , email [Std.Ascii#aloha-lunar-felix ^ ..0xff] + , suite IdSuite + , pk [Byte ^ ..0xff] + +@mnemonic(delta-star-element) +data Iface : version VerNo + , name StrictTypes.TypeName#jamaica-capsule-chance + , inherits {IfaceId ^ ..0xff} + , globalState {StrictTypes.FieldName -> ^ ..0xff GlobalIface} + , assignments {StrictTypes.FieldName -> ^ ..0xff AssignIface} + , valencies {StrictTypes.FieldName -> ^ ..0xff ValencyIface} + , genesis GenesisIface + , transitions {StrictTypes.FieldName -> ^ ..0xff TransitionIface} + , extensions {StrictTypes.FieldName -> ^ ..0xff ExtensionIface} + , defaultOperation StrictTypes.FieldName#orient-spell-talent? + , errors {StrictTypes.Variant -> ^ ..0xff [Unicode ^ ..0xff]} + , types RGB.Types#titanic-front-courage + +@mnemonic(vendor-polite-gong) +data IfaceId : [Byte ^ 32] + +@mnemonic(hazard-export-phrase) +data IfaceImpl : version VerNo + , schemaId RGB.SchemaId#garcia-smoke-ozone + , ifaceId IfaceId + , globalState {NamedFieldGlobalStateType ^ ..0xff} + , assignments {NamedFieldAssignmentType ^ ..0xff} + , valencies {NamedFieldValencyType ^ ..0xff} + , transitions {NamedFieldTransitionType ^ ..0xff} + , extensions {NamedFieldExtensionType ^ ..0xff} + , script RGB.Script#import-scorpio-evening + +@mnemonic(electra-scale-joel) +data IfacePair : iface Iface, iimpl IfaceImpl + +@mnemonic(monday-igloo-jupiter) +data ImplId : [Byte ^ 32] + +@mnemonic(natural-spain-alfred) +data IndexedBundle : RGB.ContractId#alarm-danube-vampire, RGB.BundleId#desert-divide-visible + +@mnemonic(marco-vampire-spoon) +data Modifier : final | abstract | override + + +@mnemonic(pedro-isabel-printer) +data NamedFieldAssignmentType : id RGB.AssignmentType#hunter-hello-retro + , name StrictTypes.FieldName#orient-spell-talent + , reserved CommitVerify.ReservedBytes4#claudia-drink-digital + +@mnemonic(slogan-mama-product) +data NamedFieldExtensionType : id RGB.ExtensionType#mission-salsa-parole + , name StrictTypes.FieldName#orient-spell-talent + , reserved CommitVerify.ReservedBytes4#claudia-drink-digital + +@mnemonic(nuclear-origin-member) +data NamedFieldGlobalStateType : id RGB.GlobalStateType#seminar-major-tape + , name StrictTypes.FieldName#orient-spell-talent + , reserved CommitVerify.ReservedBytes4#claudia-drink-digital + +@mnemonic(presto-baron-profile) +data NamedFieldTransitionType : id RGB.TransitionType#puma-joshua-evita + , name StrictTypes.FieldName#orient-spell-talent + , reserved CommitVerify.ReservedBytes4#claudia-drink-digital + +@mnemonic(caravan-buzzer-cockpit) +data NamedFieldValencyType : id RGB.ValencyType#palma-exit-pupil + , name StrictTypes.FieldName#orient-spell-talent + , reserved CommitVerify.ReservedBytes4#claudia-drink-digital + +@mnemonic(contact-remote-popular) +data OwnedIface : any () + | rights () + | amount () + | anyData () + | anyAttach () + | data StrictTypes.SemId#cargo-plasma-catalog + +@mnemonic(office-hexagon-exile) +data OwnedStateSuppl : meaning [Unicode ^ ..0xff], velocity VelocityHint + +@mnemonic(lecture-karma-miami) +data SchemaIfaces : schema RGB.SchemaSchema#apropos-broken-soprano, iimpls {IfaceId -> ^ ..0xff IfaceImpl} + +@mnemonic(maxwell-denver-stretch) +data Stock : hoard Hoard + , history {RGB.ContractId -> ^ ..0xff RGB.ContractHistory#civil-basic-nevada} + , bundleOpIndex {RGB.OpId -> ^ ..0xffffff IndexedBundle} + , anchorBundleIndex {RGB.BundleId -> ^ ..0xffffff RGB.XChainTxid#cubic-museum-lemon} + , contractIndex {RGB.ContractId -> ^ ..0xff ContractIndex} + , terminalIndex {RGB.XChainSecretSeal -> ^ ..0xffffff RGB.Opout#india-joshua-adam} + , sealSecrets {RGB.XChainBlindSealTxPtr#prime-loyal-escort ^ ..0xffffff} + +@mnemonic(partner-austin-dinner) +data SupplId : [Byte ^ 32] + +@mnemonic(mayor-judo-rival) +data Terminal : seals {RGB.XChainTerminalSeal#bread-tarzan-touch}, witnessTx RGB.XChainTx#roger-crater-escort? + +@mnemonic(battery-cecilia-politic) +data TerminalSeal : concealedUtxo BPCore.SecretSeal#santana-domingo-needle + | witnessVout VoutSeal + +@mnemonic(emerald-profit-jasmine) +data TickerSuppl : absent () + | global (RGB.GlobalStateType#seminar-major-tape, StrictTypes.Path#exotic-western-courage) + | owned (RGB.AssignmentType#hunter-hello-retro, StrictTypes.Path#exotic-western-courage) + +@mnemonic(marco-null-plaster) +data TransitionIface : modifier Modifier + , optional Std.Bool#laser-madam-maxwell + , metadata StrictTypes.SemId#cargo-plasma-catalog? + , globals {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , inputs {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , assignments {StrictTypes.FieldName -> ^ ..0xff RGB.Occurrences#unicorn-empire-mama} + , valencies {StrictTypes.FieldName#orient-spell-talent ^ ..0xff} + , errors {U8 ^ ..0xff} + , defaultAssignment StrictTypes.FieldName#orient-spell-talent? + +@mnemonic(input-tripod-oscar) +data ValencyIface : required Std.Bool#laser-madam-maxwell + +@mnemonic(textile-politic-harris) +data VelocityHint : unspecified | seldom#15 | episodic#31 | regular#63 + | frequent#127 | highFrequency#255 + + +@mnemonic(sabine-harlem-absorb) +data VerNo : v0 | v1 + + +@mnemonic(concert-venice-jacket) +data VoutSeal : method BPCore.Method#trilogy-tahiti-valid + , vout Bitcoin.Vout#chrome-robin-gallop + , blinding U64 + + diff --git a/Transfer.vesper b/Transfer.vesper new file mode 100644 index 00000000..63a42484 --- /dev/null +++ b/Transfer.vesper @@ -0,0 +1,1305 @@ +{- + Description: RGB Transfer + Author: Dr Maxim Orlovsky + Copyright (C) 2024 LNP/BP Standards Association. All rights reserved. + License: Apache-2.0 +-} + +Seals vesper lexicon=types+commitments + +ConsignmentId commitment hasher=SHA256 tagged=urn:lnp-bp:rgb:consignment#2024-03-11 + ContainerVer serialized + bool serialized + ContractId serialized + DiscloseHash serialized + ImplId set len=0..MAX8 + ImplId element + DiscloseHash set len=0..MAX32 + DiscloseHash element + DiscloseHash set len=0..MAX32 + DiscloseHash element + TerminalDisclose set len=0..MAX16 + TerminalDisclose element + AttachId set len=0..MAX16 + AttachId element + ContractSuppl set len=0..MAX8 + ContractSuppl element + AssetTag map len=0..MAX8 + AssignmentType mapKey + AssetTag mapValue + ContentSigs map len=0..MAX8 + ContentId mapKey + ContentSigs mapValue + +Consignmenttrue rec + version enum ContainerVer v2=2 + transfer enum Bool false=0 true=1 + assetTags map len=0..MAX8 + key is U16 aka=AssignmentType + value bytes len=32 aka=AssetTag + terminals map len=0..MAX16 + value rec Terminal + seals set len=0..MAX16 + genesis rec Genesis + ffv is U16 aka=Ffv + schemaId bytes len=32 aka=SchemaId + flags bytes len=1 aka=ReservedBytes1 + timestamp is I64 + testnet enum Bool false=0 true=1 + altLayers1 set len=0..MAX8 aka=AltLayer1Set + AltLayer1 enum liquid=1 + metadata bytes len=0..MAX16 aka=Metadata + globals map len=0..MAX8 aka=GlobalState + key is U16 aka=GlobalStateType + value list len=1..MAX16 aka=GlobalValues + RevealedData rec + value bytes len=0..MAX16 aka=DataState + salt is U128 + assignments map len=0..MAX8 aka=AssignmentsBlindSealTxid + key is U16 aka=AssignmentType + value union TypedAssignsBlindSealTxid + declarative list len=0..MAX16 wrapped tag=0 + AssignVoidStateBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + fungible list len=0..MAX16 wrapped tag=1 + AssignRevealedValueBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec ConcealedFungible + commitment bytes len=33 aka=PedersenCommitment + rangeProof bytes len=33 aka=PedersenCommitment + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec ConcealedFungible + commitment bytes len=33 aka=PedersenCommitment + rangeProof bytes len=33 aka=PedersenCommitment + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedFungible + value union FungibleState + bits64 is U64 wrapped tag=0 + blinding bytes len=32 aka=BlindingFactor + tag bytes len=32 aka=AssetTag + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec RevealedFungible + value union FungibleState + bits64 is U64 wrapped tag=0 + blinding bytes len=32 aka=BlindingFactor + tag bytes len=32 aka=AssetTag + lock bytes len=2 aka=ReservedBytes2 + structured list len=0..MAX16 wrapped tag=2 + AssignRevealedDataBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state bytes len=32 aka=ConcealedData + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state bytes len=32 aka=ConcealedData + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedData + value bytes len=0..MAX16 aka=DataState + salt is U128 + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec RevealedData + value bytes len=0..MAX16 aka=DataState + salt is U128 + lock bytes len=2 aka=ReservedBytes2 + attachment list len=0..MAX16 wrapped tag=3 + AssignRevealedAttachBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state bytes len=32 aka=ConcealedAttach + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state bytes len=32 aka=ConcealedAttach + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedAttach + id bytes len=32 aka=AttachId + mediaType enum MediaType any=255 + salt is U64 + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec RevealedAttach + id bytes len=32 aka=AttachId + mediaType enum MediaType any=255 + salt is U64 + lock bytes len=2 aka=ReservedBytes2 + valencies set len=0..MAX8 aka=Valencies + element is U16 aka=ValencyType + issuer bytes len=0..MAX16 aka=Issuer + script bytes len=1 aka=ReservedBytes1 + bundles set len=0..MAX32 + AnchoredBundle rec + anchor union XChainAnchorSet + bitcoin union AnchorSet wrapped tag=0 + tapret rec AnchorMerkleProofTapretProof wrapped tag=0 + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 + nonce is U8 + opret rec AnchorMerkleProofOpretProof wrapped tag=1 + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof is Unit aka=OpretProof + dual rec tag=2 + tapret rec AnchorMerkleProofTapretProof + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 + nonce is U8 + opret rec AnchorMerkleProofOpretProof + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof is Unit aka=OpretProof + liquid union AnchorSet wrapped tag=1 + tapret rec AnchorMerkleProofTapretProof wrapped tag=0 + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 + nonce is U8 + opret rec AnchorMerkleProofOpretProof wrapped tag=1 + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof is Unit aka=OpretProof + dual rec tag=2 + tapret rec AnchorMerkleProofTapretProof + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 + nonce is U8 + opret rec AnchorMerkleProofOpretProof + reserved1 bytes len=1 aka=ReservedBytes1 + txid bytes len=32 aka=Txid + reserved2 bytes len=1 aka=ReservedBytes1 + mpcProof rec MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof is Unit aka=OpretProof + bundle rec TransitionBundle + inputMap map len=1..MAX16 aka=InputMap + key is U32 aka=Vout + value bytes len=32 aka=OpId + knownTransitions map len=1..MAX16 + key bytes len=32 aka=OpId + value rec Transition + ffv is U16 aka=Ffv + contractId bytes len=32 aka=ContractId + transitionType is U16 aka=TransitionType + metadata bytes len=0..MAX16 aka=Metadata + globals map len=0..MAX8 aka=GlobalState + key is U16 aka=GlobalStateType + value list len=1..MAX16 aka=GlobalValues + RevealedData rec + value bytes len=0..MAX16 aka=DataState + salt is U128 + inputs set len=0..MAX16 aka=Inputs + Input rec + prevOut rec Opout + op bytes len=32 aka=OpId + ty is U16 aka=AssignmentType + no is U16 + reserved bytes len=2 aka=ReservedBytes2 + assignments map len=0..MAX8 aka=AssignmentsBlindSealTxPtr + key is U16 aka=AssignmentType + value union TypedAssignsBlindSealTxPtr + declarative list len=0..MAX16 wrapped tag=0 + AssignVoidStateBlindSealTxPtr union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + fungible list len=0..MAX16 wrapped tag=1 + AssignRevealedValueBlindSealTxPtr union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec ConcealedFungible + commitment bytes len=33 aka=PedersenCommitment + rangeProof bytes len=33 aka=PedersenCommitment + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state rec ConcealedFungible + commitment bytes len=33 aka=PedersenCommitment + rangeProof bytes len=33 aka=PedersenCommitment + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedFungible + value union FungibleState + bits64 is U64 wrapped tag=0 + blinding bytes len=32 aka=BlindingFactor + tag bytes len=32 aka=AssetTag + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state rec RevealedFungible + value union FungibleState + bits64 is U64 wrapped tag=0 + blinding bytes len=32 aka=BlindingFactor + tag bytes len=32 aka=AssetTag + lock bytes len=2 aka=ReservedBytes2 + structured list len=0..MAX16 wrapped tag=2 + AssignRevealedDataBlindSealTxPtr union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state bytes len=32 aka=ConcealedData + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state bytes len=32 aka=ConcealedData + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedData + value bytes len=0..MAX16 aka=DataState + salt is U128 + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state rec RevealedData + value bytes len=0..MAX16 aka=DataState + salt is U128 + lock bytes len=2 aka=ReservedBytes2 + attachment list len=0..MAX16 wrapped tag=3 + AssignRevealedAttachBlindSealTxPtr union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state bytes len=32 aka=ConcealedAttach + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state bytes len=32 aka=ConcealedAttach + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedAttach + id bytes len=32 aka=AttachId + mediaType enum MediaType any=255 + salt is U64 + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxPtr + bitcoin rec BlindSealTxPtr wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxPtr wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + state rec RevealedAttach + id bytes len=32 aka=AttachId + mediaType enum MediaType any=255 + salt is U64 + lock bytes len=2 aka=ReservedBytes2 + valencies set len=0..MAX8 aka=Valencies + element is U16 aka=ValencyType + witness bytes len=1 aka=ReservedBytes1 + script bytes len=1 aka=ReservedBytes1 + extensions set len=0..MAX32 + Extension rec + ffv is U16 aka=Ffv + contractId bytes len=32 aka=ContractId + extensionType is U16 aka=ExtensionType + metadata bytes len=0..MAX16 aka=Metadata + globals map len=0..MAX8 aka=GlobalState + key is U16 aka=GlobalStateType + value list len=1..MAX16 aka=GlobalValues + RevealedData rec + value bytes len=0..MAX16 aka=DataState + salt is U128 + assignments map len=0..MAX8 aka=AssignmentsBlindSealTxid + key is U16 aka=AssignmentType + value union TypedAssignsBlindSealTxid + declarative list len=0..MAX16 wrapped tag=0 + AssignVoidStateBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state is Unit aka=VoidState + lock bytes len=2 aka=ReservedBytes2 + fungible list len=0..MAX16 wrapped tag=1 + AssignRevealedValueBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec ConcealedFungible + commitment bytes len=33 aka=PedersenCommitment + rangeProof bytes len=33 aka=PedersenCommitment + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec ConcealedFungible + commitment bytes len=33 aka=PedersenCommitment + rangeProof bytes len=33 aka=PedersenCommitment + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedFungible + value union FungibleState + bits64 is U64 wrapped tag=0 + blinding bytes len=32 aka=BlindingFactor + tag bytes len=32 aka=AssetTag + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec RevealedFungible + value union FungibleState + bits64 is U64 wrapped tag=0 + blinding bytes len=32 aka=BlindingFactor + tag bytes len=32 aka=AssetTag + lock bytes len=2 aka=ReservedBytes2 + structured list len=0..MAX16 wrapped tag=2 + AssignRevealedDataBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state bytes len=32 aka=ConcealedData + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state bytes len=32 aka=ConcealedData + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedData + value bytes len=0..MAX16 aka=DataState + salt is U128 + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec RevealedData + value bytes len=0..MAX16 aka=DataState + salt is U128 + lock bytes len=2 aka=ReservedBytes2 + attachment list len=0..MAX16 wrapped tag=3 + AssignRevealedAttachBlindSealTxid union + confidential rec tag=0 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state bytes len=32 aka=ConcealedAttach + lock bytes len=2 aka=ReservedBytes2 + confidentialState rec tag=1 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state bytes len=32 aka=ConcealedAttach + lock bytes len=2 aka=ReservedBytes2 + confidentialSeal rec tag=2 + seal union XChainSecretSeal + bitcoin bytes len=32 wrapped aka=SecretSeal tag=0 + liquid bytes len=32 wrapped aka=SecretSeal tag=1 + state rec RevealedAttach + id bytes len=32 aka=AttachId + mediaType enum MediaType any=255 + salt is U64 + lock bytes len=2 aka=ReservedBytes2 + revealed rec tag=3 + seal union XChainBlindSealTxid + bitcoin rec BlindSealTxid wrapped tag=0 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + liquid rec BlindSealTxid wrapped tag=1 + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + state rec RevealedAttach + id bytes len=32 aka=AttachId + mediaType enum MediaType any=255 + salt is U64 + lock bytes len=2 aka=ReservedBytes2 + redeemed map len=0..MAX8 aka=Redeemed + key is U16 aka=ValencyType + value bytes len=32 aka=OpId + valencies set len=0..MAX8 aka=Valencies + element is U16 aka=ValencyType + witness bytes len=1 aka=ReservedBytes1 + script bytes len=1 aka=ReservedBytes1 + schema rec SchemaSchema + ffv is U16 aka=Ffv + flags bytes len=1 aka=ReservedBytes1 + some rec Schema option wrapped tag=1 + ffv is U16 aka=Ffv + flags bytes len=1 aka=ReservedBytes1 + some is Unit option wrapped tag=1 + globalTypes map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec GlobalStateSchema + semId bytes len=32 aka=SemId + maxItems is U16 + ownedTypes map len=0..MAX8 + key is U16 aka=AssignmentType + value union StateSchema + declarative is Unit tag=0 + fungible enum FungibleType wrapped unsigned64Bit=8 tag=1 + structured bytes len=32 wrapped aka=SemId tag=2 + attachment enum MediaType wrapped any=255 tag=3 + valencyTypes set len=0..MAX8 + element is U16 aka=ValencyType + genesis rec GenesisSchema + metadata bytes len=32 aka=SemId + globals map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element is U16 aka=ValencyType + extensions map len=0..MAX8 + key is U16 aka=ExtensionType + value rec ExtensionSchema + metadata bytes len=32 aka=SemId + globals map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec Occurrences + min is U16 + max is U16 + redeems set len=0..MAX8 + element is U16 aka=ValencyType + assignments map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element is U16 aka=ValencyType + transitions map len=0..MAX8 + key is U16 aka=TransitionType + value rec TransitionSchema + metadata bytes len=32 aka=SemId + globals map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec Occurrences + min is U16 + max is U16 + inputs map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element is U16 aka=ValencyType + types union Types + strict map len=0..MAX24 wrapped aka=TypeSystem tag=0 + key bytes len=32 aka=SemId + value union TySemId + primitive is U8 wrapped aka=Primitive tag=0 + unicode is Unit tag=1 + enum set len=1..MAX8 wrapped aka=EnumVariants tag=2 + Variant rec + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + tag is U8 + union map len=0..MAX8 wrapped aka=UnionVariantsSemId tag=3 + key is U8 + value rec VariantInfoSemId + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + ty bytes len=32 aka=SemId + tuple list len=1..MAX8 wrapped aka=UnnamedFieldsSemId tag=4 + element bytes len=32 aka=SemId + struct list len=1..MAX8 wrapped aka=NamedFieldsSemId tag=5 + FieldSemId rec + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + ty bytes len=32 aka=SemId + array tuple tag=6 + _ bytes len=32 aka=SemId + _ is U16 + list tuple tag=7 + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + set tuple tag=8 + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + map tuple tag=9 + _ bytes len=32 aka=SemId + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + script union Script + aluVm rec AluScript wrapped tag=0 + libs map len=0..MAX8 + key bytes len=32 aka=LibId + value bytes len=0..MAX16 + entryPoints map len=0..MAX16 + key bytes len=3 + value rec LibSite + lib bytes len=32 aka=LibId + pos is U16 + globalTypes map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec GlobalStateSchema + semId bytes len=32 aka=SemId + maxItems is U16 + ownedTypes map len=0..MAX8 + key is U16 aka=AssignmentType + value union StateSchema + declarative is Unit tag=0 + fungible enum FungibleType wrapped unsigned64Bit=8 tag=1 + structured bytes len=32 wrapped aka=SemId tag=2 + attachment enum MediaType wrapped any=255 tag=3 + valencyTypes set len=0..MAX8 + element is U16 aka=ValencyType + genesis rec GenesisSchema + metadata bytes len=32 aka=SemId + globals map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element is U16 aka=ValencyType + extensions map len=0..MAX8 + key is U16 aka=ExtensionType + value rec ExtensionSchema + metadata bytes len=32 aka=SemId + globals map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec Occurrences + min is U16 + max is U16 + redeems set len=0..MAX8 + element is U16 aka=ValencyType + assignments map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element is U16 aka=ValencyType + transitions map len=0..MAX8 + key is U16 aka=TransitionType + value rec TransitionSchema + metadata bytes len=32 aka=SemId + globals map len=0..MAX8 + key is U16 aka=GlobalStateType + value rec Occurrences + min is U16 + max is U16 + inputs map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key is U16 aka=AssignmentType + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element is U16 aka=ValencyType + types union Types + strict map len=0..MAX24 wrapped aka=TypeSystem tag=0 + key bytes len=32 aka=SemId + value union TySemId + primitive is U8 wrapped aka=Primitive tag=0 + unicode is Unit tag=1 + enum set len=1..MAX8 wrapped aka=EnumVariants tag=2 + Variant rec + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + tag is U8 + union map len=0..MAX8 wrapped aka=UnionVariantsSemId tag=3 + key is U8 + value rec VariantInfoSemId + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + ty bytes len=32 aka=SemId + tuple list len=1..MAX8 wrapped aka=UnnamedFieldsSemId tag=4 + element bytes len=32 aka=SemId + struct list len=1..MAX8 wrapped aka=NamedFieldsSemId tag=5 + FieldSemId rec + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + ty bytes len=32 aka=SemId + array tuple tag=6 + _ bytes len=32 aka=SemId + _ is U16 + list tuple tag=7 + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + set tuple tag=8 + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + map tuple tag=9 + _ bytes len=32 aka=SemId + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + script union Script + aluVm rec AluScript wrapped tag=0 + libs map len=0..MAX8 + key bytes len=32 aka=LibId + value bytes len=0..MAX16 + entryPoints map len=0..MAX16 + key bytes len=3 + value rec LibSite + lib bytes len=32 aka=LibId + pos is U16 + ifaces map len=0..MAX8 + key bytes len=32 aka=IfaceId + value rec IfacePair + iface rec Iface + version enum VerNo v0=0 v1=1 + name ascii len=1..100 aka=TypeName aka=Ident charset=AlphaNumLodash + inherits set len=0..MAX8 + element bytes len=32 aka=IfaceId + globalState map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec GlobalIface + some bytes len=32 option wrapped aka=SemId tag=1 + required enum Bool false=0 true=1 + multiple enum Bool false=0 true=1 + assignments map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec AssignIface + ownedState union OwnedIface + any is Unit tag=0 + rights is Unit tag=1 + amount is Unit tag=2 + anyData is Unit tag=3 + anyAttach is Unit tag=4 + data bytes len=32 wrapped aka=SemId tag=5 + public enum Bool false=0 true=1 + required enum Bool false=0 true=1 + multiple enum Bool false=0 true=1 + valencies map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec ValencyIface + required enum Bool false=0 true=1 + genesis rec GenesisIface + modifier enum Modifier final=0 abstract=1 override=2 + some bytes len=32 option wrapped aka=SemId tag=1 + globals map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + errors set len=0..MAX8 + element is U8 + transitions map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec TransitionIface + modifier enum Modifier final=0 abstract=1 override=2 + optional enum Bool false=0 true=1 + some bytes len=32 option wrapped aka=SemId tag=1 + globals map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + inputs map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + valencies set len=0..MAX8 + element ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + errors set len=0..MAX8 + element is U8 + some ascii len=1..100 option wrapped aka=FieldName aka=Ident charset=AlphaNumLodash tag=1 + extensions map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec ExtensionIface + modifier enum Modifier final=0 abstract=1 override=2 + optional enum Bool false=0 true=1 + some bytes len=32 option wrapped aka=SemId tag=1 + globals map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + assignments map len=0..MAX8 + key ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + value rec Occurrences + min is U16 + max is U16 + redeems set len=0..MAX8 + element ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + valencies set len=0..MAX8 + element ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + errors set len=0..MAX8 + element is U8 + some ascii len=1..100 option wrapped aka=FieldName aka=Ident charset=AlphaNumLodash tag=1 + some ascii len=1..100 option wrapped aka=FieldName aka=Ident charset=AlphaNumLodash tag=1 + errors map len=0..MAX8 + key rec Variant + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + tag is U8 + value str len=0..MAX8 + types union Types + strict map len=0..MAX24 wrapped aka=TypeSystem tag=0 + key bytes len=32 aka=SemId + value union TySemId + primitive is U8 wrapped aka=Primitive tag=0 + unicode is Unit tag=1 + enum set len=1..MAX8 wrapped aka=EnumVariants tag=2 + Variant rec + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + tag is U8 + union map len=0..MAX8 wrapped aka=UnionVariantsSemId tag=3 + key is U8 + value rec VariantInfoSemId + name ascii len=1..100 aka=VariantName aka=Ident charset=AlphaNumLodash + ty bytes len=32 aka=SemId + tuple list len=1..MAX8 wrapped aka=UnnamedFieldsSemId tag=4 + element bytes len=32 aka=SemId + struct list len=1..MAX8 wrapped aka=NamedFieldsSemId tag=5 + FieldSemId rec + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + ty bytes len=32 aka=SemId + array tuple tag=6 + _ bytes len=32 aka=SemId + _ is U16 + list tuple tag=7 + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + set tuple tag=8 + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + map tuple tag=9 + _ bytes len=32 aka=SemId + _ bytes len=32 aka=SemId + Sizing rec + min is U64 + max is U64 + iimpl rec IfaceImpl + version enum VerNo v0=0 v1=1 + schemaId bytes len=32 aka=SchemaId + ifaceId bytes len=32 aka=IfaceId + globalState set len=0..MAX8 + NamedFieldGlobalStateType rec + id is U16 aka=GlobalStateType + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + reserved bytes len=4 aka=ReservedBytes4 + assignments set len=0..MAX8 + NamedFieldAssignmentType rec + id is U16 aka=AssignmentType + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + reserved bytes len=4 aka=ReservedBytes4 + valencies set len=0..MAX8 + NamedFieldValencyType rec + id is U16 aka=ValencyType + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + reserved bytes len=4 aka=ReservedBytes4 + transitions set len=0..MAX8 + NamedFieldTransitionType rec + id is U16 aka=TransitionType + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + reserved bytes len=4 aka=ReservedBytes4 + extensions set len=0..MAX8 + NamedFieldExtensionType rec + id is U16 aka=ExtensionType + name ascii len=1..100 aka=FieldName aka=Ident charset=AlphaNumLodash + reserved bytes len=4 aka=ReservedBytes4 + script union Script + aluVm rec AluScript wrapped tag=0 + libs map len=0..MAX8 + key bytes len=32 aka=LibId + value bytes len=0..MAX16 + entryPoints map len=0..MAX16 + key bytes len=3 + value rec LibSite + lib bytes len=32 aka=LibId + pos is U16 + supplements set len=0..MAX8 + ContractSuppl rec + contractId bytes len=32 aka=ContractId + ticker union TickerSuppl + absent is Unit tag=0 + global tuple tag=1 + _ is U16 aka=GlobalStateType + owned tuple tag=2 + _ is U16 aka=AssignmentType + mediaKit str len=0..MAX8 + globalState map len=0..MAX8 + key is U16 aka=AssignmentType + value rec OwnedStateSuppl + meaning str len=0..MAX8 + velocity enum VelocityHint unspecified=0 seldom=15 episodic=31 regular=63 frequent=127 highFrequency=255 + ownedState map len=0..MAX8 + key is U16 aka=AssignmentType + value rec OwnedStateSuppl + meaning str len=0..MAX8 + velocity enum VelocityHint unspecified=0 seldom=15 episodic=31 regular=63 frequent=127 highFrequency=255 + extensions map len=0..MAX8 + key is U16 + value bytes len=0..MAX16 + attachments map len=0..MAX16 + key bytes len=32 aka=AttachId + value bytes len=0..MAX24 + signatures map len=0..MAX8 + key union ContentId + schema bytes len=32 wrapped aka=SchemaId tag=0 + genesis bytes len=32 wrapped aka=ContractId tag=1 + iface bytes len=32 wrapped aka=IfaceId tag=2 + ifaceImpl bytes len=32 wrapped aka=ImplId tag=3 + suppl bytes len=32 wrapped aka=SupplId tag=4 + value set len=1..10 aka=ContentSigs + Cert rec + signer rec Identity + name str len=0..MAX8 + email list len=0..MAX8 + Ascii enum { + nul=0 soh=1 stx=2 etx=3 eot=4 enq=5 ack=6 bel=7 bs=8 + ht=9 lf=10 vt=11 ff=12 cr=13 so=14 si=15 dle=16 + dc1=17 dc2=18 dc3=19 dc4=20 nack=21 syn=22 etb=23 can=24 + em=25 sub=26 esc=27 fs=28 gs=29 rs=30 us=31 space=32 + excl=33 quotes=34 hash=35 dollar=36 percent=37 ampersand=38 apostrophe=39 bracketL=40 + bracketR=41 asterisk=42 plus=43 comma=44 minus=45 dot=46 slash=47 zero=48 + one=49 two=50 three=51 four=52 five=53 six=54 seven=55 eight=56 + nine=57 colon=58 semiColon=59 less=60 equal=61 greater=62 question=63 at=64 + A=65 B=66 C=67 D=68 E=69 F=70 G=71 H=72 + I=73 J=74 K=75 L=76 M=77 N=78 O=79 P=80 + Q=81 R=82 S=83 T=84 U=85 V=86 W=87 X=88 + Y=89 Z=90 sqBracketL=91 backSlash=92 sqBracketR=93 caret=94 lodash=95 backtick=96 + a=97 b=98 c=99 d=100 e=101 f=102 g=103 h=104 + i=105 j=106 k=107 l=108 m=109 n=110 o=111 p=112 + q=113 r=114 s=115 t=116 u=117 v=118 w=119 x=120 + y=121 z=122 cBracketL=123 pipe=124 cBracketR=125 tilde=126 del=127 + } + suite enum IdSuite pgp=0 ssh=1 ssi=2 + pk bytes len=0..MAX8 + signature bytes len=0..MAX8 + diff --git a/tests/data/rgb20.rgba b/tests/data/rgb20.rgba index ceeb663a..eed3a611 100644 --- a/tests/data/rgb20.rgba +++ b/tests/data/rgb20.rgba @@ -1,217 +1,217 @@ -----BEGIN RGB INTERFACE----- -Id: CZQXwY-4YARwazg-qU9FmzvS-Msu7oZxe-YrwXBmL2-S3HRvR -Mnemonic: family-paper-extreme +Id: urn:lnp-bp:if:FYGtpt-fMCCitCg-Yo4Tru1X-MAaEkcKa-6inHR1Ji-bm8jtv#planet-avalon-diploma Name: RGB20 +Checksum-SHA256: 602afedf46a14ce367900063ffe7782fa1ae36b6eedd4e4c99b55eb86aff8dda -00mM#!wSY=~6@jI2b%^Ho0^4h`N6bqMfQQ6em^T$y -fj)VXK2V-(&VRU6=0b;l_K%3oNk|D3>jgMiHNFD$nH%jLO?ZJGP>y9~kh5-NsWMO -n+0UbgMWzazyQWzbJ0`uB~s+m=Ng446R2b*47%pg27;{gB+X>)URWn@!zaBysS0f ->xPWn((=JC(Q18jXtb+QHlu3zu?H+0@$e$59-PgaH8#a%FIAVPj=vQ+04~YV>pY;13LVQyn(0s#O43w3a0VRU6uX=iA30Ra -F200BmOtbsYP^%MO!vmSIsorVgs_HZ-Wn$&XU+C3lhihBeHV{&C-bY)}!0RRC21Y -}`!VE_RD0RRkXb8~fNWK(r;aBO)10RRC21aoj@V*mjF0RRLFVRLh3bWe9~WpV%j0 -RR69Vs&zEMR0FpXaE2J0RR$dZf0y@bZKvHL2PVqcVTX0WdHyG|NjehaAaY0Wm0Kp -XmkJo009610|5gB1_VNNa&7?uF^Mk0VRUJ4Zb58pZ+BsCV -`TvV|NjCDVr6b+W@%$-VRCr^3So0|Wpqz>Ze?-+0RR66W_5IRa%BM$X>Mk0VRUJ4 -Zb58pZ+BsCV`TsU|Nj640RsdE0SjVfZe?a^V`*V>c?nN&Wo|`qZ)0cy00035b#rB -80SRJta&AR%Z)0cy0096331W3}Zc=GyXmkJp00965Ze@6M0SRJta&AR%Z)0cx009 -61009YNb#iV}X=iA322y2iVQpmr009GTWp@Dtb8uy20RRC20R(k(Wn=*hb#P>1bY -)U$XJ~W*0096224;11b#i3^3w3a0VRU6uX=iA30003100037W_5IRa%BfnWpHd^V -`TvWF^Ze?- -+0RR66W_5IRa%BMtVs&zEQfX&sbN~PW000C50s{pB3u0w%WoBt(X<>4C2vl-mZgX -a3asU7T0SIt%Wp-(Ab#nmZe?--0RR600RjOFVr6b+W@%$-VRCr@p@*K2R=w8!jH4sDPdVUVWICprIU$jh) -(lLFe0u@N0SHubVQzC~WpYjc009|og(=AP+C)tiPK}(5y`B$^i2_%Xzy^d7 -vHg1k5H90tF4%ya@=dSJu9IL;>*e1Zg(dl;zh@Se)i)R+C0ZKmX5VlzrFd~pb000 -0000000|NsC0000002eXhTbJc$66>)iENYm6sSix4*DK{%n(91s0BM>Eq2nrdH*H -iKem1Z9kJM|+?(>Td5ZgsqT;~+(zt2h~^9t&(x4U{HCV*7Ex=y -Z4kc9pbbVOY8BQJvP*estVa^8;T6b8ul}WgrA)cw=lK261(7bY*iQ1ZZJ%Xd?z>Z -)|K~awG?EWpZO>ZgeFHVQp|_a&uvBWF`t>aBp*Ta&K^GWhV$?a$#d@Wpqp^2x4+! -V{2t}QYi>wb97~LX>)5T1aNG1b1Ma7Z*6U1ECp?8Zgq1l17vS>E(LRJVRL9N1bSt -1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX1!He)Z*DpXb7gI5LvL(vZaV~QWpi^p1!Zw{VQf7IXL4m>bY*fr2yt~~b9 -8BMZa)HHbU*P*4F;Q2|m?0aH@}R8#>~RRLC30asT6SXcpBSpiyF3UhHna$#d@Wpqqi31VSm -Yg24tb7))&b8$j)VPk7$bW&XfV_|Y-bY2E*Z)9O}XkQ3oVPk7_X=7_(0byYQVqyV -fV*zAj0cB+YW@Z6rX8~wv0cmLgYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&iH4a{+ -X80d;i&c6I@GcL8{K0eN`=dU^?CLULhaYh`pydjxQ4aAkZ6V?uIaV{2t}Qhfz -4R=eh$(aI~j%e^N6 -MEdyk4bS?#RY+-X~F9dpJa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19N -G3HU)EKc4cli1!ZYxXmmIPZfS01IR#^HY;SHl33Fv_X+v*pZ*DsTY-MwEJOyQObz -y8h2WN6+VRU73J_vDjWpi|CZ*D&VVRS$NK|ujRLIFcV0YpRrMMVKdMgd1h0Z2#zN -l5`pN&!nt0ZdE*O-%t#P61C(0Z>o@QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&E -S_*S -etH31dQXVPk7$bW(iWo&;K8lmIubiGld%-d|T7z@-B^7xU$igsTXq -Nww_EvvBzU=_gU2V|-Aisv2FNXqmBTmS3ZV(<42$azAB_>m7m0RR91000002mk;8 -000007`FxCUAgObcftAGG@kHo*&dXDFHNft@p*=o3UiEp1p$nCrNR=v8-iXLy;Ob -)8n=L88@A^o`}1a0kwy-si76P%ly4G~&lnD!c-+QY#hXVj|NgD}^^LKZ%!4TQO92 -G|Rt=W-q*e1Zg(dl;zh@Se)i) -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 -+0$(-;0$(==Rt=W-qYp6avD7|R0g -wX!*5!Gc?n?5;yM1jui=Thm^szjcmMzZ000000RR600000009GC;&{xzx0_jd|U7 -3Fl>Tzs!yBgyX`N76h+VcaHPzXHHqMgjGn~{4aFkgwNr28QlFe*-S#jFZ=4d$x=U -ULBe00000002M$00000003N}NmyOwH13hJ(~}Y-IohWMyM -%0R>}aZggn^1#M|;Y-s}tWMyM%O=)awX#@&mWo~q7O=)awX$1vsX=8G41_@+kV`) -ukV{&f?3S(t%bZJd#V{&f@1a4t&ZwUxwWn*bhVQy~<31ek$bZJguZf^?&aA{+23< -zXpV`)%nV{Z)!V`Xl1X;5inZw>`!Wo>kC4+&&tV`)ZZZFFxC3S(t%bZJIqZFFxD1 -YvY^ZxUb?z~={Ksq~8H9n?t5^aES}>)T@Q_YKH-LWcN}4?zPY1bSt1Z!iOIZe=k8 -ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX0YO0 -lLP7yULjgoY0YyatMn(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN-PEG+&PXSO+0Z~x_Qc? -j^Qvp;|0aaB2R#pL5R{>a90a;lAT3TU-BGG%U@MZ$v=XJ?|;InIPy66cFfOYp#JM -2r7_Dur<1!iGvb7cSobaHiN0b;l_K%3oNk|D3>jgMiHNFD$nH%jLO?ZJGP>y9~kh -6MpF(b`B!=xYvp&mw-5o%E66={BRi-ghCWXl@%YTyP^}sv{KWu}8?Vgx|B8o)FQT -s@3}HgpNG9gq@LR)-*~8`>9xR8a*>q2D50xZ(4$R31H0PIsUw_;fcDKIn~;D0RR9 -100000{{R3000000W-{7jyY;+0$@L;dFH?7@I0Vhjl>lqRXQ4Sv!J@Q}07Pb3aM+ -Gq(Fu_0Ocz)^+@GUUoV7w&pu=F9->y0X3z7pM0$(ry0$(u!0$(x$0$(!&0$(%)0$ -()+0$(-;0$(==0$(@?0$(`^179&P3Iks;F$)7w}4<9w&x@J^JY|$Mh>NkDF<_PVsv -?MWsmkR;H_`w{%V34N{X9r_wVRCb2bdUBg;H_`w{% -V34N{XL63FikIGWAoeO*X|PL&CIr7l*55dloPH+fr -zDW%tph&o@QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES_W)yWMOk?Ujb -oZ0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0d -jHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX6XSFQ*2dy+cL#Wo+$K-npR=t1{a-C411d -)vtBzL}*30T>#g&)D!afk;000UlyXM^SUjov4q|Oz%19p|PWMNpj>`|T8)P8i -_RPzA<00000001Ze00000004-LSY=~6@jI2b%^Ho0^4h`N6bqMfQQ6em^T$yfj)V -mPT%k!=UF9_Hk+b8VFt_j2&9|DqsTD5}A2(UF#~}_MjCrNP622RPUKzbqehC`4fM -6T8=Og>`W>k?z4yB1H1p!tbDbQEcJ_6}ZZC#mv4(f4ib-Nnl68XW#Q`++blu(cMF -W{|j=KgAeU0YRoJc`J2tuHB<Vo@@aGb8l^B7`FxCUAgObcftAGG@kHo*&dXDFHNft@p*= -o3UiEpkUL~>d4!J}CQ~Zp&c>#RM4(exxbT6?CbPTvEuK5`1_A|kVQh6}m-W{MLar -(^k|jH+P94s~ljFZW({ZtfbA~le%!q<(40B_0X>fEt4!A4H=_ds@ZT$lCN212eXGm<4cs7@Wu#FOK{KGSirhjWHCPRxjcY -Xt#Zp-EU>BEOVuo?yi;C-IS|dY* -_VV1lmKM$X>N95Y-wara&K>D0~Bd)b9H8BX=7 -<+Zgf&*b7gXNWpe}+X>N0MW@c$)X=QG7LvMCva$#p>1r=#?b9H4!cw=Q{WOG4mY; -SjAZewKzqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=aO9W+B1pz8ss;p3n{|Sv13 -rH;f*u2mhk-*oqT{0nV)po0K>)oZ#`!aPC2Yyc<$zXDlf<&Mmp^R+W^_bcVS2e5$ -Ue^EwrY<;26H$a1JDsMvd20sfjCICqGWM -}19*F@#XVmjaq%az$04KD-Vbij2IPrk>V1p#I<+GM-+ygbSEB1JD#cc?f7&CQhnY -s6=vIZVN#w2!iat)Lc}<}CbdN>_$qQw_b!lPsq8*H7AOVOuK}28#%gJ7jQqgpV60 -Q!3=n#-@oxpi@}5@PW%Fv%B~$o;&jZ0000000030|Ns900002CALmz2;DYO^VP;= -uuCfU*mJ%b7mQ5gJno@QBeU>QUOy_0aR20RaF6 -2RsmO60a#c8Sy=&ES^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)Yyo -X;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX78D3P(oYQ^>D5L -u%jciN~UGoeFU(?$rh3j_QCeU(K63Iuv(a&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_a -x?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IllZJ{AQ&Y{bW*VIunOL=kX9N -3%>t4!A4H=_ds@ZTm=CotM$1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$N2Da%+! -|DA9Vsm&hHC4WXN2M4aZ(WL^Hp>3BS~hw-BY0R-k)e=PQRzk^xih<3e>RP8oyjwd -xaIA{*p){f_{?!|i{n!oosZgNI|twmNZeC(lYZa*g7-2eQ3Yy;-pL -V?*e8zcXXXRJdMCHk1I^Yb;mDw5%F9Y9nz;zN&zQ>*hX>M?JbaMx@kSBB1e&`i(d -1FY^)J0gqR@5msD^SqOKF=c%C58uYb#!obbaS$Tt)Lc}<}CbdN>_$qQw_b!lPsq8 -*H7AOVOuK}28#%6Z)0mzX>DaS+8q@+Aa1+e+@!-jhcW8%o2S}z-#y5JARJB>wYeP -1|BtS-iU6QaHX&1wj$zkYg`{Q63JyraSw4QMY+uI(0Y58px5Td+V+^*_{|Jk(H4u -~TMq8eJM=D_eg5*ip@L|V|mt8Tf>F%PuK$$b1Yybe>e0 -4l))n|10az!v~q+>vr5YFHm?aGlL{I2hlzx9R&0|su^m~#z%*8ez& -p_EJg6Ki_SKV2$ZF}3u>b{w!1a4t%Wl$6lUkpGd$`Y%tH+|x7jy#}XjniyMKGzRN -8C=se)CXi`bYW?1b49m+C58dTCbBzQNMS|_kWk@2HT%AU1*iZKSL6XWh~V%B)rv+ -(nPXsx_c+eWous_y&=Bs+Y95aobV|bo`UC<11a5C`W!OKy;4cm3v~2hf;U4$>@L| -V|mt8Tf>F%PuK$$b1YykvwZ*67dPPz)!o*xF49u!aMidw-Ho6ARja8F=P6MX_B^u -vbaPPz)!o*xF49u!aMidw-Ho6ARja8F=P6MX_B^uvY)0k$9KS5Dx9>#1R8UuLed2 -{4utBaoI&AY_{-wdcrn6z8PEqC$=AAgl?K;tNnDaiEZd^081Ac_SsKFP7nY4g;Flf93~qr!XIkUWl1p1! -rpm5CnQ7 -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 +4TQO92G|Rt=W-q*e1Zg(dl;zh +@Se)i)R+C0ZKmX5VlzrFd~pb06-wNeO*{)6_R%-pmV*mSWWxurUDg$3MGb;mMG&C#&Uo179>YE(2dQH!lNUG&nE=Uo<%}179^TG6P>VF*5^S +H8L~S+XYD&D@qdC-Hdlhx3aZBNPbr@aHF*SPB$t +~%I1px%+Sbr?`c)x>L)i(&tG~n8CcwYZ>30fz{}gsB6ojhd6}&TLsKSk4g&%LUoZdyUoinKB^fyf0@XL;*!b0Y*jvM@IojNC8 +Pn0ZK{%OG^PvOaVz%0 +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 +eTL3np|I=+ZSHXzGneTL3nM +s8HM=uUmE|%CLL8DYpYB02F=7s{mYlP#7GIv0000000000|Nj6000000P!tef3_v +Ez605E^ed2G9JfL8W(`-mS*AGV-T+=kv1p$QK1HgS9M|-zzK&eO4ZXVcu#7?hD-%wz{v5BuelqlIu4J>MJmc=|AqG3>FHibBhS)2n10$(ry0$(u!0 +$(x$0$(!&0$(%)0$()+0$(-;0$(==Rt=W-qYp6avD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szjcmMzZ000000RR600000 +009GC;&{xzx0_jd|U73Fl>Tzs!yBgyX`N76h+VcaHPzXHHqMgjGn~{4aFkgwNr28 +QlFe*-S#jFZ=4d$x=UULBe00000002M$00000003N}NmyOwH13hJ(~}Y-IohWMyM%0R>}aZggn^1#M|;Y-s}tWMyM%O=)awX#@&mWo~q7O=)aw +X$1vsX=8G41_@+kV`)ukV{&f?3S(t%bZJd#V{&f@1a4t&ZwUxwWn*bhVQy~<31ek +$bZJguZf^?&aA{+23`!Wo>kC4+&&tV`)ZZZFF +xC3S(t%bZJIqZFFxD1YvY^ZxUb?z~={Ksq~8H9n?t5^aES}>)T@Q_YKH-LWcN}4? +zPY1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGW +oc(MgX0YO0lLP7yULjgoY0YyatMn(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN- +PEG+&PXSO+0Z~x_Qc?j^Qvp;|0aaB2R#pL5R{>a90a;lAT3TU-BGG%U@MZ$v=XJ? +|;InIPy66cFfOYp#JM2r7_Dur<1!iGvb7cSobaHiN0b{Bo6zH)>$g+grvznd|(VV +K)`s##^Jh_COk!RL4N(lR@SaKRYGgJn%Xv1$>f_VvG%;GuzyszPjx|liD+IRr~00 +0000093000000003q(+GM-+ygbSEB1JD#cc?f7&CQhnYs6=vIZVN#w2uHpW>|38j +$F|Rkm*bpSUudIqf?xXBYXyYdrZ=H(l+rjwgT#(qgapY9 +rr))NMYY1_K0id2nTnd8NVmmQBm47aRFOswrHLsAb9G{Ld +2nTq_AlVAZ|44Lf?Zoxc|3~9a;+~ZnB@+WmHecNJUeFxV`yP=b7gdo_AlVAZ|44L +f?Zoxc|3~9a;+~ZnB@+WmHecNJUeG{j;4y2-gF@LDp_f;ONS-|zeU#HIF+1!Cg-O +lkmRicKLmPZa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4c +li1!ZYxXmmIPZfS01IRQaI0YX9nLqh>XL;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOa +VmmZEXQ=ZUJv^0dQ~uad821 +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 -----END RGB INTERFACE----- diff --git a/tests/data/rgb21.rgba b/tests/data/rgb21.rgba index e8f366aa..c623aaa3 100644 --- a/tests/data/rgb21.rgba +++ b/tests/data/rgb21.rgba @@ -1,253 +1,254 @@ -----BEGIN RGB INTERFACE----- -Id: J241QM-3WMEyi8W-Uj1NB1Bk-AkRCAJzv-mxgLwPFV-TnuYom -Mnemonic: native-edgar-mystery +Id: urn:lnp-bp:if:FTYW6w-aPTXtT3C-7GCH9Z9F-bnkeEKF1-eMJPfWEj-rN8iGW#forever-office-moses Name: RGB21 +Checksum-SHA256: 03f5b07e096c163a2d13e99e8e97c328aace1b1befb6f08c9c11b4d20dc9dd07 -00mM>qga82tV{&C-bY)}#Vz@Ivo84WKA+P6+k71HX9snRWO6LUa!F-qNjyZaU0RR -eRZf9~~c4=;Ba{)FYs!UTFLPOgDS7!J1U>B>Jj|K=!Hg8sluu0W&s6GGz1aoj@V* -#0BO}FGGl9^PKF5k$~XQfh?0x3MztH4%HZz5YW`tbn(1$1R{ZF2z_%am^tlg}6qo -p{{FTg974FaQ3n`}K{nn9PGH_DcZ)00wk#Yh`Y80c+>nIXbq+TS(-ULd_kDC&~qc -^(~qb-W7=fm%8eU-~a&w3So0|Wpqz>Ze?->7;x>&>|_U&vjjD4#axh{fBik-QrJv -$@`YYkgS*{X0003JX>Mk0VRUJ4Zb58pZ+BsCV`T*t46_|m^u3-)2^*VLeS!lfFCx -Nhr?F^;Qi5AQin2NZ009eiaAaY0Wm0KpXmkMq00001MtiJ*IkEK<{Wr57bVZ$p3b -OWaGuoQea^~7SAM=WP1rK3#bYWv?ZDnqBRC#b^a{vGU|NjSLa%Ew3Wn=&W00965b -8uy20096200neqa&2<}0RRC226S(0Wo~l-009600}5etb7gc-cWz~J00030{}O3# -W^7?}X>V>pY;13LVQyn(00030{|j|+WMOn=QfX&sbN~PV0RR950RsdH1P4WKXL4b -7WdQ&I3T19*a$$C9ZfA1<0RRC20SIt%Wp-(Ab#nmZe?--0RR601OWmE2muRXWo~6=X=7<&a(M+wb8~fN0R -cvPtbsYP^%MO!vmSIsorVgs_HZ-Wn$&XU+C3lhihBYQZe@2tbaY{3Xl-R~bX0k8W -pe=!VRUq1V`yz4C0SaMrb7gc-cWz~J0096 -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 +pl009JZaAjiwdo{;!5%AB2ryL|5QOEU@L
`e=X=tFJga6(ksk0RRPbWpZtE0l +ScLtqc{eMJ(4gWV_Np3LyfP%1tSiV0+}ql(NsqECB!pbZ={AZgT-^=iE6uw#HjX< +ds6r9f~K)1%&l2niAd>i2;|o>Wkn20RswQb8}^MPj_x*as?Q0?aSgQ=Omp&uURQ&=-B|zt0TO9$W^7?}X>V>pY;13LVQyn(1r!Xk9aHqZo=6E +Bn^k>+112vb!fdCpXogaPTR)1jIspIy3w3a0VRU6uX=iA30RaF20003-d#r&uvGo +)EH?tmeMV*EUvi5K@+M3jI=Gr|U^NM=}4`Fn4VPj}*Wo~p-d2nTO009601aoj@V* +vmG00neqa&2<~00967bZ={AZgT(t|NjFDVRLh3bWe9~WpV%j|NjzcZf0y@bZKvHL +2PVqcVTX0WdH#G{|j|+WMOn=QfX&sbN~PW000C50|W^K2W4(&a$$C5009623T19* +a$$C9ZfA1=009623So0|Wpqz>Ze?--0RR613So0|Wpqz>Ze?--0RR601OWmE2muO +Vb8}^MPj_x*as_E~b9H3^0RcvPtbsYP^%MO!vmSIsorVgs_HZ-Wn$&XU+C3lhihB +YNVRUq1V`yzMk0VRUJ4Zb58pZ+BsCV` +TvV|NjCCVRLh3bWe9~WpV%j|NjzcZf0y@bZKvHL2PVqcVTX0WdH#G{{RI60|W*M0 +SaMrb7gc-cWz~J26AO?VQpmq0RRC6b8uy20RRC20Sk3-WMOn=QfX&sbO8VX009ei +aAaY0Wm0KpXmkMp0RR910Sk3-WMOn=QfX&sbO>~EVQzC~WpV%j0003BVRLh3bWe9 +~WpV)k|Nj9BVRLh3bWe9~WpV)k|Nj630RjgB3So0|Wpqz>Ze?-+0SI(*VQzC~WpW +4*W^!R;bZKvHPj+Q;W^8YF0W)-HWguZ~Z*^{TAa7bZBKDaB^>UX=G(&AaHV +TZ)PBAb0BGMc42I3WE5#`b9H8BX=7<+Zgf&*b7gXNWpe~Fa%FR6a&~1PX>%ZHZgX +{JW@%$-Wo~pJbZ;PIZ+2yJAarPDAZc@Rb!B8AVRLh3baNGHb8~fNMR;RnWn^%Xzy^d7vHg1k5H90tF4%ya@=dSJu9IL; +>*e1Zg(dl;zh@Se)i)R+C0ZKmX5VlzrFd~pb0000000000|NsC0000002eXhTbJc +$66>)iENYm6sSix4*DK{%n(91s0BM>Eq2nrdH*HiKem1Z9kJM|+>qga!fvX=Hcs(0$CayHccs-jKoQQjVZb1PlZhf>S{pf*v6^k7ERGVQpo$>&*X4 +pLsG_@JlgIw`LN6ikHPGT(>prbZ~Wa=xRXCTqXIv;)MTcr4cfxK`S9uy$)6q!N22#m0- +mN33F*@Q)6;zaCA6z1hGqe4n}Q9o)<@bBy=Qy_yc6@Jxi+hIw1E!bZZE6WpQ<7Ze +wKu8Eu6r$oASqO%+a!oQ%Dm4~>ZeT05|jA;vvYupWm8cWHEPWpi_#Rgb98cVaA;*G2x4+!V{2t}OehFqa$#d@Wpq+02w`({WpZhAYbp +eAY;|)h1!He*ZDA}0ZE0?Gb1eg8Z*(pNb8KOAXfFhMWpZyY18;6+F#~jWZ!!gRXm +Vv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO_7Z)|UFItg=SZ +D~VqY;SHm1Z-tay|%gb!BsOX>V>n0%3GO0YO0lLP7yU +LjgoY0YyatMn(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN-PEG+&PXSO+0Z~x_Qc?j^Qvp; +|0aaB2R#pL5R{>a90a;lAT3QNoaYAxoV{2t}Oj`+JVPk7kY+-X~Tnck>LULhaYh` +p&T?J!da%FU025fI+VRL9-2x4JlYjkO2YhVFkVF6-d0b^qUWMlzlWdUYp0cU3cXl +MaxX#r|#0c&dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc +>#KQ31dQXVPk7$bWD2$aA|O5dD^138|7M^`NNc{jXEg#>2x#JO!0is)`buE3*f$s=76b!Q+Q}n +%_NC_L8Regd3CNCnwY^SkkhEjrCKZ>$C1p%ec`!aPC2Yyc<$zXDlf<&Mmp^R+W^_ +bcVS2e5$Ue^>&uE;Xx#5aN6ME +dyk4bS?#RY+-X~F9dpJa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3 +HU)EKc4cli1!ZYxXmmIPZfS01IR#^HY;SHl33Fv_X+v*pZ*DsTY-MwEJOyQObzy8 +h2WN6+VRU73J_vDjWpi|CZ*D&VVRS$NK|ujRLIFcV0YpRrMMVKdMgd1h0Z2#zNl5 +`pN&!nt0ZdE*O-%t#P61C(0Z>o@QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES_ +*Set +H31dQXVPk7$bW(iWo&;K8lmIubiGld%-d|T7z@-B^7xU$igsTXqNw +w_EvvBzU=_gU2V|-Aisv2FNXqmBTmS3ZV(<42$azAB_>m7m0RR91000002mk;800 +0007;x>&>|_U&vjjD4#axh{fBik-QrJv$@`YYkgS*{X1p;LORzu`SjPv&tGy!?nC +Fm&fz)So=%sVIc1y9;Ha~&D$=A9F8Na0y;!RP5vuL@+rc3&yv5+tiFEA;1JTz43^ +1>s$}>vwm-`P?*~@NU^2lz=Zys}J#chLs9)jD7_HjCrNP622RPUKzbqehC`4fM6T +8=Og>`W>k?z4yB1H7|WDz5|hsu4xM=1##_akM=$^Wt^4(jv6#$*DE3PM1p!tKmiM +H2B(lTb1P)|lIgi#~)sbZ^DMLcPrTIA(QB)c0=A9F8Na0y;!RP5vuL@+rc3&yv5+ +tiFEA;1JTz3TlT%k!=UF9_Hk+b8VFt_j2&9|DqsTD5}A2(UF#~}_M8WYd0ghu-n0 +~c7r-=?6QSTTd@!LOiK=3qD6)+- +@LI6M@wtZb#W)+fmD4=t_vsg|0>!+0*ge47SbQGZx1W$+qKmuPd00Lhz0Rmq#0s> +z%0|H+(1Oi_*1p;3-1_EC<2LfL>2m)U@2?Jj-FbV@-F)<4RUokQa179&S4Fg{>G! +6q_F*OeZUokci179&W5d&W_I1&S2F*y?hUotQh179*R6$4)~G8O}0GBXzgUotcp1 +79*V83SK3HW~w8GB+CoUotox179*Z9Rpu8FdhS6Gcg|nUo$cw179;UAp>7CG$I3E +Gc_XvUo$o&179;YB?DhGI3@#MGdU*%UoTDFa_LGAaXKG&3s$Uo +XEdyUPHZB8SG&e5;UobF#}&UFfs#QH8C>-Uo|o`179^WH3MHYG&TcYH8n +Q_Uo|#3179^aIRjrcI64DgH90#2Up6p2179{VJp*4hGCl)eHZwmV<32;hs$B9ZCs +U(1!DsC|W1LOd&b_IRG-(&Q$wPGo0j1CTGIbLNeor6CU~-azM4%p_jBMKVnA!_hH +LM3-*Cng%Xz +y^d7vHg1k5H90tF4%ya@=dSK5TdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHa +&9IL;>*e1Zg(dl;zh@Se)i)R+C0ZKmX5VlzrFd~pbAOI`cT40dFsv{9#8C;FwXAg +MWQ~6)qw>p2k8{_|xs$&KM1ax_DWoI3^w`Ujm!)rYGQ#W1hvW_Q!3DRP(_-Z5Hfz +)k2p#)@MbYb$kB!Cv4eL6_}05B~d-+;N}5sv|)Tc&j_eb0gK2skXP*z*)x7;xa(t +X?xs7r@Kg%_4VyXL*^e2SZaPaSj6l0$(ry0$(u!EhQN_2LjonNK1L*iRZiWsLI#- +T`Rz)_(vVOZ==9G0~!HAK>P*4F;Q2|m?0aH@}R8#>~RRLC30asT6SXcpBSpiyFF8L$l9*O2>K7s +xkdlq2ufW04X5gsKGR|FM8lquF*1AqcwFaQEyF#!T!G6Di$GXnx&Gz0=)H3b4+HU +SC<9+KF)0IIG%_j!UoWECXLOH7x^QG&U{+UoaFauvSIWYrYH83&*Uo|l^179^VGy`8XGc^NWH8eH@Uo|y1179^ZI0IibH#q}eH8 +?s0Uo|;9179{UJOf`gF+BrcHZnc~Up6y8179{YKm%VkH9-SkHa0>7Up6;G179{cL +<3(oIYk3sH!wy6UpFyF179~XNCRItGf4wqH#ABEUpF;N179~bOaosxH%$XyH#klM +UpF~V17A2WPy=5$F;N3wI5JWLUpO;U17A2aR0Cf)HB|#&I5t)TUpO~c17A2eSOZ@ +;Iavc=IWSrSUpX;b17A5ZTmxS@GhG8;IW%4aUpX~j17A5dU;|${H(>)`IXGeiUpY +Br1Ya>QFk}Q@F)%S@1Ya>QGG+u{F)%Y{1Ya>QG-w20F)%f01Ya>QHfjW4F)%l41Y +a>QIBW!8F)%r81Ya>RFm422F)=Z31Ya>RGH?W6F)=f71Ya>RG;#!AF)=lB1Ya>RH +gp7EF)=rF1Ya>RICcbIF)=xJ1Ya>SFn9!CF)}fE1Ya>SGI|7GF)}lI1Ya>SG<*bK +F)}rM1Ya>SHhu(OF)}xQF^Db4RmNAXE51!L2&Jh($Ia%Vd3q&R*o>-d45AI6^+T%`=!lhL4=8Wvt +MLO&SL4F5+QK+|@Vtb`{7r%bH<5lLJ2lWMOk?Ed+XHa&IsLZ*FBV19W$9G6i&Ka% +E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IRQaI0YX9nLqh>XL +;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOaVm +mZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdNtY|6*(YoyWQ +NR!##&F>hhbX+H~JN$bujoP8PMf90dWT&-*fU69;}zAIV^Hl7d8_9-)kE+Vz;)3s +*I)2VU1UBC1SN8bU+c0as@C^S_@U>RJE +;b#wc+f(^p+_yS^yc^^Hk*Z@jbp)|Xd=5r!N1hi)eI#@wfA|Ar>^)1W_c|c=L3C> +c0VS*Txe^o?x}!PNUwajGr*TW+dUY6G&@nZ7)X6RBhCGVhi8wa+z)S}{A4N@-CC` +?p*Hvnlmj#YK|ujRLIFcV0YpRrMMVKdMgd1h0Z2#zNl5`pN&!nt0Z +dE*O-%t#P61C(0Z>o@QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES^;5U0b*hSV +`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7 +bOCjB0d{r)cXt7Jcma8N0eX5o(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A6z +gEd*tFV{9P=Xkl|`BL-w|Y;0k2Bm-e>a3%zBY;|)h1Y}`zXe|R|Z*(pMdS!BNFav +LHWibPEcW*KUbZByAWite3Z*_7s1ZHV=Wi0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQJ=g3U`2=>B +EOVuo?yi;C-IS|dY*_VV1lmKM$SN +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 -neTL3np|I=+ZSHXzGneTL3n -Ms8HM=uUmE|%CLL8DYpYB02F=7s{mYlP#7GIv0000000000|Nj6000000P!tef3_ -vEz605E^ed2G9JfL8W(`-mS*AGV-T+=kv1p$QK1HgS9M|-zzK&eO4ZXVcu#7?hD-%wz{v5BuelqlIu4J>MJmc=|AqG3>FHibBhS)2n10$(ry0$(u! -0$(x$0$(!&0$(%)0$()+0$(-;0$(==Rt=W-qYp6avD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szjcmMzZ000000RR60000 -0009GC;&{xzx0_jd|U73Fl>Tzs!yBgyX`N76h+VcaHPzXHHqMgjGn~{4aFkgwNr2 -8QlFe*-S#jFZ=4d$x=UULBe00000002M$00000003N}NmyOwH13hJ(~}Y-IohWMyM%0R>}aZggn^1#M|;Y-s}tWMyM%O=)awX#@&mWo~q7O=)a -wX$1vsX=8G41_@+kV`)ukV{&f?3S(t%bZJd#V{&f@1a4t&ZwUxwWn*bhVQy~<31e -k$bZJguZf^?&aA{+23`!Wo>kC4+&&tV`)ZZZF -FxC3S(t%bZJIqZFFxD1YvY^ZxUX4uugm60&Y|(x5I_8_YHG&eSDn7QdxK%T%aTLL -_P|4@X&qCv%6BHgWizA=u(cLP6P}D7lKnk9D*JpH;-esALmz2;DYO^VP;=uuCfU* -mJ%b7mQ5gJnWK?5WNdS!BNFavLHWibPEcW*KUbZByAWi -te3Z*_7s1ZHV=Wio@QBeU>QUOy_0aR20RaF62 -RsmO60a#c8Sy=&ET49DF(R;4&W&+>mb;*F>vukd;=m`ygb@x#_>`RmOO#=c2W?^h -|WdHWV`jeJjwMUMK4o#s5k`8&6NOa#Al&7Ou?eGj{rn -wSa8^mT+s=T=}Z?`J=~w8Q=GLzSfImTncuED0}GM^AOc@700Lhz0Rmq#0s>z%0|H -+(1Oi_*1p;3-1_EC<2LfL>2m)U@2?Jj-FbV@-F)<4RUokQa179&S4Fg{>G!6q_F* -OeZUokci179&W5d&W_I1&S2F*y?hUotQh179*R6$4)~G8O}0GBXzgUotcp179*V8 -3SK3HW~w8GB+CoUotox179*Z9Rpu8FdhS6Gcg}$9l5t>7x}|$Jo!^MUG1`tCx8jk -Vz2mWBj174Z9bs}0|az=aAk~nrNR=v8-iXLy;Ob)8n=L88@A^o`}1a0kwy-si75w -jbz*dRaAlA7FW{|j=KgAeU0YRoJc`J2tuHB<D~hf5N2{=V{~b6Zclb)a%OCAcL5G=Z*E0#bzy8)VQh6}a{>%$Zgyd8X -=G4xZ*OJ;6lrdAb!KL1V`*h>bW&w=WpZ|9a|9J>b8~fNMR;RnWn^ZboupV{~b6ZeeUxZ);_42NG^?Zbfcqa$$C1Vr*qpZ);_42o-5=c42I3WI=R -vVPj}*Wo~p-d2nS3YvHiR53+L&NY8&;umgSsZeeX@&yFS~2BW01rmM<0T4e&O_yb@@rrnLEI -_4cPn>=+Y2V`Y*VQFl0MYn(@h5^MUvO8NyVMYp&P~kr{`@Vw(r~naHiU0Ad1VbN)R#l@uiijKw6=@J1#M+yX<^{-2Gxp2N10< -_i1#?o%bldW=g<)D%W58v8gxp-1^NqNbaY{3Xl-R~baP&Luugm60&Y|(x5I_8_YH -G&eSDn7QdxK%T%aTLL_P>|Wpib6c4c#Jbj+U}49ir`|1I+*$<$TBtm<+yI?cCS&H -}f+m!nl~bj+U}49ir`|1I+*$<$TBtm<+yI?cCS&H}f+m!nk#0ssVVZ*FDSKfd5E4 -dt|K_z&S8_xo@QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES_W)yWMOk?UjboZ0b*hSV`BkiW -C3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB -0d{r)cXt7Jcma8N0eX6O@X&qCv%6BHgWizA=u(cLP6P}D7lKnk9D*JpH;-cg0exj -om+h7od^|i!6IVh}C$_-w2%^n!R2Osl8!b($Bn1Hu(i%G%h4}Sf8vn;89aSG|t4s -0*&BRFk%a^yrND0k=SFQ*2dy+cL#Wo+$K-npR=t1{a-C411d)vtBzL}*30T>#g&)D!afk;000UlyXM^SUjov4q|Oz%19p|PWMNpj>`|T8)P8i_RPzA<00000001Ze -00000004-LSY=~6@jI2b%^Ho0^4h`N6bqMfQQ6em^T$yfj)VmPT%k!=UF9_Hk+b8 -VFt_j2&9|DqsTD5}A2(UF#~}_MjCrNP622RPUKzbqehC`4fM6T8=Og>`W>k?z4yB -1H1p!tbDbQEcJ_6}ZZC#mv4(f4ib-Nnl68XW#Q`++blu(cMFW{|j=KgAeU0YRoJc -`J2tuHB<Vo@@aGb8l^B7`FxCUAgObcftAGG@kHo*&dXDFHNft@p*=o3UiEpkUL~>d4!J} -CQ~Zp&c>#RM4(exxbT6?CbPTvEuK5`1_A|kVQh6}m-W{MLar(^k|jH+P94s~ljFZ -W({ZtfbA~le%!q<(40B_0X>fEt4!A4 -H=_ds@ZT$lCN212eXGm<4cs7@Wu#FOK{KGSirhjWHCPRxjcYXt#Zp-EU>BEOVuo?yi;C-IS|dY*_VV1lmKM$uLi5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmW|NDqE_oP>KHujTH -+>EdJQM&>E4z*R)+SA#T-nt8weyrO*2^brT1EPanx(a*~2XpdO)&Y})mh+6z}TtO -s7#00gEkI7$;ygcv)Wrnz}*2I!1+#(*(7-8m6R>I9nO*Wm*Y1bSt1Z!iOIZe=k8b -a!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX19W9> -VFqPvWp-t5Vg__~Wo&k3V+eF;X>xRBWo~2$W^Z+JbY*33Wd~+yW^`p`Zf2-_#(89 -Cl -qRXQ4Sv!J@Q}vVyIk7MbQO{A@~BhGA0;y~>j;ruNrQ+G}B3D;5Te2#`BuaCwA}8z -xgK#1R8U -uLed2{4utBaoI&AY_{-wdcrn6b1qWba`-PXC1k>XBYXyYdrZ=H(l+rjwgT#(qgap -Y9rr))NMYY24rbxWpi{YTdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHc->&*X -4pLsG_@JlgIw`LN6ikHPGT(>prcO -v|SLIOFHl*bO8@iz5{HvW+(P+CKCWCQPujrqHqJ9LJRZTf#_Cp`j^aDNwdS!BNFa -vLHWibPEcW*KUbZByAWite3Z*_7s1ZHV=Wio@ -QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES^;5U0b*hSV`BkiWC3Mm0cK_aXJ-L -uXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma -8N0eX78D3P(oYQ^>D5Lu%jciN~UGoeFU(?$rh3j_QCeU(K63Iuv(a&IsLZ*FBV19 -W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IllZJ{ -AQ&Y{bW*VIunOL=kX9N3%>t4!A4H=_ds@ZTm=CotM$1O6c@UqIn-Z!6?La^OW}HT -7+ugYHG0&^E$N2Da%+!|DA9Vsm&hHC4WXN2M4aZ(WL^Hp>3BS~hw-BY0R-k)e=PQ -Rzk^xih<3e>RP8oyjwdxaIA{*p){f_{?!|i{n!oosZgNI|twmNZeC(lYZa*g7-2e -Q3Yy;-pLV?*e8zcXXXRJdMCHk1I^Yb;mDw5%F9Y9nz;zN&zQ>*hX> -M?JbaMx@kSBB1e&`i(d1FY^)J0gqR@5msD^SqOKF=c%C58uYb#!obbaS$Tt)Lc}< -}CbdN>_$qQw_b!lPsq8*H7AOVOuK}28#%6Z)0mzX>DaS+8q@+Aa1+e+@!-jhcW8% -o2S}z-#y5JARJB>wYeP1|BtS-iU6QaHX&1wj$zkYg`{Q63JyraSw4QMY+uI(0Y58 -px5Td+V+^*_{|Jk(H4u~TMq8eJM=D_eg5*ip@L|V|mt8Tf>F%PuK$$b1Yy -kvwZ*65?dg1dw#|?|5sFYX{B0l-EQ8lfgBo8^T+$b*T@L|V|mt8Tf>F%PuK$$b1YykvwZ*67#x?)i -N0wk?RUjjqltFC1|Q;Xc{fq+PZDvr5YFHm?aG -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 +3Iks;F$)7Vo@@aGb8l +^B={QBI!xpyI&}1#5hGWzC1E6+#KwWbwdp5p{*%72|qk=;7%h%D+p%U7S;b1RT)c +9`>#Kd;Rz-U=aO9W+B1pz8ss;p3n{|Sv13rH;f*u2mhk-*oqT{0nV)po0K>)oZ#` +!aPC2Yyc<$zXDlf<&Mmp^R+W^_bcVS2e5$Ue^EwrY<;26H$a1JDsMvd20sfjCIC< +F*)5i5lHF;n&a2u0}upyWpZyY18;6+F#~jWZ!!gRXmVv`GX!RDb#gQWW@&b1H3M^ +Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjOqGWM}19*F@#XVmjaq%az$04KD-Vbij2IPr +k>V1p#I<+GM-+ygbSEB1JD#cc?f7&CQhnYs6=vIZVN#w2!iat)Lc}<}CbdN>_$qQ +w_b!lPsq8*H7AOVOuK}28#%gJ7jQqgpV60Q!3=n#-@oxpi@}5@PW%Fv%B~$o;&jZ +0000000030|Ns900002CALmz2;DYO^VP;=uuCfU*mJ%b7mQ5gJnXL;*!b0Y*jvM@Io +jNC8Pn0ZK{%OG^PvOaVmmZEXQ=ZUJv^0d +Q~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdb^Nvtqc{eMJ(4gWV_Np3LyfP% +1tSiV0+}ql(NsqECvDubY*yS7|WDz5|hsu4xM=1##_akM=$^Wt^4(jv6#$*DE3PM +1#M+yX<^{-2Gxp2N10<_i1#?o%bldW=g<)D%W58v8gxp-1^T=wk+H^V#r5V8S)(9 +#+NdKlp+j5KMhLSD1N;Gfl|=&z1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4 +a8c4ajKb7^=s1#@L~Wo|bGWoc(MgXzWg5iW~CYZWKwE66Nf4wB|Ymbj8( +R#s`$Q_Oip_^hvoaWGEUH-@Ecs#X-@uLL+1m;+OEcST6gIVN=cD;^N?KWk +FK+d0H97bAybczVb@xPq-Dzr4oJgUK7OifU&jRjKPz&##IG7-47St%2#c>Z5R>jk +Tb_MKDq#SE=+Y1OfmAZf|a +7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDn72;qyPo4U43xlvo +iWKKZjzHLai|4>_>hC@$&bi;vhpzThtn<+N=058)p7{qSMOjh9_9t?BNfyg->Vo@ +@XB+I-xNV*n)QioaZe>iU0Ad1VbN)R#l@uiijKw6=@J1OfmAZf|a7*gwADFAe3iZ +1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDstrVo?49B&|nZ0z==cu4O$_i`?pg +fJlQYB-V!<2eshv2Gxp2N10<_i1#?o%bldW=g<)D%W58v8gxp-1^NU600eGtZe`d +%zThtn<+N=058)p7{qSMOjh9_9t?BNfyg->Vo@@aGb8l^B55 +vx6`RXPesE755vx6`RXPesE7>#WOli~|dBypgSg +z~Xa6?rHQsbOQ%PR|1b0$(ry0$(u!0$(x$0$(!&=xRXCTqXIv;)MTcr4cfxK`S9u +y$)6q!N22#m0-mN1_A_hcxhy#f%$n#j0HLDJN5-IKgM_J7b(p+0MPGk2Gl)y2(Rz={QBI!xpyI&}1#5hGW +zC1E6+#KwWbwdp5p{*%72|1p$Cpt_Spck~+-AHXqMG*(rkPLHAePS+Q+<+sNv^nW +gUD!|SRD`vDIxmf?C11De=><_B@7FdvLwh?!jlXKMox1bSt1Z!iOIZe=k8ba!tu1 +$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX19W9>K?Y@P +Wp-t5LI!kqWo&k3LkM(eX>xRBWo|?WW^Z+JbY*33MF(bSW^`p`ZbtIDB!Cv4eL6_ +}05B~d-+;N}5sv|)Tc&j_eb0gK2sj8FtG~n8CcwYZ>30fOpeZskt`?6&l-r#0 +;SW8UbNp0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z +~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX7-saSFvJu_4WvuML_T7r2AV9eq< +{=Bc@iMp6M)!KLg{JLUL{sJVeM_&R%->a@=JyVO^>VbergDWJ~ha3mB1pzDCT40d +Fsv{9#8C;FwXAgMWQ~6)qw>p2k8{_|xs$& -----END RGB INTERFACE----- diff --git a/tests/data/rgb25.rgba b/tests/data/rgb25.rgba index 30c54df9..bdb87d2a 100644 --- a/tests/data/rgb25.rgba +++ b/tests/data/rgb25.rgba @@ -1,206 +1,206 @@ -----BEGIN RGB INTERFACE----- -Id: H6vgLS-s9KTTfg5-bM6ikCjU-MxvvacJ9-4JL7EFK2-GyXZoJ -Mnemonic: parking-gamma-portal +Id: urn:lnp-bp:if:C1dJrM-wy3yFbad-yodkz7vs-EfnpoV3T-8HYpMsdS-z8PhjB#bridge-solar-sonic Name: RGB25 +Checksum-SHA256: 33e6cd27b69b105ef5abe0d34713a95458fc6bcb54bc265c0351136c38d81cac -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 -_rinzLQ&_n0fy*YdyZ9}hJM#tt1$JR1@dg40 -ZeeX{ZfD+nbv$d;XLR^-MKElnV?dV>&fpvE%8?-auJ4n-^@a&>a%E#_b7^mGT?51 -yjj4`)KRWY6py7|rEn>a@Jg9&ldILR+=b-a -AzAVr?5I2ooM1pz(R>>T+7c9tx2rI+rmmDt^st6pqa^<)IvL!Qac4*{MO%;vF$%% -pd^L}N?(ELd@=ehf0VuEF1Glu{~_8OH+<0$(ry0$(u!0$(x$0$(!&0$(%)0$()+0 -$(-;0$(==0$(@?0$(`^179&P3Iks;F$)7)C1bYo}%4{mR6MR9d -uY(Z^rb#8QX0t{(xc42I3WKeQ%Z)O7&X>N0MW@c$)X=QG7Qe|^xa&~2N1Qcm*b9H -8BX=7<+ZgfL$c4cy5XJrMWf5CnQ< -a&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmI -PZfS01IRkWMZea#xY-M(3Zej*>cV%pLWn&0*XlZhEWo2$;2xf0}a&%>7Ze<5%X=Z -d~Wo~Aue8zcXXXRJdMCHk1I^Yb;mDw5%F9Y9nz;zN&zQ>*g0cJAVWV`jeJjwMUMK -4o#s5k`8&6NOa#Al&7Ou?eGkFtWTpca|tEc|RrSB7Cz4ZX^fET;C?Pugo?TPqd@i -wKZAWN>+ej~gaaD&)?_rinzLQ&_n0fy*YdyZ9}hJM#bl0000000960|Nj60006ch -=T}bPg6pYaW?yEmvI#Jj5+jh7O(0~OC$;Cubrc2y1ax_DWoI3^w`Ujm!)rYGQ#W1 -hvW_Q!3DRP(_-Z5Hfz)k2p$24WXJvDADqE_oP>KHujTH+>EdJQM&>E4z*R)+SA#T --nt8weyx}f9ytDRNRXuBRJgK<-@=%0h4egv3RO*v!sLm$)h13mP*4F;Q2|m? -0aH@}R8#>~RRLC30asT6SXcpBSpiyF0byYQVqyVfV*zAj0cB+YW@Z6rX8~wv0cmL -gYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`=dV0 -Jlk+H^V#r5V8S)(9#+NdKlp+j5KMhLSD1N;Gfl|=&z1bSt1Z!iOIZe=k8ba!tu1$ -1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgXzWg5iW~CYZW -KwE66Nf4wB|Ymbj8(R#s`$Q_Oip_^hvoaWGEUH-@Ecs#X-@uLL+1m;+OEcST6gIVN -=cD;^N?KWkFK+d0H97bAybczVb@xPq-Dzr4oJgUK7OifU&jRjKPz&##IG7 --47St%2#c>Z5R>jkTb_MKDq#SE6bv$d;XLR^-MKElnV?dV>&fpvE%8?-auJ4n-^@aum26Sm-Yh`kPSF -Q*2dy+cL#Wo+$K-npR=t1{a-C411d)vtBzL}*2ZeeX@P!tef3_vEz605E^ed2G9J -fL8W(`-mS*AGV-T+=kv2V`Y*VQFl0MYn(@h5^MUvO8NyVMYp&P~kr{`@Vw(r~naH -S+XYD&<_B -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 +7&k#8vb98cVaA;*G2x4+!V{2t}OehFqa$#d +@Wpq+02w`({WpZhAYbpeAY;|)h1!He*ZDA}0ZE0?Gb1eg8Z*(pNb8KOAXfFhMWpZ +yY18;6+F#~jWZ!!gRXmVv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a +4_=WjO_7Z)|UFItg=SZD~VqY;SHm1Z-tay|%gb!BsOX +>V>n0%3GO0YO0lLP7yULjgoY0YyatMn(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN-PEG+& +PXSO+0Z~x_Qc?j^Qvp;|0aaB2R#pL5R{>a90a;lAT3QNoaYAxoV{2t}Oj`+JVPk7 +kY+-X~Tnck>LULhaYh`p&T?J!da%FU025fI+VRL9-2x4JlYjkO2YhVFkVF6-d0b^ +qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!ba +VlAbpdvE0e5!+cz6MMc>#KQ31dQXVPk7$bWD2$aA|O5dWMyoB7#gAD?R33Sqs-fEvKR~06Y}_x!isiZ7NV&0x-F}*2w)Y!=Lck|^or*l +)JV$o16%*=+hXtc4aj*yhWL>WK>+{&0000000;m80000002sFg;a$1wcXz@0+%%r +>ZrL7`fGmmQBm47aRFOswrHL +sR%am^tlg}6qop{{FTg974FaQ3n`}K{nn9PGH_DcZ;0agu`_oR6wvcum54rF6FkJ +ew+k!36?Lqfl$`8gF)R2-|n!`LRkztQP;3W%Qi%!_9htpQ3t>=3qD6)+-@LI6M@w +tZb#W)+fmD4=t_vsg|0>!+0*ge47SbQGZx1W$+qKmuPd00Lhz0Rmq#0s>z%0|H+( +1Oi_*1p;3-1_EC<2LfL>2m)U@2?Jj-FbV@-F)<4RUokQa179&S4Fg{>G!6q_F*Oe +ZUokci179&W5d&W_I1&S2F*y?hUotQh179*R6$4)~G8O}0GBXzgUotcp179*V83S +K3HW~w8GB+CoUotox179*Z9Rpu8FdhS6Gcg|nUo$cw179;UAp>7CG$I3EGc_XvUo +$o&179;YB?DhGI3@#MGdU*%UoTDFa_LGAaXKG&3s$UoXEdyUPH +ZB8SG&e5;UobF#}&UFfs#QH8C>-Uo|o`179^WH3MHYG&TcYH8nQ_Uo|#3 +179^aIRjrcI64DgH90#2Up6p2179{VJp*4hGCl)eHZwmV<32;hs$B9ZCsU(1!DsC +|W1LOd&b_IRG-(&Q$wPGo0j1CTGIbLNeor6CU~-azM4%p_jBMKVnA!_hHLM3-*Cn +g%Xzy^d7vHg +1k5H90tF4%ya@=dSK5TdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHa&9IL;>* +e1Zg(dl;zh@Se)i)R+C0ZKmX5VlzrFd~pbAOI|^*z*)x7;xa(tX?xs7r@Kg%_4Vy +XL*^e2SZaPaSj6l0$(ry0$(u!EhQN_2LjonNK1L*iRZiWsLI#-T`Rz)_(vVOZ==9 +G0~!HAK>P*4 +F;Q2|m?0aH@}R8#>~RRLC30asT6SXcpBSpiyFF8L$l9*O2>K7sxkdlq2ufW04X5g +sKGR|FM8lquF*1AqcwFaQEyF#!T!G6Di$GXnx&Gz0=)H3b4+HUSC<9+KF)0IIG%_j!UoWECXLOH7x^QG&U{+UoaFauvSIWYrYH8 +3&*Uo|l^179^VGy`8XGc^NWH8eH@Uo|y1179^ZI0IibH#q}eH8?s0Uo|;9179{UJ +Of`gF+BrcHZnc~Up6y8179{YKm%VkH9-SkHa0>7Up6;G179{cL<3(oIYk3sH!wy6 +UpFyF179~XNCRItGf4wqH#ABEUpF;N179~bOaosxH%$XyH#klMUpF~V17A2WPy=5 +$F;N3wI5JWLUpO;U17A2aR0Cf)HB|#&I5t)TUpO~c17A2eSOZ@;Iavc=IWSrSUpX +;b17A5ZTmxS@GhG8;IW%4aUpX~j17A5dU;|${H(>)`IXGeiUpYBr1Ya>QFk}Q@F) +%S@1Ya>QGG+u{F)%Y{1Ya>QG-w20F)%f01Ya>QHfjW4F)%l41Ya>QIBW!8F)%r81 +Ya>RFm422F)=Z31Ya>RGH?W6F)=f71Ya>RG;#!AF)=lB1Ya>RHgp7EF)=rF1Ya>R +ICcbIF)=xJ1Ya>SFn9!CF)}fE1Ya>SGI|7GF)}lI1Ya>SG<*bKF)}rM1Ya>SHhu( +OF)}xQF^Db4R +mNAXE51!L2&Jh($Ia%Vd3q&R*o>-d45AI6^+T%`=!lhL4=8WvtMLO&SL4F5+QK+| +@Vtb`{7r%bH<5lLJ2lWMOk?Ed+XHa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX +?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IRQaI0YX9nLqh>XL;*!b0Y*jvM@Ioj +NC8Pn0ZK{%OG^PvOaVmmZEXQ=ZUJv^0dQ +~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdNtY|6*(YoyWQNR!##&F>hhbX+H +~JN$bujoP8PMf90dWT&-*fU69;}zAIV^Hl7d8_9-)kE+Vz;)3s*I)2VU1Wbp)|Xd +=5r!N1hi)eI#@wfA|Ar>^)1W_c|c=L3C>c0VS*Txe^o?x}!PNUwajGr*TW+dUY6G +&@nZ7)X6RBhCGVhi8wa+z)S}{A4N@-CC`?p*Hvnlmj#YK|ujRLIFc +V0YpRrMMVKdMgd1h0Z2#zNl5`pN&!nt0ZdE*O-%t#P61C(0Z>o@QBeU>QUOy_0aR +20RaF62RsmO60a#c8Sy=&ES^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYi +j{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX5o(W0Hqt +(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A6zgEd*tFV{9P=Xkl|`BL-w|Y;0k2Bm-e> +a3%zBY;|)h1Y}`zXe|R|Z*(pMdS!BNFavLHWibPEcW*KUbZByAWite3Z*_7s1ZHV +=Wi0dH>saBu-}aRG920dsQ!ba +VlAbpdvE0e5!+cz6MMc>#KQJ=g3U`2=>BEOVuo?yi;C-IS|dY*_VV1lmKM$SNfJhg}MqW}N^000000RR90{{R3006!~o +x5Td+V+^*_{|Jk(H4u~TMq8eJM=D_eg5*ipR0ssVVZ*F +DSKfd5E4dt|K_z&S8_xV!Z000000RR600000008kVVUkpGd$`Y%tH+|x7jy#}XjniyMKGzRN8C= +se)CB>A-UGmW9Y=e&Z9u6<(rzBueZ)?$hH?$m+=@s9b91v*kl#>Xz_E$1J(MWfOb +sk*Zz%0|H+(1Oi_*1p;3-1_EC<2 +UZQ1_oR6wvcum54rF6FkJew+k!36?Lqfl$`8gF)R0#X2SaKRYGgJn%Xv1$>f_VvG +%;GuzyszPjx|liD+IRo}0000000960000000034VDbQEcJ_6}ZZC#mv4(f4ib-Nn +l68XW#Q`++blu!sf(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A6ze00000000 +0$0000000017p-EU>Md`c4>2IVr*pq1Y~7nX#oXeWo~q70 +tIbpY;0)*31nqsX-#QtY-t1vV`Xl1X-#QtY-t4rZE0h2Zw3iuWn*bgX=8G42MS|l +Zggo)X=8G42n23nZf^+)WMyM%PGN3u3JGInZggo*VQy~=1aN6%Zwv@zWn*bjX=85 +<31ek$bZJm&V{Z-xW@T-3Zx0D%Wn*bZWo>kC5DH^uZggozWo>kC5d>j$bZ-)16~N +~QWU2Iu=N;5Y%Jc(U|Lfag@AnPJc|wNxkqXL +;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOaVuJC38-{*D7fZ(%hZo23R4S;p`Q9JBQllDym0tIG +aY;$D*1axwBWdUQVBNXVdN64~--?N&Y5Ye2f)%xm$jy$=9osnnOG)f5jsaSFvJu_ +4WvuML_T7r2AV9eq<{=Bc@iMp6M)!KLg0000000030000000001HGTLOj^}IaE^& +&+tQ+KF11kKHr0Bgi&p*c*!qO^|yL}plU*p6J$36SYb7g#;qpQBTpwL(~+!(f@;t +~vt?k^>+DUoZdyUoim!Uorv$Uo!&&Uo->)Uo`~+Up58;UpEH=UpNQ?UpWZ_UokKW +179&Q3j<#F*6MVUokWe179&U4+CE@HV^|}F*gwdUokim179&Y69Zo|Fcbq +{GBFhcUotWl179*T7Xx21G#CS4GBp_kUotit179*X8v|c5I2;3CGC3UsUo$Ws179 +;SA7>r8w`Ujm!)rYGQ#W1hvW_Q!3DRP(_-Z5Hfz)k2p#}p4ba`-PjCrNP622RPUK +zbqehC`4fM6T8=Og>`W>k?z4yB1H2Xl2|ba`-PkM=L%t#9W3YJy!`Re3y$$a1YOD +VXIBla>6Wiaa}K2V-bqa&u*LkM=L%t#9W3YJy!`Re3y$$a1YODVXIBla>6Wiaa}K +a*n2om)>+B_9|IvuuF#~1iwYr-#C?=ekSLqB#`8-13v_MWpZyY18;6+F#~jWZ!!g +RXmVv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO&sK>P*4F;Q2|m?0aH@}R8 +#>~RRLC30asT6SXcpBSpiyF25fI+VRL9-0byYQVqyVfV*zAj0cB+YW@Z6rX8~wv0 +cmLgYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`= +dU|^`$8Ztw&xNNPBpp%5^^-&gv-bLEfDx;&I6D<27>5P~26Sm-Yh`kPSFQ*2dy+c +L#Wo+$K-npR=t1{a-C411d)vtBzL}*2ZeeX@P!tef3_vEz605E^ed2G9JfL8W(`- +mS*AGV-T+=kv2V`Y*VQFl0MYn(@h5^MUvO8NyVMYp&P~kr{`@Vw(r~naHmmQBm47aRFOswrHLs80ahL<&{xzx0_jd|U73Fl>Tzs!y +BgyX`N76h+VcaHP>=R6;H_`w{%V34N{X9NNO1a5C` +W!OKy;4cm3v~2hf;U4$>@L|V|mt8Tf>F%PuK$$b1YykvwZ*655w*}!{x$Ad#!TH= +Yp73tj9+ZGDO{)*_d4`n=bBunFJ7jQqgpV60Q!3=n#-@oxpi@}5@PW%Fv%B~$o;& +jf0tI$qY;|Rq_16YMt|~K4NmyOwH13hJBEOVuo?yi;C-IS| +dY*_VV1lmKM$#Kd;Rz-U=aO9W+B1pz8ss +;p3n{|Sv13rH;f*u2mhk-*oqT{0nV)po0K>)oZ#`!aPC2Yyc<$zXDlf<&Mmp^R+W +^_bcVS2e5$Ue^EwrY<;26H$a1JDsMvd20sfjCICqGWM}19*F@#XVmjaq%az$04KD-Vbij2IPrk>V1p#I<+GM-+ygbSEB1JD#c +c?f7&CQhnYs6=vIZVN#w2!iat)Lc}<}CbdN>_$qQw_b!lPsq8*H7AOVOuK}28#%g +J7jQqgpV60Q!3=n#-@oxpi@}5@PW%Fv%B~$o;&jZ0000000030|Ns900002CALmz +2;DYO^VP;=uuCfU*mJ%b7mQ5gJno@QBeU>QUOy +_0aR20RaF62RsmO60a#c8Sy=&ES^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cv +UiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX77ka +DdI6|O}r*EVFk(m)C!0+z~6DV1P*AOx^Y=h@bX)}iC9Czh5)>D@qdC-Hdlhx3aZBNPbr +@aHF*SPB$t~%I#Bytok0{Z4!I#J#jt!xkVnm$g&}3cy$LV-HwTJPe1px%+Sbr?`c +)x>LqGWM}19*F@#XVmjaq%az$04KD-Vbij2IPrk>V25D| +^b#!wFvydlq)qdy|ad~4%)6_*+!B*5MH!D!k%RbK|5G95OZ*_EVb#!yGf~}wyndU +6~Y)V&#VN(sg%9AXn_Sa9^Yhha}76yw5Y;R+0RB3HxHQF5&IUsJk-Q1+ZJ%=&s@| +&mHbl*M5f*>4D7PYw?%Kwk9vx)$qPBtM^kB(v2T7{%#%L)!i!&yFls%&4!1pz-Ra +<{~<8ep?nYaleMc%`0D|O6*W}ngzThtn<+N=058)p7{qSMOjh9_9 +t?BNfyg->Vo@@XB;P3|3ibhA7V_=B)IL^zRq`c?Q5bn!r9*-JyO2Y;E1OfmAZf|a +7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDr(6x(d~v9|n~k6i? +}jTEP{Y%SV22Phd_HeF7u&!-nKex(d~v9|n~k6i?}jTEP{Y%SV22Phd_HeF7u&!- +fR`wjbwLPT+#;sbOYcX0EacFqRS{kd{p#WSb|o=g4&w=cK}-LXGSotO=9i3s59+p +pb;}u}~FxC=RJ%W71B~0|WwJFaQEyF#!T!G6Di$GXv;qK+Rkw`Mu(V|7oQWGN(Z+ +AyvH&RuaL#S+XYD&<_B@7FdvLwh?!jlXKMox1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz +4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX19W9>K?Y@PWp-t5LI!kqWo&k3L +kM(eX>xRBWo|?WW^Z+JbY*33MF(bSW^`p`ZbtIDB!Cv4eL6_}05B~d-+;N}5sv|) +Tc&j_eb0gK2sj8FtG~n8CcwYZ>30fOpeZskt`?6&l-r#0;SW8UbNp0b*hSV`B +kiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bO +CjB0d{r)cXt7Jcma8N0eX7-saSFvJu_4WvuML_T7r2AV9eq<{=Bc@iMp6M)!KLg -----END RGB INTERFACE-----