@aztec/protocol-contracts 3.0.0-nightly.20251223 → 3.0.0-nightly.20251224
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/AuthRegistry.json +874 -874
- package/artifacts/ContractClassRegistry.json +2321 -2321
- package/artifacts/ContractInstanceRegistry.json +876 -876
- package/artifacts/FeeJuice.json +1717 -1717
- package/artifacts/MultiCallEntrypoint.json +864 -864
- package/artifacts/Router.json +14 -14
- package/dest/protocol_contract_data.js +11 -11
- package/package.json +4 -4
- package/src/protocol_contract_data.ts +11 -11
|
@@ -635,346 +635,439 @@
|
|
|
635
635
|
}
|
|
636
636
|
},
|
|
637
637
|
{
|
|
638
|
-
"name": "
|
|
639
|
-
"type": {
|
|
640
|
-
"kind": "integer",
|
|
641
|
-
"sign": "unsigned",
|
|
642
|
-
"width": 32
|
|
643
|
-
}
|
|
644
|
-
},
|
|
645
|
-
{
|
|
646
|
-
"name": "is_fee_payer",
|
|
647
|
-
"type": {
|
|
648
|
-
"kind": "boolean"
|
|
649
|
-
}
|
|
650
|
-
},
|
|
651
|
-
{
|
|
652
|
-
"name": "include_by_timestamp",
|
|
653
|
-
"type": {
|
|
654
|
-
"kind": "integer",
|
|
655
|
-
"sign": "unsigned",
|
|
656
|
-
"width": 64
|
|
657
|
-
}
|
|
658
|
-
},
|
|
659
|
-
{
|
|
660
|
-
"name": "note_hash_read_requests",
|
|
638
|
+
"name": "anchor_block_header",
|
|
661
639
|
"type": {
|
|
662
640
|
"kind": "struct",
|
|
663
|
-
"path": "aztec::protocol_types::
|
|
641
|
+
"path": "aztec::protocol_types::abis::block_header::BlockHeader",
|
|
664
642
|
"fields": [
|
|
665
643
|
{
|
|
666
|
-
"name": "
|
|
644
|
+
"name": "last_archive",
|
|
667
645
|
"type": {
|
|
668
|
-
"kind": "
|
|
669
|
-
"
|
|
670
|
-
"
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
"name": "inner",
|
|
676
|
-
"type": {
|
|
677
|
-
"kind": "struct",
|
|
678
|
-
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
679
|
-
"fields": [
|
|
680
|
-
{
|
|
681
|
-
"name": "inner",
|
|
682
|
-
"type": {
|
|
683
|
-
"kind": "field"
|
|
684
|
-
}
|
|
685
|
-
},
|
|
686
|
-
{
|
|
687
|
-
"name": "counter",
|
|
688
|
-
"type": {
|
|
689
|
-
"kind": "integer",
|
|
690
|
-
"sign": "unsigned",
|
|
691
|
-
"width": 32
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
]
|
|
695
|
-
}
|
|
696
|
-
},
|
|
697
|
-
{
|
|
698
|
-
"name": "contract_address",
|
|
699
|
-
"type": {
|
|
700
|
-
"kind": "struct",
|
|
701
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
702
|
-
"fields": [
|
|
703
|
-
{
|
|
704
|
-
"name": "inner",
|
|
705
|
-
"type": {
|
|
706
|
-
"kind": "field"
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
]
|
|
710
|
-
}
|
|
646
|
+
"kind": "struct",
|
|
647
|
+
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
648
|
+
"fields": [
|
|
649
|
+
{
|
|
650
|
+
"name": "root",
|
|
651
|
+
"type": {
|
|
652
|
+
"kind": "field"
|
|
711
653
|
}
|
|
712
|
-
|
|
713
|
-
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"name": "next_available_leaf_index",
|
|
657
|
+
"type": {
|
|
658
|
+
"kind": "field"
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
]
|
|
714
662
|
}
|
|
715
663
|
},
|
|
716
664
|
{
|
|
717
|
-
"name": "
|
|
718
|
-
"type": {
|
|
719
|
-
"kind": "integer",
|
|
720
|
-
"sign": "unsigned",
|
|
721
|
-
"width": 32
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
]
|
|
725
|
-
}
|
|
726
|
-
},
|
|
727
|
-
{
|
|
728
|
-
"name": "nullifier_read_requests",
|
|
729
|
-
"type": {
|
|
730
|
-
"kind": "struct",
|
|
731
|
-
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
732
|
-
"fields": [
|
|
733
|
-
{
|
|
734
|
-
"name": "array",
|
|
665
|
+
"name": "state",
|
|
735
666
|
"type": {
|
|
736
|
-
"kind": "
|
|
737
|
-
"
|
|
738
|
-
"
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
"
|
|
744
|
-
"
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
"name": "inner",
|
|
750
|
-
"type": {
|
|
751
|
-
"kind": "field"
|
|
752
|
-
}
|
|
753
|
-
},
|
|
754
|
-
{
|
|
755
|
-
"name": "counter",
|
|
756
|
-
"type": {
|
|
757
|
-
"kind": "integer",
|
|
758
|
-
"sign": "unsigned",
|
|
759
|
-
"width": 32
|
|
760
|
-
}
|
|
667
|
+
"kind": "struct",
|
|
668
|
+
"path": "aztec::protocol_types::abis::state_reference::StateReference",
|
|
669
|
+
"fields": [
|
|
670
|
+
{
|
|
671
|
+
"name": "l1_to_l2_message_tree",
|
|
672
|
+
"type": {
|
|
673
|
+
"kind": "struct",
|
|
674
|
+
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
675
|
+
"fields": [
|
|
676
|
+
{
|
|
677
|
+
"name": "root",
|
|
678
|
+
"type": {
|
|
679
|
+
"kind": "field"
|
|
761
680
|
}
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
"type": {
|
|
768
|
-
"kind": "struct",
|
|
769
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
770
|
-
"fields": [
|
|
771
|
-
{
|
|
772
|
-
"name": "inner",
|
|
773
|
-
"type": {
|
|
774
|
-
"kind": "field"
|
|
775
|
-
}
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"name": "next_available_leaf_index",
|
|
684
|
+
"type": {
|
|
685
|
+
"kind": "field"
|
|
776
686
|
}
|
|
777
|
-
|
|
778
|
-
|
|
687
|
+
}
|
|
688
|
+
]
|
|
779
689
|
}
|
|
780
|
-
|
|
781
|
-
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"name": "partial",
|
|
693
|
+
"type": {
|
|
694
|
+
"kind": "struct",
|
|
695
|
+
"path": "aztec::protocol_types::abis::partial_state_reference::PartialStateReference",
|
|
696
|
+
"fields": [
|
|
697
|
+
{
|
|
698
|
+
"name": "note_hash_tree",
|
|
699
|
+
"type": {
|
|
700
|
+
"kind": "struct",
|
|
701
|
+
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
702
|
+
"fields": [
|
|
703
|
+
{
|
|
704
|
+
"name": "root",
|
|
705
|
+
"type": {
|
|
706
|
+
"kind": "field"
|
|
707
|
+
}
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
"name": "next_available_leaf_index",
|
|
711
|
+
"type": {
|
|
712
|
+
"kind": "field"
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
]
|
|
716
|
+
}
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"name": "nullifier_tree",
|
|
720
|
+
"type": {
|
|
721
|
+
"kind": "struct",
|
|
722
|
+
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
723
|
+
"fields": [
|
|
724
|
+
{
|
|
725
|
+
"name": "root",
|
|
726
|
+
"type": {
|
|
727
|
+
"kind": "field"
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
"name": "next_available_leaf_index",
|
|
732
|
+
"type": {
|
|
733
|
+
"kind": "field"
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
]
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"name": "public_data_tree",
|
|
741
|
+
"type": {
|
|
742
|
+
"kind": "struct",
|
|
743
|
+
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
744
|
+
"fields": [
|
|
745
|
+
{
|
|
746
|
+
"name": "root",
|
|
747
|
+
"type": {
|
|
748
|
+
"kind": "field"
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"name": "next_available_leaf_index",
|
|
753
|
+
"type": {
|
|
754
|
+
"kind": "field"
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
]
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
]
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
]
|
|
782
764
|
}
|
|
783
765
|
},
|
|
784
766
|
{
|
|
785
|
-
"name": "
|
|
767
|
+
"name": "sponge_blob_hash",
|
|
786
768
|
"type": {
|
|
787
|
-
"kind": "
|
|
788
|
-
"sign": "unsigned",
|
|
789
|
-
"width": 32
|
|
769
|
+
"kind": "field"
|
|
790
770
|
}
|
|
791
|
-
}
|
|
792
|
-
]
|
|
793
|
-
}
|
|
794
|
-
},
|
|
795
|
-
{
|
|
796
|
-
"name": "key_validation_requests_and_generators",
|
|
797
|
-
"type": {
|
|
798
|
-
"kind": "struct",
|
|
799
|
-
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
800
|
-
"fields": [
|
|
771
|
+
},
|
|
801
772
|
{
|
|
802
|
-
"name": "
|
|
773
|
+
"name": "global_variables",
|
|
803
774
|
"type": {
|
|
804
|
-
"kind": "
|
|
805
|
-
"
|
|
806
|
-
"
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
775
|
+
"kind": "struct",
|
|
776
|
+
"path": "aztec::protocol_types::abis::global_variables::GlobalVariables",
|
|
777
|
+
"fields": [
|
|
778
|
+
{
|
|
779
|
+
"name": "chain_id",
|
|
780
|
+
"type": {
|
|
781
|
+
"kind": "field"
|
|
782
|
+
}
|
|
783
|
+
},
|
|
784
|
+
{
|
|
785
|
+
"name": "version",
|
|
786
|
+
"type": {
|
|
787
|
+
"kind": "field"
|
|
788
|
+
}
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"name": "block_number",
|
|
792
|
+
"type": {
|
|
793
|
+
"kind": "integer",
|
|
794
|
+
"sign": "unsigned",
|
|
795
|
+
"width": 32
|
|
796
|
+
}
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"name": "slot_number",
|
|
800
|
+
"type": {
|
|
801
|
+
"kind": "field"
|
|
802
|
+
}
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
"name": "timestamp",
|
|
806
|
+
"type": {
|
|
807
|
+
"kind": "integer",
|
|
808
|
+
"sign": "unsigned",
|
|
809
|
+
"width": 64
|
|
810
|
+
}
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"name": "coinbase",
|
|
814
|
+
"type": {
|
|
815
|
+
"kind": "struct",
|
|
816
|
+
"path": "aztec::protocol_types::address::eth_address::EthAddress",
|
|
817
|
+
"fields": [
|
|
818
|
+
{
|
|
819
|
+
"name": "inner",
|
|
820
|
+
"type": {
|
|
821
|
+
"kind": "field"
|
|
848
822
|
}
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
},
|
|
852
|
-
{
|
|
853
|
-
"name": "sk_app_generator",
|
|
854
|
-
"type": {
|
|
855
|
-
"kind": "field"
|
|
856
|
-
}
|
|
823
|
+
}
|
|
824
|
+
]
|
|
857
825
|
}
|
|
858
|
-
|
|
859
|
-
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"name": "fee_recipient",
|
|
829
|
+
"type": {
|
|
830
|
+
"kind": "struct",
|
|
831
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
832
|
+
"fields": [
|
|
833
|
+
{
|
|
834
|
+
"name": "inner",
|
|
835
|
+
"type": {
|
|
836
|
+
"kind": "field"
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
]
|
|
840
|
+
}
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
"name": "gas_fees",
|
|
844
|
+
"type": {
|
|
845
|
+
"kind": "struct",
|
|
846
|
+
"path": "aztec::protocol_types::abis::gas_fees::GasFees",
|
|
847
|
+
"fields": [
|
|
848
|
+
{
|
|
849
|
+
"name": "fee_per_da_gas",
|
|
850
|
+
"type": {
|
|
851
|
+
"kind": "integer",
|
|
852
|
+
"sign": "unsigned",
|
|
853
|
+
"width": 128
|
|
854
|
+
}
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"name": "fee_per_l2_gas",
|
|
858
|
+
"type": {
|
|
859
|
+
"kind": "integer",
|
|
860
|
+
"sign": "unsigned",
|
|
861
|
+
"width": 128
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
]
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
]
|
|
860
868
|
}
|
|
861
869
|
},
|
|
862
870
|
{
|
|
863
|
-
"name": "
|
|
864
|
-
"type": {
|
|
865
|
-
"kind": "integer",
|
|
866
|
-
"sign": "unsigned",
|
|
867
|
-
"width": 32
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
]
|
|
871
|
-
}
|
|
872
|
-
},
|
|
873
|
-
{
|
|
874
|
-
"name": "note_hashes",
|
|
875
|
-
"type": {
|
|
876
|
-
"kind": "struct",
|
|
877
|
-
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
878
|
-
"fields": [
|
|
879
|
-
{
|
|
880
|
-
"name": "array",
|
|
871
|
+
"name": "total_fees",
|
|
881
872
|
"type": {
|
|
882
|
-
"kind": "
|
|
883
|
-
"length": 16,
|
|
884
|
-
"type": {
|
|
885
|
-
"kind": "struct",
|
|
886
|
-
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
887
|
-
"fields": [
|
|
888
|
-
{
|
|
889
|
-
"name": "inner",
|
|
890
|
-
"type": {
|
|
891
|
-
"kind": "field"
|
|
892
|
-
}
|
|
893
|
-
},
|
|
894
|
-
{
|
|
895
|
-
"name": "counter",
|
|
896
|
-
"type": {
|
|
897
|
-
"kind": "integer",
|
|
898
|
-
"sign": "unsigned",
|
|
899
|
-
"width": 32
|
|
900
|
-
}
|
|
901
|
-
}
|
|
902
|
-
]
|
|
903
|
-
}
|
|
873
|
+
"kind": "field"
|
|
904
874
|
}
|
|
905
875
|
},
|
|
906
876
|
{
|
|
907
|
-
"name": "
|
|
877
|
+
"name": "total_mana_used",
|
|
908
878
|
"type": {
|
|
909
|
-
"kind": "
|
|
910
|
-
"sign": "unsigned",
|
|
911
|
-
"width": 32
|
|
879
|
+
"kind": "field"
|
|
912
880
|
}
|
|
913
881
|
}
|
|
914
882
|
]
|
|
915
883
|
}
|
|
916
884
|
},
|
|
917
885
|
{
|
|
918
|
-
"name": "
|
|
886
|
+
"name": "tx_context",
|
|
919
887
|
"type": {
|
|
920
888
|
"kind": "struct",
|
|
921
|
-
"path": "aztec::protocol_types::
|
|
889
|
+
"path": "aztec::protocol_types::abis::transaction::tx_context::TxContext",
|
|
922
890
|
"fields": [
|
|
923
891
|
{
|
|
924
|
-
"name": "
|
|
892
|
+
"name": "chain_id",
|
|
925
893
|
"type": {
|
|
926
|
-
"kind": "
|
|
927
|
-
"length": 16,
|
|
928
|
-
"type": {
|
|
929
|
-
"kind": "struct",
|
|
930
|
-
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
931
|
-
"fields": [
|
|
932
|
-
{
|
|
933
|
-
"name": "inner",
|
|
934
|
-
"type": {
|
|
935
|
-
"kind": "struct",
|
|
936
|
-
"path": "aztec::protocol_types::abis::nullifier::Nullifier",
|
|
937
|
-
"fields": [
|
|
938
|
-
{
|
|
939
|
-
"name": "value",
|
|
940
|
-
"type": {
|
|
941
|
-
"kind": "field"
|
|
942
|
-
}
|
|
943
|
-
},
|
|
944
|
-
{
|
|
945
|
-
"name": "note_hash",
|
|
946
|
-
"type": {
|
|
947
|
-
"kind": "field"
|
|
948
|
-
}
|
|
949
|
-
}
|
|
950
|
-
]
|
|
951
|
-
}
|
|
952
|
-
},
|
|
953
|
-
{
|
|
954
|
-
"name": "counter",
|
|
955
|
-
"type": {
|
|
956
|
-
"kind": "integer",
|
|
957
|
-
"sign": "unsigned",
|
|
958
|
-
"width": 32
|
|
959
|
-
}
|
|
960
|
-
}
|
|
961
|
-
]
|
|
962
|
-
}
|
|
894
|
+
"kind": "field"
|
|
963
895
|
}
|
|
964
896
|
},
|
|
965
897
|
{
|
|
966
|
-
"name": "
|
|
898
|
+
"name": "version",
|
|
967
899
|
"type": {
|
|
968
|
-
"kind": "
|
|
969
|
-
"sign": "unsigned",
|
|
970
|
-
"width": 32
|
|
900
|
+
"kind": "field"
|
|
971
901
|
}
|
|
972
|
-
}
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
"name": "gas_settings",
|
|
905
|
+
"type": {
|
|
906
|
+
"kind": "struct",
|
|
907
|
+
"path": "aztec::protocol_types::abis::gas_settings::GasSettings",
|
|
908
|
+
"fields": [
|
|
909
|
+
{
|
|
910
|
+
"name": "gas_limits",
|
|
911
|
+
"type": {
|
|
912
|
+
"kind": "struct",
|
|
913
|
+
"path": "aztec::protocol_types::abis::gas::Gas",
|
|
914
|
+
"fields": [
|
|
915
|
+
{
|
|
916
|
+
"name": "da_gas",
|
|
917
|
+
"type": {
|
|
918
|
+
"kind": "integer",
|
|
919
|
+
"sign": "unsigned",
|
|
920
|
+
"width": 32
|
|
921
|
+
}
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"name": "l2_gas",
|
|
925
|
+
"type": {
|
|
926
|
+
"kind": "integer",
|
|
927
|
+
"sign": "unsigned",
|
|
928
|
+
"width": 32
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
]
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"name": "teardown_gas_limits",
|
|
936
|
+
"type": {
|
|
937
|
+
"kind": "struct",
|
|
938
|
+
"path": "aztec::protocol_types::abis::gas::Gas",
|
|
939
|
+
"fields": [
|
|
940
|
+
{
|
|
941
|
+
"name": "da_gas",
|
|
942
|
+
"type": {
|
|
943
|
+
"kind": "integer",
|
|
944
|
+
"sign": "unsigned",
|
|
945
|
+
"width": 32
|
|
946
|
+
}
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "l2_gas",
|
|
950
|
+
"type": {
|
|
951
|
+
"kind": "integer",
|
|
952
|
+
"sign": "unsigned",
|
|
953
|
+
"width": 32
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
]
|
|
957
|
+
}
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
"name": "max_fees_per_gas",
|
|
961
|
+
"type": {
|
|
962
|
+
"kind": "struct",
|
|
963
|
+
"path": "aztec::protocol_types::abis::gas_fees::GasFees",
|
|
964
|
+
"fields": [
|
|
965
|
+
{
|
|
966
|
+
"name": "fee_per_da_gas",
|
|
967
|
+
"type": {
|
|
968
|
+
"kind": "integer",
|
|
969
|
+
"sign": "unsigned",
|
|
970
|
+
"width": 128
|
|
971
|
+
}
|
|
972
|
+
},
|
|
973
|
+
{
|
|
974
|
+
"name": "fee_per_l2_gas",
|
|
975
|
+
"type": {
|
|
976
|
+
"kind": "integer",
|
|
977
|
+
"sign": "unsigned",
|
|
978
|
+
"width": 128
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
]
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
"name": "max_priority_fees_per_gas",
|
|
986
|
+
"type": {
|
|
987
|
+
"kind": "struct",
|
|
988
|
+
"path": "aztec::protocol_types::abis::gas_fees::GasFees",
|
|
989
|
+
"fields": [
|
|
990
|
+
{
|
|
991
|
+
"name": "fee_per_da_gas",
|
|
992
|
+
"type": {
|
|
993
|
+
"kind": "integer",
|
|
994
|
+
"sign": "unsigned",
|
|
995
|
+
"width": 128
|
|
996
|
+
}
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"name": "fee_per_l2_gas",
|
|
1000
|
+
"type": {
|
|
1001
|
+
"kind": "integer",
|
|
1002
|
+
"sign": "unsigned",
|
|
1003
|
+
"width": 128
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
]
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
]
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
]
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"name": "min_revertible_side_effect_counter",
|
|
1017
|
+
"type": {
|
|
1018
|
+
"kind": "integer",
|
|
1019
|
+
"sign": "unsigned",
|
|
1020
|
+
"width": 32
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
{
|
|
1024
|
+
"name": "is_fee_payer",
|
|
1025
|
+
"type": {
|
|
1026
|
+
"kind": "boolean"
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
"name": "include_by_timestamp",
|
|
1031
|
+
"type": {
|
|
1032
|
+
"kind": "integer",
|
|
1033
|
+
"sign": "unsigned",
|
|
1034
|
+
"width": 64
|
|
1035
|
+
}
|
|
1036
|
+
},
|
|
1037
|
+
{
|
|
1038
|
+
"name": "start_side_effect_counter",
|
|
1039
|
+
"type": {
|
|
1040
|
+
"kind": "integer",
|
|
1041
|
+
"sign": "unsigned",
|
|
1042
|
+
"width": 32
|
|
1043
|
+
}
|
|
1044
|
+
},
|
|
1045
|
+
{
|
|
1046
|
+
"name": "end_side_effect_counter",
|
|
1047
|
+
"type": {
|
|
1048
|
+
"kind": "integer",
|
|
1049
|
+
"sign": "unsigned",
|
|
1050
|
+
"width": 32
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"name": "expected_non_revertible_side_effect_counter",
|
|
1055
|
+
"type": {
|
|
1056
|
+
"kind": "integer",
|
|
1057
|
+
"sign": "unsigned",
|
|
1058
|
+
"width": 32
|
|
1059
|
+
}
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
"name": "expected_revertible_side_effect_counter",
|
|
1063
|
+
"type": {
|
|
1064
|
+
"kind": "integer",
|
|
1065
|
+
"sign": "unsigned",
|
|
1066
|
+
"width": 32
|
|
1067
|
+
}
|
|
1068
|
+
},
|
|
1069
|
+
{
|
|
1070
|
+
"name": "note_hash_read_requests",
|
|
978
1071
|
"type": {
|
|
979
1072
|
"kind": "struct",
|
|
980
1073
|
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
@@ -983,99 +1076,47 @@
|
|
|
983
1076
|
"name": "array",
|
|
984
1077
|
"type": {
|
|
985
1078
|
"kind": "array",
|
|
986
|
-
"length":
|
|
1079
|
+
"length": 16,
|
|
987
1080
|
"type": {
|
|
988
1081
|
"kind": "struct",
|
|
989
|
-
"path": "aztec::protocol_types::
|
|
1082
|
+
"path": "aztec::protocol_types::side_effect::scoped::Scoped",
|
|
990
1083
|
"fields": [
|
|
991
1084
|
{
|
|
992
|
-
"name": "
|
|
1085
|
+
"name": "inner",
|
|
993
1086
|
"type": {
|
|
994
1087
|
"kind": "struct",
|
|
995
|
-
"path": "aztec::protocol_types::
|
|
1088
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
996
1089
|
"fields": [
|
|
997
1090
|
{
|
|
998
|
-
"name": "
|
|
999
|
-
"type": {
|
|
1000
|
-
"kind": "struct",
|
|
1001
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1002
|
-
"fields": [
|
|
1003
|
-
{
|
|
1004
|
-
"name": "inner",
|
|
1005
|
-
"type": {
|
|
1006
|
-
"kind": "field"
|
|
1007
|
-
}
|
|
1008
|
-
}
|
|
1009
|
-
]
|
|
1010
|
-
}
|
|
1011
|
-
},
|
|
1012
|
-
{
|
|
1013
|
-
"name": "contract_address",
|
|
1014
|
-
"type": {
|
|
1015
|
-
"kind": "struct",
|
|
1016
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1017
|
-
"fields": [
|
|
1018
|
-
{
|
|
1019
|
-
"name": "inner",
|
|
1020
|
-
"type": {
|
|
1021
|
-
"kind": "field"
|
|
1022
|
-
}
|
|
1023
|
-
}
|
|
1024
|
-
]
|
|
1025
|
-
}
|
|
1026
|
-
},
|
|
1027
|
-
{
|
|
1028
|
-
"name": "function_selector",
|
|
1091
|
+
"name": "inner",
|
|
1029
1092
|
"type": {
|
|
1030
|
-
"kind": "
|
|
1031
|
-
"path": "aztec::protocol_types::abis::function_selector::FunctionSelector",
|
|
1032
|
-
"fields": [
|
|
1033
|
-
{
|
|
1034
|
-
"name": "inner",
|
|
1035
|
-
"type": {
|
|
1036
|
-
"kind": "integer",
|
|
1037
|
-
"sign": "unsigned",
|
|
1038
|
-
"width": 32
|
|
1039
|
-
}
|
|
1040
|
-
}
|
|
1041
|
-
]
|
|
1093
|
+
"kind": "field"
|
|
1042
1094
|
}
|
|
1043
1095
|
},
|
|
1044
1096
|
{
|
|
1045
|
-
"name": "
|
|
1097
|
+
"name": "counter",
|
|
1046
1098
|
"type": {
|
|
1047
|
-
"kind": "
|
|
1099
|
+
"kind": "integer",
|
|
1100
|
+
"sign": "unsigned",
|
|
1101
|
+
"width": 32
|
|
1048
1102
|
}
|
|
1049
1103
|
}
|
|
1050
1104
|
]
|
|
1051
1105
|
}
|
|
1052
1106
|
},
|
|
1053
1107
|
{
|
|
1054
|
-
"name": "
|
|
1055
|
-
"type": {
|
|
1056
|
-
"kind": "field"
|
|
1057
|
-
}
|
|
1058
|
-
},
|
|
1059
|
-
{
|
|
1060
|
-
"name": "returns_hash",
|
|
1061
|
-
"type": {
|
|
1062
|
-
"kind": "field"
|
|
1063
|
-
}
|
|
1064
|
-
},
|
|
1065
|
-
{
|
|
1066
|
-
"name": "start_side_effect_counter",
|
|
1108
|
+
"name": "contract_address",
|
|
1067
1109
|
"type": {
|
|
1068
|
-
"kind": "
|
|
1069
|
-
"
|
|
1070
|
-
"
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
"width": 32
|
|
1110
|
+
"kind": "struct",
|
|
1111
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1112
|
+
"fields": [
|
|
1113
|
+
{
|
|
1114
|
+
"name": "inner",
|
|
1115
|
+
"type": {
|
|
1116
|
+
"kind": "field"
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
]
|
|
1079
1120
|
}
|
|
1080
1121
|
}
|
|
1081
1122
|
]
|
|
@@ -1094,7 +1135,7 @@
|
|
|
1094
1135
|
}
|
|
1095
1136
|
},
|
|
1096
1137
|
{
|
|
1097
|
-
"name": "
|
|
1138
|
+
"name": "nullifier_read_requests",
|
|
1098
1139
|
"type": {
|
|
1099
1140
|
"kind": "struct",
|
|
1100
1141
|
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
@@ -1103,68 +1144,47 @@
|
|
|
1103
1144
|
"name": "array",
|
|
1104
1145
|
"type": {
|
|
1105
1146
|
"kind": "array",
|
|
1106
|
-
"length":
|
|
1147
|
+
"length": 16,
|
|
1107
1148
|
"type": {
|
|
1108
1149
|
"kind": "struct",
|
|
1109
|
-
"path": "aztec::protocol_types::side_effect::
|
|
1150
|
+
"path": "aztec::protocol_types::side_effect::scoped::Scoped",
|
|
1110
1151
|
"fields": [
|
|
1111
1152
|
{
|
|
1112
1153
|
"name": "inner",
|
|
1113
1154
|
"type": {
|
|
1114
1155
|
"kind": "struct",
|
|
1115
|
-
"path": "aztec::protocol_types::
|
|
1156
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
1116
1157
|
"fields": [
|
|
1117
1158
|
{
|
|
1118
|
-
"name": "
|
|
1119
|
-
"type": {
|
|
1120
|
-
"kind": "struct",
|
|
1121
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1122
|
-
"fields": [
|
|
1123
|
-
{
|
|
1124
|
-
"name": "inner",
|
|
1125
|
-
"type": {
|
|
1126
|
-
"kind": "field"
|
|
1127
|
-
}
|
|
1128
|
-
}
|
|
1129
|
-
]
|
|
1130
|
-
}
|
|
1131
|
-
},
|
|
1132
|
-
{
|
|
1133
|
-
"name": "contract_address",
|
|
1134
|
-
"type": {
|
|
1135
|
-
"kind": "struct",
|
|
1136
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1137
|
-
"fields": [
|
|
1138
|
-
{
|
|
1139
|
-
"name": "inner",
|
|
1140
|
-
"type": {
|
|
1141
|
-
"kind": "field"
|
|
1142
|
-
}
|
|
1143
|
-
}
|
|
1144
|
-
]
|
|
1145
|
-
}
|
|
1146
|
-
},
|
|
1147
|
-
{
|
|
1148
|
-
"name": "is_static_call",
|
|
1159
|
+
"name": "inner",
|
|
1149
1160
|
"type": {
|
|
1150
|
-
"kind": "
|
|
1161
|
+
"kind": "field"
|
|
1151
1162
|
}
|
|
1152
1163
|
},
|
|
1153
1164
|
{
|
|
1154
|
-
"name": "
|
|
1165
|
+
"name": "counter",
|
|
1155
1166
|
"type": {
|
|
1156
|
-
"kind": "
|
|
1167
|
+
"kind": "integer",
|
|
1168
|
+
"sign": "unsigned",
|
|
1169
|
+
"width": 32
|
|
1157
1170
|
}
|
|
1158
1171
|
}
|
|
1159
1172
|
]
|
|
1160
1173
|
}
|
|
1161
1174
|
},
|
|
1162
1175
|
{
|
|
1163
|
-
"name": "
|
|
1176
|
+
"name": "contract_address",
|
|
1164
1177
|
"type": {
|
|
1165
|
-
"kind": "
|
|
1166
|
-
"
|
|
1167
|
-
"
|
|
1178
|
+
"kind": "struct",
|
|
1179
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1180
|
+
"fields": [
|
|
1181
|
+
{
|
|
1182
|
+
"name": "inner",
|
|
1183
|
+
"type": {
|
|
1184
|
+
"kind": "field"
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
]
|
|
1168
1188
|
}
|
|
1169
1189
|
}
|
|
1170
1190
|
]
|
|
@@ -1183,58 +1203,7 @@
|
|
|
1183
1203
|
}
|
|
1184
1204
|
},
|
|
1185
1205
|
{
|
|
1186
|
-
"name": "
|
|
1187
|
-
"type": {
|
|
1188
|
-
"kind": "struct",
|
|
1189
|
-
"path": "aztec::protocol_types::abis::public_call_request::PublicCallRequest",
|
|
1190
|
-
"fields": [
|
|
1191
|
-
{
|
|
1192
|
-
"name": "msg_sender",
|
|
1193
|
-
"type": {
|
|
1194
|
-
"kind": "struct",
|
|
1195
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1196
|
-
"fields": [
|
|
1197
|
-
{
|
|
1198
|
-
"name": "inner",
|
|
1199
|
-
"type": {
|
|
1200
|
-
"kind": "field"
|
|
1201
|
-
}
|
|
1202
|
-
}
|
|
1203
|
-
]
|
|
1204
|
-
}
|
|
1205
|
-
},
|
|
1206
|
-
{
|
|
1207
|
-
"name": "contract_address",
|
|
1208
|
-
"type": {
|
|
1209
|
-
"kind": "struct",
|
|
1210
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1211
|
-
"fields": [
|
|
1212
|
-
{
|
|
1213
|
-
"name": "inner",
|
|
1214
|
-
"type": {
|
|
1215
|
-
"kind": "field"
|
|
1216
|
-
}
|
|
1217
|
-
}
|
|
1218
|
-
]
|
|
1219
|
-
}
|
|
1220
|
-
},
|
|
1221
|
-
{
|
|
1222
|
-
"name": "is_static_call",
|
|
1223
|
-
"type": {
|
|
1224
|
-
"kind": "boolean"
|
|
1225
|
-
}
|
|
1226
|
-
},
|
|
1227
|
-
{
|
|
1228
|
-
"name": "calldata_hash",
|
|
1229
|
-
"type": {
|
|
1230
|
-
"kind": "field"
|
|
1231
|
-
}
|
|
1232
|
-
}
|
|
1233
|
-
]
|
|
1234
|
-
}
|
|
1235
|
-
},
|
|
1236
|
-
{
|
|
1237
|
-
"name": "l2_to_l1_msgs",
|
|
1206
|
+
"name": "key_validation_requests_and_generators",
|
|
1238
1207
|
"type": {
|
|
1239
1208
|
"kind": "struct",
|
|
1240
1209
|
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
@@ -1243,34 +1212,46 @@
|
|
|
1243
1212
|
"name": "array",
|
|
1244
1213
|
"type": {
|
|
1245
1214
|
"kind": "array",
|
|
1246
|
-
"length":
|
|
1215
|
+
"length": 16,
|
|
1247
1216
|
"type": {
|
|
1248
1217
|
"kind": "struct",
|
|
1249
|
-
"path": "aztec::protocol_types::
|
|
1218
|
+
"path": "aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator",
|
|
1250
1219
|
"fields": [
|
|
1251
1220
|
{
|
|
1252
|
-
"name": "
|
|
1221
|
+
"name": "request",
|
|
1253
1222
|
"type": {
|
|
1254
1223
|
"kind": "struct",
|
|
1255
|
-
"path": "aztec::protocol_types::
|
|
1224
|
+
"path": "aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest",
|
|
1256
1225
|
"fields": [
|
|
1257
1226
|
{
|
|
1258
|
-
"name": "
|
|
1227
|
+
"name": "pk_m",
|
|
1259
1228
|
"type": {
|
|
1260
1229
|
"kind": "struct",
|
|
1261
|
-
"path": "
|
|
1230
|
+
"path": "std::embedded_curve_ops::EmbeddedCurvePoint",
|
|
1262
1231
|
"fields": [
|
|
1263
1232
|
{
|
|
1264
|
-
"name": "
|
|
1233
|
+
"name": "x",
|
|
1234
|
+
"type": {
|
|
1235
|
+
"kind": "field"
|
|
1236
|
+
}
|
|
1237
|
+
},
|
|
1238
|
+
{
|
|
1239
|
+
"name": "y",
|
|
1265
1240
|
"type": {
|
|
1266
1241
|
"kind": "field"
|
|
1267
1242
|
}
|
|
1243
|
+
},
|
|
1244
|
+
{
|
|
1245
|
+
"name": "is_infinite",
|
|
1246
|
+
"type": {
|
|
1247
|
+
"kind": "boolean"
|
|
1248
|
+
}
|
|
1268
1249
|
}
|
|
1269
1250
|
]
|
|
1270
1251
|
}
|
|
1271
1252
|
},
|
|
1272
1253
|
{
|
|
1273
|
-
"name": "
|
|
1254
|
+
"name": "sk_app",
|
|
1274
1255
|
"type": {
|
|
1275
1256
|
"kind": "field"
|
|
1276
1257
|
}
|
|
@@ -1279,11 +1260,9 @@
|
|
|
1279
1260
|
}
|
|
1280
1261
|
},
|
|
1281
1262
|
{
|
|
1282
|
-
"name": "
|
|
1263
|
+
"name": "sk_app_generator",
|
|
1283
1264
|
"type": {
|
|
1284
|
-
"kind": "
|
|
1285
|
-
"sign": "unsigned",
|
|
1286
|
-
"width": 32
|
|
1265
|
+
"kind": "field"
|
|
1287
1266
|
}
|
|
1288
1267
|
}
|
|
1289
1268
|
]
|
|
@@ -1302,7 +1281,7 @@
|
|
|
1302
1281
|
}
|
|
1303
1282
|
},
|
|
1304
1283
|
{
|
|
1305
|
-
"name": "
|
|
1284
|
+
"name": "private_call_requests",
|
|
1306
1285
|
"type": {
|
|
1307
1286
|
"kind": "struct",
|
|
1308
1287
|
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
@@ -1311,35 +1290,55 @@
|
|
|
1311
1290
|
"name": "array",
|
|
1312
1291
|
"type": {
|
|
1313
1292
|
"kind": "array",
|
|
1314
|
-
"length":
|
|
1293
|
+
"length": 8,
|
|
1315
1294
|
"type": {
|
|
1316
1295
|
"kind": "struct",
|
|
1317
|
-
"path": "aztec::protocol_types::
|
|
1296
|
+
"path": "aztec::protocol_types::abis::private_call_request::PrivateCallRequest",
|
|
1318
1297
|
"fields": [
|
|
1319
1298
|
{
|
|
1320
|
-
"name": "
|
|
1299
|
+
"name": "call_context",
|
|
1321
1300
|
"type": {
|
|
1322
1301
|
"kind": "struct",
|
|
1323
|
-
"path": "aztec::protocol_types::abis::
|
|
1302
|
+
"path": "aztec::protocol_types::abis::call_context::CallContext",
|
|
1324
1303
|
"fields": [
|
|
1325
1304
|
{
|
|
1326
|
-
"name": "
|
|
1305
|
+
"name": "msg_sender",
|
|
1327
1306
|
"type": {
|
|
1328
1307
|
"kind": "struct",
|
|
1329
|
-
"path": "aztec::protocol_types::
|
|
1308
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1330
1309
|
"fields": [
|
|
1331
1310
|
{
|
|
1332
|
-
"name": "
|
|
1311
|
+
"name": "inner",
|
|
1333
1312
|
"type": {
|
|
1334
|
-
"kind": "
|
|
1335
|
-
"length": 18,
|
|
1336
|
-
"type": {
|
|
1337
|
-
"kind": "field"
|
|
1338
|
-
}
|
|
1313
|
+
"kind": "field"
|
|
1339
1314
|
}
|
|
1340
|
-
}
|
|
1315
|
+
}
|
|
1316
|
+
]
|
|
1317
|
+
}
|
|
1318
|
+
},
|
|
1319
|
+
{
|
|
1320
|
+
"name": "contract_address",
|
|
1321
|
+
"type": {
|
|
1322
|
+
"kind": "struct",
|
|
1323
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1324
|
+
"fields": [
|
|
1341
1325
|
{
|
|
1342
|
-
"name": "
|
|
1326
|
+
"name": "inner",
|
|
1327
|
+
"type": {
|
|
1328
|
+
"kind": "field"
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
]
|
|
1332
|
+
}
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
"name": "function_selector",
|
|
1336
|
+
"type": {
|
|
1337
|
+
"kind": "struct",
|
|
1338
|
+
"path": "aztec::protocol_types::abis::function_selector::FunctionSelector",
|
|
1339
|
+
"fields": [
|
|
1340
|
+
{
|
|
1341
|
+
"name": "inner",
|
|
1343
1342
|
"type": {
|
|
1344
1343
|
"kind": "integer",
|
|
1345
1344
|
"sign": "unsigned",
|
|
@@ -1350,18 +1349,36 @@
|
|
|
1350
1349
|
}
|
|
1351
1350
|
},
|
|
1352
1351
|
{
|
|
1353
|
-
"name": "
|
|
1352
|
+
"name": "is_static_call",
|
|
1354
1353
|
"type": {
|
|
1355
|
-
"kind": "
|
|
1356
|
-
"sign": "unsigned",
|
|
1357
|
-
"width": 32
|
|
1354
|
+
"kind": "boolean"
|
|
1358
1355
|
}
|
|
1359
1356
|
}
|
|
1360
1357
|
]
|
|
1361
1358
|
}
|
|
1362
1359
|
},
|
|
1363
1360
|
{
|
|
1364
|
-
"name": "
|
|
1361
|
+
"name": "args_hash",
|
|
1362
|
+
"type": {
|
|
1363
|
+
"kind": "field"
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
"name": "returns_hash",
|
|
1368
|
+
"type": {
|
|
1369
|
+
"kind": "field"
|
|
1370
|
+
}
|
|
1371
|
+
},
|
|
1372
|
+
{
|
|
1373
|
+
"name": "start_side_effect_counter",
|
|
1374
|
+
"type": {
|
|
1375
|
+
"kind": "integer",
|
|
1376
|
+
"sign": "unsigned",
|
|
1377
|
+
"width": 32
|
|
1378
|
+
}
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
"name": "end_side_effect_counter",
|
|
1365
1382
|
"type": {
|
|
1366
1383
|
"kind": "integer",
|
|
1367
1384
|
"sign": "unsigned",
|
|
@@ -1384,7 +1401,7 @@
|
|
|
1384
1401
|
}
|
|
1385
1402
|
},
|
|
1386
1403
|
{
|
|
1387
|
-
"name": "
|
|
1404
|
+
"name": "public_call_requests",
|
|
1388
1405
|
"type": {
|
|
1389
1406
|
"kind": "struct",
|
|
1390
1407
|
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
@@ -1393,7 +1410,7 @@
|
|
|
1393
1410
|
"name": "array",
|
|
1394
1411
|
"type": {
|
|
1395
1412
|
"kind": "array",
|
|
1396
|
-
"length":
|
|
1413
|
+
"length": 32,
|
|
1397
1414
|
"type": {
|
|
1398
1415
|
"kind": "struct",
|
|
1399
1416
|
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
@@ -1402,20 +1419,48 @@
|
|
|
1402
1419
|
"name": "inner",
|
|
1403
1420
|
"type": {
|
|
1404
1421
|
"kind": "struct",
|
|
1405
|
-
"path": "aztec::protocol_types::abis::
|
|
1422
|
+
"path": "aztec::protocol_types::abis::public_call_request::PublicCallRequest",
|
|
1406
1423
|
"fields": [
|
|
1407
1424
|
{
|
|
1408
|
-
"name": "
|
|
1425
|
+
"name": "msg_sender",
|
|
1409
1426
|
"type": {
|
|
1410
|
-
"kind": "
|
|
1427
|
+
"kind": "struct",
|
|
1428
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1429
|
+
"fields": [
|
|
1430
|
+
{
|
|
1431
|
+
"name": "inner",
|
|
1432
|
+
"type": {
|
|
1433
|
+
"kind": "field"
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
]
|
|
1411
1437
|
}
|
|
1412
1438
|
},
|
|
1413
1439
|
{
|
|
1414
|
-
"name": "
|
|
1440
|
+
"name": "contract_address",
|
|
1415
1441
|
"type": {
|
|
1416
|
-
"kind": "
|
|
1417
|
-
"
|
|
1418
|
-
"
|
|
1442
|
+
"kind": "struct",
|
|
1443
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1444
|
+
"fields": [
|
|
1445
|
+
{
|
|
1446
|
+
"name": "inner",
|
|
1447
|
+
"type": {
|
|
1448
|
+
"kind": "field"
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
]
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"name": "is_static_call",
|
|
1456
|
+
"type": {
|
|
1457
|
+
"kind": "boolean"
|
|
1458
|
+
}
|
|
1459
|
+
},
|
|
1460
|
+
{
|
|
1461
|
+
"name": "calldata_hash",
|
|
1462
|
+
"type": {
|
|
1463
|
+
"kind": "field"
|
|
1419
1464
|
}
|
|
1420
1465
|
}
|
|
1421
1466
|
]
|
|
@@ -1445,57 +1490,19 @@
|
|
|
1445
1490
|
}
|
|
1446
1491
|
},
|
|
1447
1492
|
{
|
|
1448
|
-
"name": "
|
|
1449
|
-
"type": {
|
|
1450
|
-
"kind": "integer",
|
|
1451
|
-
"sign": "unsigned",
|
|
1452
|
-
"width": 32
|
|
1453
|
-
}
|
|
1454
|
-
},
|
|
1455
|
-
{
|
|
1456
|
-
"name": "end_side_effect_counter",
|
|
1457
|
-
"type": {
|
|
1458
|
-
"kind": "integer",
|
|
1459
|
-
"sign": "unsigned",
|
|
1460
|
-
"width": 32
|
|
1461
|
-
}
|
|
1462
|
-
},
|
|
1463
|
-
{
|
|
1464
|
-
"name": "expected_non_revertible_side_effect_counter",
|
|
1465
|
-
"type": {
|
|
1466
|
-
"kind": "integer",
|
|
1467
|
-
"sign": "unsigned",
|
|
1468
|
-
"width": 32
|
|
1469
|
-
}
|
|
1470
|
-
},
|
|
1471
|
-
{
|
|
1472
|
-
"name": "expected_revertible_side_effect_counter",
|
|
1473
|
-
"type": {
|
|
1474
|
-
"kind": "integer",
|
|
1475
|
-
"sign": "unsigned",
|
|
1476
|
-
"width": 32
|
|
1477
|
-
}
|
|
1478
|
-
},
|
|
1479
|
-
{
|
|
1480
|
-
"name": "anchor_block_header",
|
|
1493
|
+
"name": "public_teardown_call_request",
|
|
1481
1494
|
"type": {
|
|
1482
1495
|
"kind": "struct",
|
|
1483
|
-
"path": "aztec::protocol_types::abis::
|
|
1496
|
+
"path": "aztec::protocol_types::abis::public_call_request::PublicCallRequest",
|
|
1484
1497
|
"fields": [
|
|
1485
1498
|
{
|
|
1486
|
-
"name": "
|
|
1499
|
+
"name": "msg_sender",
|
|
1487
1500
|
"type": {
|
|
1488
1501
|
"kind": "struct",
|
|
1489
|
-
"path": "aztec::protocol_types::
|
|
1502
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1490
1503
|
"fields": [
|
|
1491
1504
|
{
|
|
1492
|
-
"name": "
|
|
1493
|
-
"type": {
|
|
1494
|
-
"kind": "field"
|
|
1495
|
-
}
|
|
1496
|
-
},
|
|
1497
|
-
{
|
|
1498
|
-
"name": "next_available_leaf_index",
|
|
1505
|
+
"name": "inner",
|
|
1499
1506
|
"type": {
|
|
1500
1507
|
"kind": "field"
|
|
1501
1508
|
}
|
|
@@ -1504,351 +1511,344 @@
|
|
|
1504
1511
|
}
|
|
1505
1512
|
},
|
|
1506
1513
|
{
|
|
1507
|
-
"name": "
|
|
1514
|
+
"name": "contract_address",
|
|
1508
1515
|
"type": {
|
|
1509
1516
|
"kind": "struct",
|
|
1510
|
-
"path": "aztec::protocol_types::
|
|
1517
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1511
1518
|
"fields": [
|
|
1512
1519
|
{
|
|
1513
|
-
"name": "
|
|
1514
|
-
"type": {
|
|
1515
|
-
"kind": "struct",
|
|
1516
|
-
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
1517
|
-
"fields": [
|
|
1518
|
-
{
|
|
1519
|
-
"name": "root",
|
|
1520
|
-
"type": {
|
|
1521
|
-
"kind": "field"
|
|
1522
|
-
}
|
|
1523
|
-
},
|
|
1524
|
-
{
|
|
1525
|
-
"name": "next_available_leaf_index",
|
|
1526
|
-
"type": {
|
|
1527
|
-
"kind": "field"
|
|
1528
|
-
}
|
|
1529
|
-
}
|
|
1530
|
-
]
|
|
1531
|
-
}
|
|
1532
|
-
},
|
|
1533
|
-
{
|
|
1534
|
-
"name": "partial",
|
|
1520
|
+
"name": "inner",
|
|
1535
1521
|
"type": {
|
|
1536
|
-
"kind": "
|
|
1537
|
-
"path": "aztec::protocol_types::abis::partial_state_reference::PartialStateReference",
|
|
1538
|
-
"fields": [
|
|
1539
|
-
{
|
|
1540
|
-
"name": "note_hash_tree",
|
|
1541
|
-
"type": {
|
|
1542
|
-
"kind": "struct",
|
|
1543
|
-
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
1544
|
-
"fields": [
|
|
1545
|
-
{
|
|
1546
|
-
"name": "root",
|
|
1547
|
-
"type": {
|
|
1548
|
-
"kind": "field"
|
|
1549
|
-
}
|
|
1550
|
-
},
|
|
1551
|
-
{
|
|
1552
|
-
"name": "next_available_leaf_index",
|
|
1553
|
-
"type": {
|
|
1554
|
-
"kind": "field"
|
|
1555
|
-
}
|
|
1556
|
-
}
|
|
1557
|
-
]
|
|
1558
|
-
}
|
|
1559
|
-
},
|
|
1560
|
-
{
|
|
1561
|
-
"name": "nullifier_tree",
|
|
1562
|
-
"type": {
|
|
1563
|
-
"kind": "struct",
|
|
1564
|
-
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
1565
|
-
"fields": [
|
|
1566
|
-
{
|
|
1567
|
-
"name": "root",
|
|
1568
|
-
"type": {
|
|
1569
|
-
"kind": "field"
|
|
1570
|
-
}
|
|
1571
|
-
},
|
|
1572
|
-
{
|
|
1573
|
-
"name": "next_available_leaf_index",
|
|
1574
|
-
"type": {
|
|
1575
|
-
"kind": "field"
|
|
1576
|
-
}
|
|
1577
|
-
}
|
|
1578
|
-
]
|
|
1579
|
-
}
|
|
1580
|
-
},
|
|
1581
|
-
{
|
|
1582
|
-
"name": "public_data_tree",
|
|
1583
|
-
"type": {
|
|
1584
|
-
"kind": "struct",
|
|
1585
|
-
"path": "aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
|
|
1586
|
-
"fields": [
|
|
1587
|
-
{
|
|
1588
|
-
"name": "root",
|
|
1589
|
-
"type": {
|
|
1590
|
-
"kind": "field"
|
|
1591
|
-
}
|
|
1592
|
-
},
|
|
1593
|
-
{
|
|
1594
|
-
"name": "next_available_leaf_index",
|
|
1595
|
-
"type": {
|
|
1596
|
-
"kind": "field"
|
|
1597
|
-
}
|
|
1598
|
-
}
|
|
1599
|
-
]
|
|
1600
|
-
}
|
|
1601
|
-
}
|
|
1602
|
-
]
|
|
1522
|
+
"kind": "field"
|
|
1603
1523
|
}
|
|
1604
1524
|
}
|
|
1605
1525
|
]
|
|
1606
1526
|
}
|
|
1607
1527
|
},
|
|
1608
1528
|
{
|
|
1609
|
-
"name": "
|
|
1529
|
+
"name": "is_static_call",
|
|
1610
1530
|
"type": {
|
|
1611
|
-
"kind": "
|
|
1531
|
+
"kind": "boolean"
|
|
1612
1532
|
}
|
|
1613
1533
|
},
|
|
1614
1534
|
{
|
|
1615
|
-
"name": "
|
|
1535
|
+
"name": "calldata_hash",
|
|
1616
1536
|
"type": {
|
|
1617
|
-
"kind": "
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
"width": 64
|
|
1652
|
-
}
|
|
1653
|
-
},
|
|
1654
|
-
{
|
|
1655
|
-
"name": "coinbase",
|
|
1656
|
-
"type": {
|
|
1657
|
-
"kind": "struct",
|
|
1658
|
-
"path": "aztec::protocol_types::address::eth_address::EthAddress",
|
|
1659
|
-
"fields": [
|
|
1660
|
-
{
|
|
1661
|
-
"name": "inner",
|
|
1662
|
-
"type": {
|
|
1663
|
-
"kind": "field"
|
|
1664
|
-
}
|
|
1665
|
-
}
|
|
1666
|
-
]
|
|
1537
|
+
"kind": "field"
|
|
1538
|
+
}
|
|
1539
|
+
}
|
|
1540
|
+
]
|
|
1541
|
+
}
|
|
1542
|
+
},
|
|
1543
|
+
{
|
|
1544
|
+
"name": "note_hashes",
|
|
1545
|
+
"type": {
|
|
1546
|
+
"kind": "struct",
|
|
1547
|
+
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
1548
|
+
"fields": [
|
|
1549
|
+
{
|
|
1550
|
+
"name": "array",
|
|
1551
|
+
"type": {
|
|
1552
|
+
"kind": "array",
|
|
1553
|
+
"length": 16,
|
|
1554
|
+
"type": {
|
|
1555
|
+
"kind": "struct",
|
|
1556
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
1557
|
+
"fields": [
|
|
1558
|
+
{
|
|
1559
|
+
"name": "inner",
|
|
1560
|
+
"type": {
|
|
1561
|
+
"kind": "field"
|
|
1562
|
+
}
|
|
1563
|
+
},
|
|
1564
|
+
{
|
|
1565
|
+
"name": "counter",
|
|
1566
|
+
"type": {
|
|
1567
|
+
"kind": "integer",
|
|
1568
|
+
"sign": "unsigned",
|
|
1569
|
+
"width": 32
|
|
1570
|
+
}
|
|
1667
1571
|
}
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1572
|
+
]
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
},
|
|
1576
|
+
{
|
|
1577
|
+
"name": "length",
|
|
1578
|
+
"type": {
|
|
1579
|
+
"kind": "integer",
|
|
1580
|
+
"sign": "unsigned",
|
|
1581
|
+
"width": 32
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
]
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"name": "nullifiers",
|
|
1589
|
+
"type": {
|
|
1590
|
+
"kind": "struct",
|
|
1591
|
+
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
1592
|
+
"fields": [
|
|
1593
|
+
{
|
|
1594
|
+
"name": "array",
|
|
1595
|
+
"type": {
|
|
1596
|
+
"kind": "array",
|
|
1597
|
+
"length": 16,
|
|
1598
|
+
"type": {
|
|
1599
|
+
"kind": "struct",
|
|
1600
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
1601
|
+
"fields": [
|
|
1602
|
+
{
|
|
1603
|
+
"name": "inner",
|
|
1604
|
+
"type": {
|
|
1605
|
+
"kind": "struct",
|
|
1606
|
+
"path": "aztec::protocol_types::abis::nullifier::Nullifier",
|
|
1607
|
+
"fields": [
|
|
1608
|
+
{
|
|
1609
|
+
"name": "value",
|
|
1610
|
+
"type": {
|
|
1611
|
+
"kind": "field"
|
|
1612
|
+
}
|
|
1613
|
+
},
|
|
1614
|
+
{
|
|
1615
|
+
"name": "note_hash",
|
|
1616
|
+
"type": {
|
|
1617
|
+
"kind": "field"
|
|
1618
|
+
}
|
|
1679
1619
|
}
|
|
1680
|
-
|
|
1681
|
-
|
|
1620
|
+
]
|
|
1621
|
+
}
|
|
1622
|
+
},
|
|
1623
|
+
{
|
|
1624
|
+
"name": "counter",
|
|
1625
|
+
"type": {
|
|
1626
|
+
"kind": "integer",
|
|
1627
|
+
"sign": "unsigned",
|
|
1628
|
+
"width": 32
|
|
1629
|
+
}
|
|
1682
1630
|
}
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1631
|
+
]
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
|
+
},
|
|
1635
|
+
{
|
|
1636
|
+
"name": "length",
|
|
1637
|
+
"type": {
|
|
1638
|
+
"kind": "integer",
|
|
1639
|
+
"sign": "unsigned",
|
|
1640
|
+
"width": 32
|
|
1641
|
+
}
|
|
1642
|
+
}
|
|
1643
|
+
]
|
|
1644
|
+
}
|
|
1645
|
+
},
|
|
1646
|
+
{
|
|
1647
|
+
"name": "l2_to_l1_msgs",
|
|
1648
|
+
"type": {
|
|
1649
|
+
"kind": "struct",
|
|
1650
|
+
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
1651
|
+
"fields": [
|
|
1652
|
+
{
|
|
1653
|
+
"name": "array",
|
|
1654
|
+
"type": {
|
|
1655
|
+
"kind": "array",
|
|
1656
|
+
"length": 8,
|
|
1657
|
+
"type": {
|
|
1658
|
+
"kind": "struct",
|
|
1659
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
1660
|
+
"fields": [
|
|
1661
|
+
{
|
|
1662
|
+
"name": "inner",
|
|
1663
|
+
"type": {
|
|
1664
|
+
"kind": "struct",
|
|
1665
|
+
"path": "aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message",
|
|
1666
|
+
"fields": [
|
|
1667
|
+
{
|
|
1668
|
+
"name": "recipient",
|
|
1669
|
+
"type": {
|
|
1670
|
+
"kind": "struct",
|
|
1671
|
+
"path": "aztec::protocol_types::address::eth_address::EthAddress",
|
|
1672
|
+
"fields": [
|
|
1673
|
+
{
|
|
1674
|
+
"name": "inner",
|
|
1675
|
+
"type": {
|
|
1676
|
+
"kind": "field"
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1679
|
+
]
|
|
1680
|
+
}
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
"name": "content",
|
|
1684
|
+
"type": {
|
|
1685
|
+
"kind": "field"
|
|
1686
|
+
}
|
|
1704
1687
|
}
|
|
1705
|
-
|
|
1706
|
-
|
|
1688
|
+
]
|
|
1689
|
+
}
|
|
1690
|
+
},
|
|
1691
|
+
{
|
|
1692
|
+
"name": "counter",
|
|
1693
|
+
"type": {
|
|
1694
|
+
"kind": "integer",
|
|
1695
|
+
"sign": "unsigned",
|
|
1696
|
+
"width": 32
|
|
1697
|
+
}
|
|
1707
1698
|
}
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
}
|
|
1711
|
-
},
|
|
1712
|
-
{
|
|
1713
|
-
"name": "total_fees",
|
|
1714
|
-
"type": {
|
|
1715
|
-
"kind": "field"
|
|
1699
|
+
]
|
|
1700
|
+
}
|
|
1716
1701
|
}
|
|
1717
1702
|
},
|
|
1718
1703
|
{
|
|
1719
|
-
"name": "
|
|
1704
|
+
"name": "length",
|
|
1720
1705
|
"type": {
|
|
1721
|
-
"kind": "
|
|
1706
|
+
"kind": "integer",
|
|
1707
|
+
"sign": "unsigned",
|
|
1708
|
+
"width": 32
|
|
1722
1709
|
}
|
|
1723
1710
|
}
|
|
1724
1711
|
]
|
|
1725
1712
|
}
|
|
1726
1713
|
},
|
|
1727
1714
|
{
|
|
1728
|
-
"name": "
|
|
1715
|
+
"name": "private_logs",
|
|
1729
1716
|
"type": {
|
|
1730
1717
|
"kind": "struct",
|
|
1731
|
-
"path": "aztec::protocol_types::
|
|
1718
|
+
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
1732
1719
|
"fields": [
|
|
1733
1720
|
{
|
|
1734
|
-
"name": "
|
|
1721
|
+
"name": "array",
|
|
1735
1722
|
"type": {
|
|
1736
|
-
"kind": "
|
|
1723
|
+
"kind": "array",
|
|
1724
|
+
"length": 16,
|
|
1725
|
+
"type": {
|
|
1726
|
+
"kind": "struct",
|
|
1727
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
1728
|
+
"fields": [
|
|
1729
|
+
{
|
|
1730
|
+
"name": "inner",
|
|
1731
|
+
"type": {
|
|
1732
|
+
"kind": "struct",
|
|
1733
|
+
"path": "aztec::protocol_types::abis::private_log::PrivateLogData",
|
|
1734
|
+
"fields": [
|
|
1735
|
+
{
|
|
1736
|
+
"name": "log",
|
|
1737
|
+
"type": {
|
|
1738
|
+
"kind": "struct",
|
|
1739
|
+
"path": "aztec::protocol_types::abis::log::Log",
|
|
1740
|
+
"fields": [
|
|
1741
|
+
{
|
|
1742
|
+
"name": "fields",
|
|
1743
|
+
"type": {
|
|
1744
|
+
"kind": "array",
|
|
1745
|
+
"length": 18,
|
|
1746
|
+
"type": {
|
|
1747
|
+
"kind": "field"
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
},
|
|
1751
|
+
{
|
|
1752
|
+
"name": "length",
|
|
1753
|
+
"type": {
|
|
1754
|
+
"kind": "integer",
|
|
1755
|
+
"sign": "unsigned",
|
|
1756
|
+
"width": 32
|
|
1757
|
+
}
|
|
1758
|
+
}
|
|
1759
|
+
]
|
|
1760
|
+
}
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
"name": "note_hash_counter",
|
|
1764
|
+
"type": {
|
|
1765
|
+
"kind": "integer",
|
|
1766
|
+
"sign": "unsigned",
|
|
1767
|
+
"width": 32
|
|
1768
|
+
}
|
|
1769
|
+
}
|
|
1770
|
+
]
|
|
1771
|
+
}
|
|
1772
|
+
},
|
|
1773
|
+
{
|
|
1774
|
+
"name": "counter",
|
|
1775
|
+
"type": {
|
|
1776
|
+
"kind": "integer",
|
|
1777
|
+
"sign": "unsigned",
|
|
1778
|
+
"width": 32
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1781
|
+
]
|
|
1782
|
+
}
|
|
1737
1783
|
}
|
|
1738
1784
|
},
|
|
1739
1785
|
{
|
|
1740
|
-
"name": "
|
|
1786
|
+
"name": "length",
|
|
1741
1787
|
"type": {
|
|
1742
|
-
"kind": "
|
|
1788
|
+
"kind": "integer",
|
|
1789
|
+
"sign": "unsigned",
|
|
1790
|
+
"width": 32
|
|
1743
1791
|
}
|
|
1744
|
-
}
|
|
1792
|
+
}
|
|
1793
|
+
]
|
|
1794
|
+
}
|
|
1795
|
+
},
|
|
1796
|
+
{
|
|
1797
|
+
"name": "contract_class_logs_hashes",
|
|
1798
|
+
"type": {
|
|
1799
|
+
"kind": "struct",
|
|
1800
|
+
"path": "aztec::protocol_types::utils::arrays::ClaimedLengthArray",
|
|
1801
|
+
"fields": [
|
|
1745
1802
|
{
|
|
1746
|
-
"name": "
|
|
1803
|
+
"name": "array",
|
|
1747
1804
|
"type": {
|
|
1748
|
-
"kind": "
|
|
1749
|
-
"
|
|
1750
|
-
"
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
"
|
|
1756
|
-
"
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
"
|
|
1762
|
-
"
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
"
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
]
|
|
1774
|
-
}
|
|
1775
|
-
},
|
|
1776
|
-
{
|
|
1777
|
-
"name": "teardown_gas_limits",
|
|
1778
|
-
"type": {
|
|
1779
|
-
"kind": "struct",
|
|
1780
|
-
"path": "aztec::protocol_types::abis::gas::Gas",
|
|
1781
|
-
"fields": [
|
|
1782
|
-
{
|
|
1783
|
-
"name": "da_gas",
|
|
1784
|
-
"type": {
|
|
1785
|
-
"kind": "integer",
|
|
1786
|
-
"sign": "unsigned",
|
|
1787
|
-
"width": 32
|
|
1788
|
-
}
|
|
1789
|
-
},
|
|
1790
|
-
{
|
|
1791
|
-
"name": "l2_gas",
|
|
1792
|
-
"type": {
|
|
1793
|
-
"kind": "integer",
|
|
1794
|
-
"sign": "unsigned",
|
|
1795
|
-
"width": 32
|
|
1796
|
-
}
|
|
1797
|
-
}
|
|
1798
|
-
]
|
|
1799
|
-
}
|
|
1800
|
-
},
|
|
1801
|
-
{
|
|
1802
|
-
"name": "max_fees_per_gas",
|
|
1803
|
-
"type": {
|
|
1804
|
-
"kind": "struct",
|
|
1805
|
-
"path": "aztec::protocol_types::abis::gas_fees::GasFees",
|
|
1806
|
-
"fields": [
|
|
1807
|
-
{
|
|
1808
|
-
"name": "fee_per_da_gas",
|
|
1809
|
-
"type": {
|
|
1810
|
-
"kind": "integer",
|
|
1811
|
-
"sign": "unsigned",
|
|
1812
|
-
"width": 128
|
|
1813
|
-
}
|
|
1814
|
-
},
|
|
1815
|
-
{
|
|
1816
|
-
"name": "fee_per_l2_gas",
|
|
1817
|
-
"type": {
|
|
1818
|
-
"kind": "integer",
|
|
1819
|
-
"sign": "unsigned",
|
|
1820
|
-
"width": 128
|
|
1821
|
-
}
|
|
1822
|
-
}
|
|
1823
|
-
]
|
|
1824
|
-
}
|
|
1825
|
-
},
|
|
1826
|
-
{
|
|
1827
|
-
"name": "max_priority_fees_per_gas",
|
|
1828
|
-
"type": {
|
|
1829
|
-
"kind": "struct",
|
|
1830
|
-
"path": "aztec::protocol_types::abis::gas_fees::GasFees",
|
|
1831
|
-
"fields": [
|
|
1832
|
-
{
|
|
1833
|
-
"name": "fee_per_da_gas",
|
|
1834
|
-
"type": {
|
|
1835
|
-
"kind": "integer",
|
|
1836
|
-
"sign": "unsigned",
|
|
1837
|
-
"width": 128
|
|
1838
|
-
}
|
|
1839
|
-
},
|
|
1840
|
-
{
|
|
1841
|
-
"name": "fee_per_l2_gas",
|
|
1842
|
-
"type": {
|
|
1843
|
-
"kind": "integer",
|
|
1844
|
-
"sign": "unsigned",
|
|
1845
|
-
"width": 128
|
|
1805
|
+
"kind": "array",
|
|
1806
|
+
"length": 1,
|
|
1807
|
+
"type": {
|
|
1808
|
+
"kind": "struct",
|
|
1809
|
+
"path": "aztec::protocol_types::side_effect::counted::Counted",
|
|
1810
|
+
"fields": [
|
|
1811
|
+
{
|
|
1812
|
+
"name": "inner",
|
|
1813
|
+
"type": {
|
|
1814
|
+
"kind": "struct",
|
|
1815
|
+
"path": "aztec::protocol_types::abis::log_hash::LogHash",
|
|
1816
|
+
"fields": [
|
|
1817
|
+
{
|
|
1818
|
+
"name": "value",
|
|
1819
|
+
"type": {
|
|
1820
|
+
"kind": "field"
|
|
1821
|
+
}
|
|
1822
|
+
},
|
|
1823
|
+
{
|
|
1824
|
+
"name": "length",
|
|
1825
|
+
"type": {
|
|
1826
|
+
"kind": "integer",
|
|
1827
|
+
"sign": "unsigned",
|
|
1828
|
+
"width": 32
|
|
1829
|
+
}
|
|
1846
1830
|
}
|
|
1847
|
-
|
|
1848
|
-
|
|
1831
|
+
]
|
|
1832
|
+
}
|
|
1833
|
+
},
|
|
1834
|
+
{
|
|
1835
|
+
"name": "counter",
|
|
1836
|
+
"type": {
|
|
1837
|
+
"kind": "integer",
|
|
1838
|
+
"sign": "unsigned",
|
|
1839
|
+
"width": 32
|
|
1840
|
+
}
|
|
1849
1841
|
}
|
|
1850
|
-
|
|
1851
|
-
|
|
1842
|
+
]
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
},
|
|
1846
|
+
{
|
|
1847
|
+
"name": "length",
|
|
1848
|
+
"type": {
|
|
1849
|
+
"kind": "integer",
|
|
1850
|
+
"sign": "unsigned",
|
|
1851
|
+
"width": 32
|
|
1852
1852
|
}
|
|
1853
1853
|
}
|
|
1854
1854
|
]
|
|
@@ -1877,9 +1877,9 @@
|
|
|
1877
1877
|
}
|
|
1878
1878
|
}
|
|
1879
1879
|
},
|
|
1880
|
-
"bytecode": "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",
|
|
1881
|
-
"debug_symbols": "rd3fjmVLeaX9e9nHHKyI98+cwa20Wha2sYWEwMK4pU8W9/5VZq73NwukKtG4T1ixN1SMrMz1VGUVYz7jv3/519/+83/9+z/97g//9sf//OXX/+u/f/nnP/3u97//3b//0+//+C+/+fPv/viHb//2v395ffzHyl9+ff7yq1/W5z+cX359f/uH/fEPO3759fp2zq+X+nrpr5fr6+X+evn2w/JXv8Tr62V9vXy7pL69xNdLfr18u+X69tJfL99uuf7yLW8+rH/6859++9uP7O8+zm8f/X/85k+//cOff/n1H/7r97//1S//5ze//6/P/9F//sdv/vD5+uff/Onbf/v61S+//cO/fnv9duG//e73v/04/eVXz49+/fiHdvb7B99r++Grz997wX3W+4Lz6h9esH98QXS9L4grXZCvv/4pxI8v2DkX7L5+eMHf9xHc8cMLfvI5OBHzOcj84eeg/6c/hZ98BHmd9wUd6/kIrvX3XrBea76O69XffSHvv/+dUFfOe6nj+WmslX91xfrpu2nPZzLyH/kgvn3S52uxrnquiLr/+oP4yfth7zV37H395I6fvCnzzvmK5F3P5zPO+sfu6J/cUf8Pfi79/+Bzev3kjlP33HGu9eOfy08+jt4vb/L44Q2vn2G25oPY2fHDd+j+6R2v546r3HH9zS946ydv8lfMT+R+fcd75N98GD95j15Xz4dx3at+fMdP3l9RA1uu5921q/76hvzZu+ued+iO1/7xHT95h67V82Gsddc/dke85uNYse8f3/GTd+jxa/C3t+o/dMN67f38GvqTn8n5GfOrnl83vvsd+fwjP5Gr/rEv67Xmu4J9xeuHd8RP3qDrup5fNM6P3xoR/9Mvyd95w08+Fz+74e/9okb/j7+oP/10nucdfvaPP50//ZXr+C6jvv8t/m9+9Yvzs89GIf7bp+M8742/+Wbn55dc18sl93ffNv7933bmud431Hefjfrr3wryZ5/QfV1+yXg9v6l9+736r674yVujnl+56tvb/fk1eMX/xYcRPp/7uzf5334YP7vi+f515XffxP/tFT95g17VMcR/O1f86CuS18++/+s9yH87f/c+/9tLfv6R+APF9e0byusfu+Ty3cZVZ60fXVI/+6b+u9+Won74PfVPvzJ9+8pc373N/2++uPflwzjrh1fUT96mfW2w9FXrh1/cn19Skc8l3/1C+LeX/OS36T7XfFn6nO++Kn//h3H3PZ+Pvq/X+Yd+Lv3tTTaXdO/6R97tf9+fuH76Lu3l63L1t+/Of/Rh9M/+/H7fz6f0VT/4lP70huNXoD69/qEb/q4va/1PfxY/f2v9PT+Ln/3Jc9/+9Bqvv/mzwf/+9o+/+Zff/emv/xbp4690Pv7U/PF3Oh/f0X/8pc7n6/1+PV+v+Xq/rvfrfr/G+zXfr/V+fd+X7/vyfV++76v3ffW+r9731fu+et9X7/vqfV+976v3ffW+r9/39fu+ft/X7/v6fV+/7+v3ff2+r9/39fu+633f9b7vet93ve+73vddH/d9I+Dq9+v1fr0//u7j2+v5er0//nbt2+f5Xu/Xb/flty/WHe/XfL/Wx/dX3177/Xq9X+/36/n4jfpXv5yPH//t3XI+/oLu268mJ9+v3358fbvn9Pv124+vbx/Pud+v5+t1vV5z+LipPg7xdeV65fyb+vpgv32X9PXRffuuZw73HM7XB7bWaw5rDnsOMYecQ82h5/DxgX6kr3sO75/q2t8u7M/DnkPMIedQc+iPP2R/HK453HM478PHX3V+HdYc9hxiDjmHmsPcHHNzzM0xN+fcnHNzzs05N+fcnHNzzs05N+fcnHNzzc01N9fcXHNzzc01N9fcXHNzzc01N/fc3HNzz809N/fc3HNzz809N/fc3HPzNTdfc/M1N19z8zU3X3PzNTdfc/M1N19z8z0333PzPTffc/M9N99z8z0333PzPTffc/OZm8/cfObmMzefufnMzWduPnPzmZvP++b9es1hzWHPIeaQc6g59ByuOdxzmJvX3Lzm5jU3r7l5zc1rbl5z85qb19y85uY9N++5ec/Ne27ec/Oem4fBPQzuYXAPg3sY3MPgHgb3MLiHwT0M7mFwD4N7GNzD4B4G9zC4h8E9DO5hcA+Dexjcw+AeBvcwuIfBPQzuYXAPg3sY3MPgHgb3MLiHwT0M7mFwD4N7GNzD4B4G9zC4h8E9DO5hcA+Dexjcw+AeBvcwuIfBPQzuYXAPg3sY3MPgHgb3MLiHwT0M7mFwD4N7GNzD4B4G9zC4h8E9DO5hcA+Dexjcw+AeBvcwuIfBPQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUMXsPgNQxew+A1DF7D4DUM3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DN7D4D0M3sPgPQzew+A9DJ5h8AyDZxg8w+AZBs8weIbBMwyeYfAMg2cYPMPgGQbPMHiGwTMMnmHwDINnGDzD4BkGzzB4hsEzDJ5h8AyDZxg8w+AZBs8weIbBMwyeYfAMg2cYPMPgGQbPMHiGwTMMnmHwDINnGDzD4BkGzzB4hsEzDJ5h8AyDZxg8w+AZBs8weIbBMwyeYfAMg+eTwfg4nPfhk8HPw5rDnkPMIedQc+g5XHOYm3tuvubma26+5uZrbr7m5mtuvubma26+5uZrbr7n5ntuvufme26+5+Z7br7n5ntuvufme24+c/OZm8/cfObmMzefufnMzWduPnPzed/87f+Rfzktp+0UTulUTu10Od1OMpaMJWPJWDKWjCVjyVgylowlY8vYMraMLWPL2DK2jC1jy9gyQkbICBkhI2SEjJARMkJGyEgZKSNlpIyUkTJSRspIGSmjZJSMklEySkbJKBklo2SUjJbRMlpGy2gZLaNltIyW0TIuGZeMS8Yl45JxybhkXDIuGZeMW8Yt45Zxy7hl3DJuGbeMW8Yt48g4Mo6MI+PIODKOjCPjyMD5wvnC+cL5wvnC+cL5wvnC+cL5wvnC+cL5wvnC+cL5wvnC+cL5wvnC+frg/KNztD4bOu/T/uodrc+Ozvv0kfF1Kqd2upxupzOnT86/Th8/j/o8badwSqdyaqfL6XY6c/rk/OskI2WkjJSRMlJGykgZKaNklIySUTJKRskoGSWjZJSMltEyWkbLaBkto2W0jJbRMi4Zl4xLxiXjknHJuGRcMi4Zl4xbxi3jlnHLuGXcMm4Zt4xbxi3jyDgyjowj48g4Mo6MI+PIOJPxVfj5Oi2n7RRO6VRO7XQ53U4ylowlY8lYMpaMJWPJWDKWjCVjy9gytowtY8vYMraMLWPL2DJCBs43zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J5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cL5wvnC+cL5wvnC+cL5wvnC+cL5wvnC+cM4KF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xw8dmH+3jSOz77cO/T5XQ7nfcp5qnziHnqPGKeOo+Yp84j5qnziHnqPGKeOo+Yp87jsw/3Pp05LRlLxpKxZCwZS8aSsWQsGUvGlrFlbBlbxpaxZWwZW8aWsWWEjJARMkJGyAgZISNkhIyQkTJSRspIGSkjZaSMlJEyUkbJKBklo2SUjJJRMkpGySgZLaNltIyW0TJaRs9797MP9z7J+OD8w1IQn32492k57S/nQHz24d6ndCqndrqcbqczp0+7xPk8Laf9ZS6Irxbc16mc2ulyup3eLYZ4piuf7cpnvPJZr3zmK5/9ymfA8lmwfCYsteBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLvLZm30GZ5/F2Wdy9rvNWRnP6uwzO/vszj7Ds5ZnteBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604EILLrTgQgsutOBCCy604KKehelnYvrZmH5Gpp+V6e9mpmU8Q9PP0vQzNY1zI5thZTPMbIadzTC0GZY2w9Rm2NoMY5thbTPMbYa9zTC4GRY3w+Rm2NwMo5thdTPMbobdzTC8GZY3w/Rm2N4M45thfTPMb4b9zTDAGRY4wwRn2OAMI5xhhTPMcIYdzjDEGZY4wxRn2OIMY5xhjTPMcYY9zjDIGRY5wyRn2OQMo5xhlTPMcoZdzjDMGZY5wzRn2OYM45xhnTPMc4Z9zjDQGRY6w0Rn2OgMI51hpTPMdIadzjDUGZY6w1Rn2OoMY51hrTPMdYa9zjDYGRY7w2Rn2OwMo51htTPMdobdzjDcGZY7w3Rn2O4M451hvTPMd4b9zjDgGRY8w4Rn2PAMI55hxTPMeEY/m/LPqPyzKv/Myj+78s+w/HfL8jKebflnXB7nJj3DpmcY9QyrnmHWM+x6hmHPsOwZpj3DtmcY9wzrnmHeM+x7hoHPsPAZJj7DxmcY+Qwrn2HmM+x8hqHPsPQZpj7D1mcY+wxrn2HuM+x9hsHPsPgZJj/D5mcY/Qyrn2H2M+x+huHPsPwZpj/D9mcY/wzrn2H+M+x/hgHQsAAaJkDDBmgYAQ0roGEGNOyAhiHQsAQapkDDFmgYAw1roGEONFjhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLvc8jZp7nkbNPU+j5p6nUXPP06i556nz3PPUee556jz3PHWee546z71lbBlbRsgIGSEjZISMkBEyQkbICBkpI2WkjJSRMlJGykgZKSNllIySUTJKRskoGSWjZJSMktEyWkbLaBkto2W0jJbRMlrGJeOSccm4ZFwyLhmXjEvGJeOSccu4Zdwybhm3jFvGLeOWccu4ZRwZR8aRcWQcGUfGkXFkHBnz1HnGPHWeMU+dZ8xT5xnz1HnGPHWeMU+dZ8xT5xnz1HnGPHWe8ZKxZCwZS8aSsWQsGUsGzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44/2rB7c/TctpfvoL8tMK9Tx8ZX6dyaqfL6XY6c/rk/Ov0brumbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGTduoaRs1baOmbdS0jZq2UdM2atpGzcZ547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+cXzi+cXzi/cH7h/ML5hfML5xfOL5xfOL9wfuH8wvmF8wvnF84vnF84v3B+4fzC+YXzC+cXzi+cXzi/cH7h/ML5hfML5xfOWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLj/7cB9PeudnH+59Kqd2upzuryfC88xT53nmqfM889R5nnnqPM88dZ5nnjrPM0+d52cf7n26nGS0jEvGJeOSccm4ZFwyLhmXjEvGJeOWccu4Zdwybhm3jFvGLeOWccs4Mo6MI+PIODKOjCPjyDgyzjujXmOXqNfYJeo1dol6jV2iXmOXqNfYJeo1dol6jV2iXmOXqNdLxpKxZCwZS8aSsWQsGUvGkrFkbBlbxpaxZez3e7c++3Dvk4wPzj8sBfXZh3ufzpw+OP9wDtRnH+592k7hlE7l1E6X0/3lK6jPPtzX6dMusT5PH+R9ncIpncqpnd4thtKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCK9uoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdRihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVri652nUuudp1LrnadS652nUuudp1LrnqfO656nzuuep87rnqfO656nzum8Zt4xbxi3jlnFkHBlHxpFxZBwZR8aRcWTMU+d15qnzOvPUeZ156rzOPHVeZ546rzNPndeZp87rzFPndeap8zovGUvGkrFkLBlLxpKxZCwZS8aSsWVsGVvGlrFlbBlbxpaxZWwZISNkhIyQETJCRsgIGSEjZKSMlJEyUkbKSBkpI2WkjJRRMkpGySgZJaNklIySUTJKRstoGS2jZbSMltEyWkbLaBmXjEvGJeOSccnA+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfkZzvs1nPdrOO/XcN6v4bxfw3m/hvN+Def9Gs77NZz36yVjyVgylowlY8lYMpaMJWPJWDK2jC1jy9gytowtY8vYMraMLSNkhIyQETJCRsgIGSHjswW3P09nTp8tuPw8LaePjK9TOKVTObXT5XQ7vduubRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2Uds2attGbduobRu1baO2bdS2jdq2UXvjfON843zjfOM8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcf/bhPp707s8+3PsUTulUTv31RHj3PHXePU+dd89T593z1Hn3PHXePU+dd89T5/3Zh3ufyknGlrFlbBkhI2SEjJARMkJGyAgZISNkpIyUkTJSRspIGSkjZaSMlFEySkbJKBklo2SUjJJRMkpGy2gZLaNltIyW0TJaRstoGZeMS8Yl45JxybhkXDIuGZeMS8Yt45Zxe+/e3rtfdom//OqX//ObP/3uN//8+9/+5y+//u9v//hv//WHf/nz7/74h/c//vn/+4/5b/75T7/7/e9/9+//9B9/+uO//PZf/+tPv/2n3//xXz7+u19eH//xAc3/Wv2rvf73t//x8q/2+tXuj3+1/atcv8pv/+ovf/nff/n/AQ==",
|
|
1882
|
-
"verification_key": "
|
|
1880
|
+
"bytecode": "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",
|
|
1881
|
+
"debug_symbols": "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YTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCGwRgGYxiMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYTCHwRwGcxjMYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCGwRoGaxisYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYbCHwR4GexjsYfAaBq9h8BoGr2HwGgavYfAaBq9h8BoGr2HwGgavYfAaBq9h8BoGr2HwGgavYfAaBq9h8BoGr2HwGgavYfAaBq9h8BoGr2HwGgavYfAaBq9h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OG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOP9saX08C74+a1rv05nTB+fv03La78cUP7ta71M6lVM7XU6305nTB+fv03KSUTJKRskoGSWjZJSMltEyWkbLaBkto2W0jJbRMi4Zl4xLxiXjknHJuGRcMi4Zl4xbxi3jlnHLuGXcMm4Zt4xbxi3jyDgyjowj48g4Mo6MI+PI8KTr5VHXz5bX+7SdwimdyqmdLqd57362vb5OS8bn46/5edpO4ZTv510vj8BenoH9bH29T7fTmdMH5+/Tctrvp2U/u1/vU74fnP0qfX2dLqfb6czpk+6v0/v/PV6qX0v3ayl/Le2vpf619L+WAtjSAFsqYEsHbCmBLS2wpQa29MCWItjSBFuqYEsXbCmDLW2wpQ629MGWQtjSCFsqYUsnbCmFLa2wpRa29MKWYtjSDFuqYUs3bCmHLe2wpR62rue52efB2efJ2efR2efZ2efh2efp2e8en5XxPEDrCVpVsaUrtpTFlrbYUhdb+mJLYWxpjC2VsaUztpTGltbYUhtbemNLcWxpji3VsaU7tpTHlvbYUh9b+mNLgWxpkC0VsqVDtpTIlhbZUiNbemRLkWxpki1VsqVLtpTJljbZUidb+mRLoWxplC2VsqVTtpTKllbZUitbemVLsWxpli3VsqVbtpTLlnbZUi9b+mVLwWxpmC0Vs6VjtpTMlpbZUjNbemZL0Wxpmi1Vs6VrtpTNlrbZUjdb+mZL4WxpnC2Vs6VztpTOltbZUjtbemdL8Wxpni3Vs6V7tpTPlvbZUj9b+mdLAW1poC0VtKWDtpTQlhbaUkNbemhLEW1poi1VtKWLtpTR1v08Kf88Kv88K/88LP88Lf88Lv88L/88MP/dE/MycK6YtjTTlmra0k1bymlLO22ppy39tKWgtjTUlora0lFbSmpLS22pqS09taWotjTVlqra0lVbympLW22pqy19taWwtjTWlsra0llbSmtLa22prS29taW4tjTXlura0l1bymtLe22pry39taXAtjTYlgrb0mFbSmxLi22psS09tqXItjTZlirb0mVbymxLm22psy19tqXQtjTalkrb0mlbSm1Lq22ptS29tqXYtjTblmrb0m1bB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfn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wvnC+cL5wvnC+cL5wvnC+cL5wjkrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCxWcf7uNJ7/jsw71Pl9PtdN6nmKfOI+ap84h56jxinjqPmKfOI+ap84h56jxinjqPzz7c+3TmtGQsGUvGkrFkLBlLxpKxZCwZW8aWsWVsGVvGlrFlbBlbxpYRMkJGyAgZISNkhIyQETJCRspIGSkjZaSMlJEyUkbKSBklo2SUjJJRMkpGySgZJaNktIyW0TJaRstoGT3v3c8+3Psk44PzD0tBfPbh3qfltL+cA/HZh3uf0qmc2ulyup3OnD7tEufztJz2l7kgvlpwX6dyaqfL6XZ6txjima58tiuf8cpnvfKZr3z2K58By2fB8pmw1IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuMhnb/YZnH0WZ5/J2e82Z2U8q7PP7OyzO/sMz1qe1YILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQgot6FqafielnY/oZmX5Wpr+bmZbxDE0/S9PP1DTOjWyGlc0wsxl2NsPQZljaDFObYWszjG2Gtc0wtxn2NsPgZljcDJObYXMzjG6G1c0wuxl2N8PwZljeDNObYXszjG+G9c0wvxn2N8MAZ1jgDBOcYYMzjHCGFc4wwxl2OMMQZ1jiDFOcYYszjHGGNc4wxxn2OMMgZ1jkDJOcYZMzjHKGVc4wyxl2OcMwZ1jmDNOcYZszjHOGdc4wzxn2OcNAZ1joDBOdYaMzjHSGlc4w0xl2OsNQZ1jqDFOdYaszjHWGtc4w1xn2OsNgZ1jsDJOdYbMzjHaG1c4w2xl2O8NwZ1juDNOdYbszjHeG9c4w3xn2O8OAZ1jwDBOeYcMzjHiGFc8w4xn9bMo/o/LPqvwzK//syj/D8t8ty8t4tuWfcXmcm/QMm55h1DOseoZZz7DrGYY9w7JnmPYM255h3DOse4Z5z7DvGQY+w8JnmPgMG59h5DOsfIaZz7DzGYY+w9JnmPoMW59h7DOsfYa5z7D3GQY/w+JnmPwMm59h9DOsfobZz7D7GYY/w/JnmP4M259h/DOsf4b5z7D/GQZAwwJomAANG6BhBDSsgIYZ0LADGoZAwxJomAINW6BhDDSsgYY50GCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghQtWuGCFC1a4YIULVrhghUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhkhUtWuGSFS1a4ZIVLVrhk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v54IzzNPneeZp87zzFPneeap8zzz1Hmeeeo8zzx1np99uPfpcpLRMi4Zl4xLxiXjknHJuGRcMi4Zl4xbxi3jlnHLuGXcMm4Zt4xbxi3jyDgyjowj48g4Mo6MI+PIOO+Meo1dol5jl6jX2CXqNXaJeo1dol5jl6jX2CXqNXaJeo1dol4vGUvGkrFkLBlLxpKxZCwZS8aSsWVsGVvGlrHf79367MO9TzI+OP+wFNRnH+59OnP64PzDOVCffbj3aTuFUzqVUztdTveXr6A++3Bfp0+7xPo8fZD3dQqndCqndnq3GEoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrrTgSguutOBKC6604EoLrmyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlHLNmrZRi3bqGUbtWyjlm3Uso1atlGLFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOGKFa5Y4YoVrljhihWuWOHqnqdR656nUeuep1HrnqdR656nUeuep87rnqfO656nzuuep87rnqfO675l3DJuGbeMW8aRcWQcGUfGkXFkHBlHxpExT53XmafO68xT53XmqfM689R5nXnqvM48dV5nnjqvM0+d15mnzuu8ZCwZS8aSsWQsGUvGkrFkLBlLxpaxZWwZW8aWsWVsGVvGlrFlhIyQETJCRsgIGSEjZISMkJEyUkbKSBkpI2WkjJSRMlJGySgZJaNklIySUTJKRskoGS2jZbSMltEyWkbLaBkto2VcMi4Zl4xLxiUD5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+cH5wfnB+dnOO/XcN6v4bxfw3m/hvN+Def9Gs77NZz3azjv13Der5eMJWPJWDKWjCVjyVgylowlY8nYMraMLWPL2DK2jC1jy9gytoyQETJCRsgIGSEjZISMzxbc/jydOX224PLztJw+Mr5O4ZRO5dROl9Pt9G67tm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRu2N843zjfON843zwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHDOCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xwzQrXrHDNCtescM0K16xw/dmH+3jSuz/7cO9TOKVTOfXXE+Hd89R59zx13j1PnXfPU+fd89R59zx13j1PnfdnH+59KicZW8aWsWWEjJARMkJGyAgZISNkhIyQkTJSRspIGSkjZaSMlJEyUkbJKBklo2SUjJJRMkpGySgZLaNltIyW0TJaRstoGS2jZVwyLhmXjEvGJeOSccm4ZFwyLhm3jFvG7b17e+9+2SX+8qtf/s9v/vS73/zz73/7n7/8+r+//eO//dcf/uXPv/vjH97/+Of/7z/mv/nnP/3u97//3b//03/86Y//8tt//a8//faffv/Hf/n47355ffzHBzT/a/Wv9vrf3/7Hy7/a61e7P/7V9q9y/Sq//au//OV//+X/Bw==",
|
|
1882
|
+
"verification_key": "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"
|
|
1883
1883
|
},
|
|
1884
1884
|
{
|
|
1885
1885
|
"name": "process_message",
|
|
@@ -2130,7 +2130,7 @@
|
|
|
2130
2130
|
}
|
|
2131
2131
|
},
|
|
2132
2132
|
"bytecode": "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",
|
|
2133
|
-
"debug_symbols": "tb3fruTIcW/9LnPtC0ZEZkakX+XgwJBt2RAgSIYsf8AHw+9+KoPMXNXd3rm5q/bcqJdmpmPxX/5IJqPI//7tX//4z//17//0p7/821//87d//D///ds//+1Pf/7zn/79n/7813/5w9//9Ne/PP7pf/92jP8Rrb/9o/3D48/22z/W8adff8b1Zz//tOP6U64/9frTrj/L9We9/rzq2VXPrnp21StXvXLVK1e9ctUrV71y1StXvXLVK1e9ctWrV7161atXvXrVq1e9etWrV7161atXvXrVa1e9dtVrV7121WtXvXbVa1e9dtVrV7121fOrnl/1/KrnVz2/6vlVz696ftXzq55f9eKqF1e9uOrFVS+uenHVi6tePOr5+DOuP/v5Zz+uPx/15BigE2zCo6SMY6U/akr+x22CT4gJ/QQ9jgmjcgzQCTahTKgT2gSfEBP6BXJMmJVlVpZRuQ8oE+qEUbkO8Akx4VFZB+gxQSboBJtQJtQJbYJPiAmzss3KNiuPgaRj+4yRdEKZUCe0CT4hJvQLxoA6QSbMymVWLrNymZXLrFxm5TIrl1m5zsp1Vq6zcp2V66xcZ+U6K9dZeQwxHbtgjLGEMchOkAk6wSaUCXVCm+ATZuU2K/us7LOyz8o+K/us7LOyz8o+K/us7LNyzMoxK8esHLNyzMoxK8esHLNyzMoxK/dZuc/KfVbus3Kflfus3GflPiv3Wblfle04JsgEnWATyoQ6oU3wCTFhVpZZWWZlmZVlVpZZWWZlmZXHGDQdEBP6BWMMniATdIJNKBPqhDZhVtZZWWflMQatDpAJOuEa3WZlQp3QJviEmHCNbivHBJmgE2blMiuXWXmMQWsDfEJM6BeMMXiCTNAJNqFMqBNm5Tor11l5jEEbu2CMwRNkwpWHNkZTeSS/jbFTxqYbY+eEMqFOaBN8QkzoF4yxc4JMmJVjVo5ZOWblmJVjVo5ZOWblPiv3WbnPyn1W7rNyn5X7rNxn5T4r96tyOY4JMkEn2IQyoU5oE3xCTJiVZVaWWVlmZZmVZVaWWVlmZZmVZVaWWVlnZZ2VdVbWWVln5TF2Sh3QJviEmNAvGGPnhFG5DdAJNqFMqBPaBJ8QE/oFY+ycMCuXWXmMneIDyoRROQa0CT4hJvQLxtg5QSaMiyUZYBPKhHG9ZAPaBJ8wLsHG8uQ14oC8SEyQCTrBJozKY5nzSjGhTfAJMaFfkJeLCTJBJ9iEWdln5bxoHCuYV40JcUFeJ5YBo04f8PhbbazyGF8t/5VPiAn9gjG+TpAJjzptHAljfJ1QJtQJbYJPiAn9hDrG1wkyQSfYhFG5DagTRuU+wCfEhH7BGF8nyIRHZT8G2IQyoU5oE3xCTOgXjPF1gkyYlXVWHuPLZUCdMCrrAJ8QE/oFY3z5WMExvk7QCTahTKgTRmUf4BNiQr9gjK8TZIJOsAllQp0wK5dZeYwvjwH9gjG+ThiVywCdYBNiwvhbY1+MkRJjlcdICRtQJtQJbYJPiAn9gjFSTpAJOmFW9lnZZ+UxQGIszxggJ/QLxknqBJkwCo4VHCepE8qEOqFN8Amj8ljTMYgSxiA6QSboBJtQJtQJbYJPmJX7VbmNQdSPATJBJzwqdxlQJtQJj8rdBjwq9zLgUbm3Af2CMYhOkAk6wSaMOmMxxpA5ISb0C8aQOUEusLzT1EG6KO81xyKNQ1qOOsgXxaI+aRzWF8mkmv9sLFmVRbrIFpVFdVFb5ItiUZ/UlqMtR1uOthxtOdpy5AXW8RhMzfPvxqDxd8dtdhtH7UVl0fi7MvbZiPiLfFEs6pPGUXxR1htbN/Lvjq0b+XfHskQs6pN6/t2xJXM24CRdZIvKorooHWPdck7gpHSMtcxZgUGe0wInZb0+aPxdPQb5ovy7ZdD4u/pYI88b/5NkkS4a9VQHlUV1UTpskC+KRcuhy6HLocuhtqhc29m1LmqLfFEsmvvI87gfe8atXnvG87gfe8HNF8Wifm1nL8ciWaSLbFFZVK/94aUt8rkXSixa+yjHTO6ZHB+5P+raRzk+cs/k+MitUdf2a2v7tbX9cnzkXmhrH7W1j3J85F5oax+1tY/acrTl8OXw5fC1j/IoHjdYnkfxSbool2BsgzyKT6qL2iJfFIv6RZFH8UmyaDhMBtmisqguaot80XCMm9TIoz0pj/aTZJEuskVlUV3UFvmi5ZDlyKPdbJAs0kXpKIPKorooHXWQL4pFfZKlow3KemNbWVlUF7VFWa8PGvXGrWjkCChjW+UIOEkW6aLhGPc3kSPgpLqoLRqOMtYjj/txvxF5/hj3GZHnjzKWIMdCHX8jzx8nlUV1UVvki2LRcIybicjxcdJwjMv3yPFxki0qi+qitigdMSgW9Uk5Pk6SRbrIFpVFdVFbtBy+HHmeGXcRkeeZk2TRcLSxt/Lcc1JZNBxtbI08H42bicjz0UmxqE/KkXySLErHOK5yJJ9UFtVFbZEvikX9op4j+SRZpItsUVlUF7VFvigWpeOxt3qO5JNkUe6PMsgWlUV1UVvki9IRg/qkHMknySJdZIvKolzmPigW9Uk5ak+SRbrIFpVFdVFbtBy2HLYcZTnKcpTlKMtRlqMsR1mOshxlOcpy1OWoy1GXoy5HXY66HHU56nLU5ajL0ZajLUdbjrYcbTnacrTlaMvRlqMthy+HL4cvhy+HL4cvhy+HL4cvhy9HLEcsRyxHLEcsRyxHLEcsRyxHLEdfjr4cfTn6cvTl6MvRl6MvR1+OPh1yHAcooIIGFrCCDXQwQGyCTbAJNsEm2ASbYBNsgk2wKTbFptgUm2JTbIpNsSk2xWbYDJthM2yGzbAZNsNm2AxbwZaJMKZPHqiggfUKsgc20MEA+8J6gAIqaGABsVVsFVvFVrE1bA1bw9awNWwNW8PWsDVsDZtjc2yOzbE5Nsfm2BybY3NsgS2wBbbAFtgCW2ALbIEtsHVsHVvH1rF1bB1bx9axdWx92eQ4QAEVNLCAFWyggwFiE2yCTbAJNsEm2ASbYBNsgk2xKTbFptgUm2JTbIpNsSk2w2bYDJthM2yGzbAZNsNm2Aq2gq1gK9gKNrJEyBIhS4QsEbJEyJJsP5Ex0SnZgTLRwGEbk7aSrSgTG5itFDUxwL4ws+RCARVMW08sYAUb6GCAfWFmyYUCKojNsTk2x+bYHJtjC2yBLbAFtsAW2AJbYMss8dxDmSUnZpZcKKCCBmaLiiRWsIHZqKKJAfaJZyPMhdn4km1Xx6pwtbqcGGBWGDv2ang5UcBsemmJBhawgmnzRAcD7AszCcZMtmSLi4yJZskml4kO5vY9/1pfmGP+QgEVNLCA2apzJDbQwQD7whzzFwqooIEFxFawFWwFW8FWseWY77mzcnT33Mc5ui9soIMB9oU5ui8UUEEDsTVsDVvD1rA1bI7NsTk2x+bYHJtjc2yOzbEFtsAW2AJbYAtsgS2wBbbA1rF1bB1bx9axdWwdW8fWsfVlyxabiQIqaGABK9hABwPEJtgEm2ATbIJNsAk2wSbYBJtiU2yKTbEpNsWm2BSbYlNshs2wGTbDZtgMm2EzbIbNsBVsBVvBVrAVbAVbwVawFWwFW8VWsVVsFRtZYmSJkSVGlhhZYmSJkSVGltiZJZZoYAEr2EAHA+wLzyw5UcC0tUQDC5i2kthABwPsC88sOVFABQ0sILbAdmZJJAbYF2Zr3ni2KNlgNFFBAwtYwQY6GGCfmC1HEwVUMG0tsc2FLGc+jFNoOfPhxFEh+3ezvWiigQWsYAPH8o4HVpKtRhP7wmyXvVBABQ0sYAUbiE2xZQPteFQm2YI0UcC0WaKBBUxbSWyggwGmLTd1tvRlR3O2Iankps4mvgsr2MBRV3PzZUOt5lpkS63m4mRTraYt22ovVNDAYdNcnGyvvbCBDqYtlze7azUXJ/trR8elZIeSWi5O9thaKrLL9sIKNtDBAPvC7Li1XIbsub3Q1uF5jvkTK8jx6w4GuEZhOcf8iQIqiC2wBbbAxpjPdie13GbZjHtijvkLc4Xyv80xf6GBBaxgAx0MsE/MNqiJAio4bOPRlmQ71MQKNtDBAIdtPPSSbI2aKKCCBhawgg10MEBsii3zoViiggamrSamrSU2MG2eGGDackNlPlwooIIGFrCCDXQwQGwFW8FWsBVsBVvBVrAVbAVbwVaxVWwVW8VWsVVsFVvFVrFVbA1bw9awNWwNW8PWsDVsDVvD5tgcm2NzbI4tm/fHI9oHNtDBANc5Nru8JgqooIEFrGAD1xk9e7weN4eJ6yydXV1acxRmPlzYQAcD7BOzw2titpJr4tq+7Vhr3I4A+8JzzJ+Y7emWqKCBBVx7swk2cTDAtTebHqCAupbhHPMnFrCCbS3D+YOaEwPExphvjPnGmG+M+caYb4z5ZuvYacaWNLaksSXPNv9chsKWLGxJxnxjzDfGfGPMN8Z8Y8w3xnyr7LdzzJ/Ilqxsycp+yzF/IVuSMd8Y840x3xjzjTHfGPONMd8Y862x3xpbsrElG1uysSVzzI9n2ZKtcBNzS9ZEAwtYwVy3XIYc8xcG2BfmmL9QQAUNTFsuZI75C/P64cS+RmGO+dHbINkwN1FBA9lDnT3U2UOdY71zrJ9JMNCPA1x7yA8FDSxgBRvoYIDreMi+Oh1t4pKNdRMLOOqOdg7J3rrH/FSigwH2hZkPFwqooIEFzKu2FJ+zByf2hefswYkCKmhgASvYQGyGzbAVbAVbwVawFWwFW8FWsBVsBVvFxpzj2aV3IbaKrWKr2Cq2iq1ia9gatoatYWvYGraGrWFr2Bo2x+bYHJtjc2yOzbE5Nsfm2AJbYAtsgS2wBbbAFtgCW2Dr2Dq2jq1j69g6to6tY+vY+rKdPYkXCqiggQWsYAMdDBCbYBNsgk2wCTbBJtgEm2ATbIpNsSk2xabYFJtiI0uCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEuCLAmyJMiSIEs6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSTZS6mhileyknGhgASvYQAcD7AvzDuVCbAVbwVawFWwFW8FWsBVsFVtmST40zu5KHR2wku2VEwtYwQY6GGDazndOHKCAaUtx3qFcWMC0tcQGOhhgPgUfl/lnv+WFAipoYAEr2EAHY2GmRnYDZJeltvOfGljACjbQwQDHNssmuey2nCjgsI2fHUo2XE4s4LB5vvsj71AudDDA3GaSb/w4QAEVNLCAFWygg7EwZzDcEhU0MNeiJFawgbkWNTHA3GYt31JygAKmLd9nkncoFxawgg10MMC0Rb4K5QAFVNDAAs4f5ujZSjkehujZSqmJeVVxoYAKGljACs5f4+jZVXlhgH1hXlXIiQIqaGABK9hAB2NhY8839nxjzzf2fGPPN/Z8Y8839nxjzzt73tnzzp539ryz55097+x5Z887e97Z88GeD/Z8sOeDPR/s+WDPB3s+2POdPd/Z850939nznT3f2fOdPd/Z850939eePzsl5UQBFTSwgBVsoINrz8s55nuiggYWcOyLOBIb6GCAYy3GjzD17Im8UEAFDSxgBRvoC3N0j98Sa3Y/TlTQwAJWMNeiJjoYYF+YZ/8LBVTQwAJWEFvBlmf/0Uim2f14YZ79L0ybJypoYNpyD+XZv+cOyLP/aE7Q7H6cGGBfeL4y6EQBh63nUXK+OOjEAlawgQ4G2BeerxE6UUBsjs2xOTbH5tgc2/liody+56uFThQwbbnNzhcMnVjACjbQwYfNjtzUIx8uHPkwUUAFDSxgBRvoILa+bNn9aIckCqhg2iwxbS2xgg10MMC+UA5QQAXT5okFTFskNtDBAIdNctHzVUUXCqiggQWsYAOHLcM8uyonpi23Tr6+6EIBFTQwFSWxgQ4G2BeWVOQmKQIqaGABK5i23FD5VqMLA+wL891GFwqooIEFrCC2ii3fdZTvfMsGywvzfUcXDlueQrPBcqKBw5bnwmywtDzVZYOlaW6oESATA+wLR4BMFDBPVEl1UVvki2JRn5Qj+Hqp3AEKmM8zkmxRWVQXtUX+23w7XVZsibkZPLGcr8fSbFe8qC0a26AkxaI+KUfiSbJIF6UkEguY27onNtAX5oCzI3FUGO0ser4N7MJRwZJGgfEbZz1fCXZhgH1hjqwLZW4S00W2qCyqi9qivjZiDpnrpX65oLlMOWQuzAXNbZFD5sJc0iw2XwWm611gul4GputtYLpeB6brfWB6vv7rwlzLXJD5wi9db/zS7Am8aPzt3At58J9UF7VFvigWpSQxj/sLh+UsPk6cEw0cRUvuTc/jJndhHOCokMseujZMGFjACmbZ3JvhYIB9bfAcSRcKiK1j69g6to6tY+vY+rJlf99EAZct+/smFrCCDfTrUM83jJ2Hb7YCXigHKKAuzPNUyUXIwXRhAfP6Iqkt8kWxqE/Ky92TZJEuskVl0XLYcthy2HLYcuQ5arQEab4xbKKCuTKRWMCxEUtuuRxwFzoYYF+YQ+5CAYdtNGVotutNLGDacnlzMF7o4LDV3A85RE/MIXphBnuSLrJFZVFd1BZlxTw2cuTV3J058mouvxewgg0cS1rP94MG2BfmKL1QwLzQSkpZbvkcpRdWsIEOBtgX5ii9UEAFsXVsHVvH1rHlKG25yXKUJmZH3kQBFTRw2MYTas2OvIkNdDDAvjCH6YUCKmggNsGWp8oxC6vZkTcxwLSN/ZodeRMFTFtLNLCAFUzb+TLYtI3DOXvvbMwHavbeTVTQwFHXc/PlZWrO3mTvneWMTPbeWc69ZO/dxL4wI+DCtJ1volXQwAKmLZc3x33OAmTDneXkYjbcWeTi5LjPm9tsuJuooIEFrGAD03a+JTcW5mAfU+aaXXYTFTQwFbno50n5xAY6GHPI1zMIEvPEfKGAChpYwAqOunnjnv10F2YQXJiXFbklMwguNHDUzRv37KebONYi74mzn25igGnLZcgkuFBABQ0sYAXTlsdZJsGFAfaJ2Xs3UcA81Uhinplb4roOaIeDAfaF57XxiQIqmNcBJbGAFWxgXgd4YoDruq+dF80nCqiggQWsYN7i5GrmVXNPzDF/oYAKGljACua+SEWO+QsD7AtzzOuJAipoYAEr2EAHY2EO9NEZrtllN9HAXIueWMEG+nhx7pEYYB+YB8wY8xMF1IG558eYn1jACjbQwQDTNgZOdtlNFFBBAwuYez6XzNnzzp4P9nyw54M9H+z5YM8Hez7Y88GeD/Z8sOc7e76z5zt7vrPnO3u+s+c7e76z5/va89nhFnk2zQ63iXVgTWxgX//BGFkTBdSF+UbcI/9avhP3wgbmLsxlyDfjXtgX5ttxj54o4NiFOW2UjWYTCzhsORWUjWYTHQywL8w35l4ooIIGFhBbxVaxVWwVW8OWh33OQWXzWMnX8mfzWBnvv9NsHpvYF+YBfmEubyQqaGABKzhsmtvsfH/1iQH2hedbrE8UUEEDC1hBbIEtsAW2883WR6KAChpYwAqmTRMdjIlxvr76xPwPLDHA3NTjkMt+r4kC5uLURAMLmIvjiQ1MWyQGOGx5+5D9XiUjKPu9St7XZL/XxGHLM2/2e02sYAMdDLAvzJdbX5i2XMh8wXVOZWS/V8lJi+z3Knn2z86ukifs7Oya2Bfm4L1QQAUNzGK51XNsXtgX5ti8UEAFDcxiuQNyZOWNcTZYTaxgA/Ov5crneLuwL8zxdqGAChpYwAo2EJtjc2yBLbAFtsAW2AJbYAtsgS2wdWwdW8fWsXVsHVvH1rF1bH3ZssFqooAKGljACjbQwQCxCTbBJtgEm2ATbIJNsAk2wabYFJtiU2yKTbEpNsWm2BSbYTNshs2wGTbDZtgMm2EzbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsDVvD1rA1bA1bw9awkSWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypK8ssWNliR0rS+xYWWLHyhI7VpbYsbLEjpUldqwssWNliR0HNsEm2ASbYBNsgk2wCbYzKiJRQQMLWMEGOhhgX3hGxYnYDJthM2yGzbAZNsNm2Aq2gq1gK9gKtoKtYCvYCraCrWKr2Cq2iq1iq9gqtoqtYqvYGraGrWFr2Bq2hq1ha9gatobNsTk2x+bYHJtjc2yOzbE5tsAW2AJbYAtsgS2wBbbAFtg6to6tY+vYOraOrWPr2Dq2vmxyHKCAChpYwAo20MEAsQk2wSbYBJtgE2yCTbAJNsGm2MgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMiS7LUq4+GOZa9VGc+pLHutyvhcjWVXVRmPcSxbnsr1nS4FDRyK8QTEsuVpYgMdDLAvzEF2oYAKGogtsAW2HCLjWYdlw9LEOjGbkMqYvrFsQpqoYFbwxFFhPKmwbEKa2EAHA+wL87C/UEAFDcQm2ASbYBNsgk2xKTbFptgUm2JTbIpNsSk2w2bY8rAfveWWTUgTC1jBBjoYYF+Yh/2FAmIr2Aq2PAGOJ0yWfUNlPGGy7Bsqnrs7B8OFDgbYF+ap7kIBFTSwgNgatoatYWvYHJtjc2yOzbE5Nsfm2BybYwtsgS2wBbbAFtgCW2ALbIGtY+vYOrYcx+O5nmXj0sQKNtDBAPvEbGmaKKCCBhawgmnzRAdj4Tm6IzEr9MRRYTxbtOximuhggH1hjuMLBVTQwAJiU2yKLcfxeL5p2fJ0YY7jCwVU0MACVrCBDmIzbAVbwZbjeDxutWySmljACjbQF55feCuJWaEmZoXcLTnmL2yggwH2hTnmLxRQQQOxNWwNW475yAMmx/yFfWGO+QsFVHDU7bk3cxz33Hw5jk/McXzhqDAerNr5jcULDSxgBRvoYIB9YY7jC7F1bDmOe+6WHMcXVjBtOchyHF+YtlzjHMfjoZud32G88GGr45maZdPURAPLQE2sYBtoiT6wJMbAmtgHDnF2TU0UUEEDC1jBBjoYIDbFptgUm2JTbPmN7iM3SX6WezwUsmy0quPxj2Wn1cQCjoWU3CT5le4LHQywL8wvdEtuvvwot+Tmy+9y59dCS36a+8IA+8L8RveFAipoYAHT1hIb6GDacpPkpxlPzI8zXihg2nKb5ScaLyzgurTMTqqJDuaFbG7JHLwn5uC9UEAFDUxb7qz8dOOFDXQwwL4wv/59oYAKGogtsAW2wBbYAlvH1rF1bB1bx9axdWwdW8fWly37riYKqKCBBaxgAx0MEJtgE2yCTbAJNsEm2ASbYBNsik2xKTbFptgUm2JTbIpNsRk2w2bYDJthM2yGzbAZNsNWsBVsBVvBVrAVbAVbwVawFWwVW8VWsVVsFVvFVrFVbBVbxdawNWwNW8PWsDVsDVt+9nU8mrXs0ZrYF+bHXy8sYP41SYyFeUbPM1m2VU2sYP63mtgX5pC+UEAFDSxgBRvoILa+bNlANVFABQ0sYAUb6GCA2ASbYBNsgk2wCTbBJtgEm2BTbIpNsSk2xabYFJtiU2yKzbAZNsNm2AybYTNshs2wGbaCrWAr2Aq2gq1gK9gKtoKtYKvYKraKrWKr2Cq2iq1iq9gqtoatYWvYGraGrWFr2Bq2hq1hc2yOzbE5Nsfm2BybY3Nsji2wBbbAFtgCW2ALbHl5kB+qb2eWnNgXngHiiQoamIqeWMEGDsXo+LDsxprYJ+Y7zyYKqKCBBaxgAx0MEJtgE2yCTbAJNsEm2ASbYBNsik2xKTbFptgUm2JTbIpNsRk2w2bYDJthM2yGzbAZNsNWsBVsBVvBVrAVbAVbwVawFWwVW8VWsVVsFVvFVrFVbBVbxdawNWwNW8PWsDVsDVvD1rA1bI7NsTk2x+bYHJtjc2yOzbEFtsAW2AJbYAtsgS2wBbbA1rF1bB1bx9axdWwdG1niZImTJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWBFkSZEmQJUGWxJklkthAB9NmiX3hmSUnpq0mKpi2SCxgBRvoYNp6Yp+Y7Xt1/HTVsn2vjoZQy/a9icM2Ojst2/cmVnDYxu8sLdv3JgY4bKMv07J9b6KAChpYwAo20MEAsSk2xabYFJtiy6jIVp7sw6v52Dn78GrJbZahcGEBKzgWMp9LZx/exAD7wgyFC4et5kbNUKi5+TIULixgBdOWy5uhUHMZMhTaWbcvzFAYLf2WfXg1HxpnH97EYcvnx9mHV1sWy1A4MUd3PizNhrqaTyezoW5iAcfi5DPLbJKrnsubI/ZCBQ0sYAUb6GCAfWFgC2yBLbAFtsAW2AJbYAtsHVvH1rF1bB1bx9axdWwdW5+2kk1yEwVU0MACVrCBDgaITbAJNsEm2ASbYBNsgk2wCTbFptgUW47Y8Yy1ZBfdxAo20MEA+8I8+4+nniW76CYqWK7jt2Tr3MQGOhhgX5ij+0IBFTQQW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsDVvD1rA1bA1bw9awNWwNW8Pm2BybY3Nsjs2xOTbH5tgcW2ALbIEtsAW2wBbYAltgC2wdW8fWsXVsHVsGyHg2XrJ1bqKDwxbnf9snZuvcxGEbP+0t2To3cdjGE+iSrXMTK5g2T3QwwL4wA+RCARU0sIAVxCbYBJtgU2yKTbEpNsWm2BSbYlNsis2wGTbDZtgMm2EzbIbNsBm2gq1gK9gKtoKtYCvYCraCrWCr2Cq2iq1iq9gqtoqtYqvYKraGrWFr2Bq2hq1ha9gatoatYXNsjs2xOTbH5tgcm2NzbI4tsAW2wBbYAltgC2yBLbAFto6tY+vYOraOrWPr2Dq2jq0vmx4HKKCCBhawgg10MEBsZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZ5ZEYp9Yziw5cdhGz2k5ey0vNHDYRs9pOXstL2ygg8M2ekPL2Ws53utTzl7L8U6dcvZaXqiggQWsYAMdDLAvVGyZJaPntJy9lhcaWMAKNtDBAPvCzJILsRk2w5ZZMhpjy9mieWEDHQywL8wsuVBABQ3EVrBlloze23K2c14YYF+YWXKhgAoaWMAKYsss6XnIZZZc2Bdmalz4qNCOPPpGPrQjD66RDxMD7AtHPrQjj76RDxMVNLCAFWyggwH2hYEtsAW2wBbYAlukLYdIOJi2PH6jL+wHmLbcqF1BAwtYwQY6GGCfmC2aEwVU0MACVnDZsgOzjS7mkr2WbXQxl+y1bOP70yV7LSc20MGxkKNJuWSv5YVjoE8UUMGMzJJYwAqmLRdSHQywL7QDFDBtuW5joE8sYAUb6GCAfWE5QAGxFWwlbblRSwUbOGyjm7Bkr+XEYdPcDmOgTxy20fZTstdy4rCN10OV7LWcWMEGOhhgX9gOUEAFsTVsDVvD1rA1bA2bY3Nsjs2xOTbH5tgcm2NzbIEtsAW2wBbYAltgC2yBLbB1bB1bx9axdWwZCprHb4bChQ4GmLZxGGWT50QBFTSwgBVsoIMBYhNsgk2wCTbBJtgEm2DL1BhPoEs2brbxrLlk4+bEUWG8fKhk4+ZEBwPsCzMfLhQw61ri2pvZjHlu32zGvDDH/IUCjjUebwAs2Yw5sYAVXMdOK9hKgOvYafUABVTQ1jKcY/7ECjbQ1zLkmL+wL2TMN8Z8Y8w3xnxjzDfGfGPMt7aO1NbYko0t6WzJHPPnMjhb0tmSjPnGmG+M+caYb4z5xphvjPnGmG/nmM9lCLZksCWDLRlsyRzzo5GhZDPmxNySWTfH/IUCKpjrlsd6jvkLK9hABwPsE7Mvc+KwjVaIkn2ZE9cBns2YbXRFlGzGnOhggOvQyGbMiQIqaGABK7h2louDAa6dlc2YEwVU0MAC5lpoYoB9YQ7/ktshh3/JJcvLgwsNLGAFG+hggH1hhsJ471fJBsuJBaxg1s21yFC4MMC+MEMhr8+ywXKiggYWsIIN9IU5T5DX9mcr5YUK5lqcWMBRt+ZxlsP/QgfHWtQ8onL4n5jD/8KxFjX3UA7/Cw0sYAUb6GCAfWEO/wuxnU89cyHPp54nNtDBAPvC86nniQIqaCC2jq1j69g6tr5sZ9PkhQIqaGABK9hABwPEJtgEm2ATbIJNsAk2wSbYBJtiU2yKTbEpNsWm2BSbYlNshs2wGTbDZtgMm2EzbIbNsBVsBVvBVrAVbAVbwVawFWwFW8VWsVVsFVvFVrFVbBVbxXZ2UIwxdDZNXihgjuOaaGABcxxHYgMdzHHcE/vCMzVOFFBBAwtYwQY6iM2xBbbAFtgCW2ALbIEtsAW2wNaxdWwdW8fWsXVsHVvH1rH1ZcumyYkCKmhgASvYQAcDxCbYBJtgE2yCTbAJNsEm2ASbYlNsik2xKTbFptgUm2JTbIbNsBk2w2bYDJthM2yGzbAVbAVbwVawFWwFW8FWsBVsBVvFVrFVbBVbxVaxVWwVW8VWsTVsDVvD1rA1bA1bw9awkSWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlvSVJfVYWVKPlSX1WFlSj5Ul9VhZUo+VJfVYWVKPlSX1WFlSjwObYBNsgk2wCTbBJtgEm2ATbIpNsSk2xabYFJtiU2yKTbEZNsNm2AybYTNshs2wGTbDVrAVbAVbwVawFWwFW8FWsBVsFVvFVrFVbBVbxVaxVWwVW8XWsDVsDVvD1rA1bA1bw9awNWyOzbE5Nsfm2BybY3Nsjs2xBbbAFtgCW2ALbIEtsAW2wNaxdWwdW8fWsXVsHVvH1rGRJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJUKWCFkiZImQJdnZ+ZhRTuwLM0suHLbxMp+anZ0Th238uKdmZ+fECg7b+J1Pzc7OiWkriX1idnZOTJsnKpi2lljACqatJzo4bOPthjU7Oy/MLBld7TU7OycqOGzjZxs1OzsnVrCBDgbYF2aWXCiggtgUm2JTbIpNsSk2w2bYDJthM2yGzbAZNsOWqeG51TMfPPdQ5sP4JUvNbs2JDgY4lnf8aqBmt+ZEARU0cNgij5LMhwsb6GCAfWHmQ+RaZD5cqKCBBaxgAx0MsC90bI4t8yFy82U+XFjAtOWGynzoedBmPlw4bKMvqGa35oWZDz2P38yHCxU0sIAVbKCDAfaFHVvH1rF1bB1bx9axdWwdW1+27NacKKCCBhawgg10MEBsgk2wCTbBJtgEm2ATbJkPo3GoZrfmhZkPFwqYtpZoYAEr2EAHA+wLMx8uFBCbYTNshs2wGTbDZtgKtoKtYCvYCraCrWAr2Aq2gq1iq9gqtkyN0UBVswOzjaclNTswL8x8GB8lq9mBOVFBAwtYwQY+6vrou6rZVXkdBDnmz32cY/7CCjbQRwVJDLAvHGN+IkcqY94Y88aYN8a8MeaNMW+MeQuO1M6R2jlSzzF/Ius2xryPxqyaXZUT28Cs2x0MsE/Mrkofn5+v2VU5UUEDC1jBBjqYNk/sC0XmzspWSh8dVjVbKScWsIJt7oBspZwY4NpZ2Uo5UUAF184qWsAKNtDBAFeIFTtAAXMtemIFGzjWQnI7jCHtkks2hvSFY0hPFFBBAwtYwQZm3XFoZHvkRAEVzLq5FrWAFWxgXnbkjs2BfmFfmAP9QgEVNLCAFRwPWWouWTZVn5hN1RcKqKCBBaxgAx3E5tgCW2ALbIEtsAW2wBbYAltg69g6to6tY+vYOraOrWPr2Pqyne+1vFBABQ0sYAUb6GCA2ASbYBNsgk2wCTbBJtgEm2BTbIpNsSk2xabYFFs+Qh0vZ6jney0v7AstR1ZLFFDBtFliASuYI8sTHQwwbYnnKyZOFFBBAwtYwQY6GCC2iq1iq9gqtoqtYqvYKraKrWJr2Bq2hq1ha9gatoatYWvYGjbH5tgcm2NzbI7NsTk2x+bYAltgC2yBLbAFtsAW2AJbYOvYOraOrWPr2Dq2jq1j69j6sp0v1LxQQAUNLGAFG+hggNgEm2ATbIJNsAk2wSbYBJtgU2yKTbEpNsWm2BSbYlNsis2wGTbDZtgMm2EzbIbNsJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSbaJ+vglVs020YkOpq0n9oXnPc6JAio4bPlg6mwTvXCsWz7POttEL3Rw2PIR1NkmemLOgYzffdVsE52o4Jir0FTkHMiFFWyggwH2hTkzcqGACmKr2Cq2iq1iq9gqtoatYWvYGraGrWFr2Bq2hq1hc2yedUtiVqiJWaElBtgX5hTohbm8eZSEggYWsILDNn7DVLP1c2KAw2a5Y0c+TBRQQQMLWMEGOhjgsmXr50QBFTSwgBVsoIMBYhNsgk2wCTbBJtgEm2ATbIJNsSk2xabYFJtiU2yKTbEpNsNm2AybYTNshs2wGTbDZtgKtoKtYCvYCraCrWAr2Aq2gq1iq9gqtoqtYqvYKraKrWKr2Bq2hq1ha9gatoatYWvYGraGzbE5Nsfm2BybY3Nsjs2xObbAFtgCW2ALbIEtsAW2wEaWdLKkkyWdLOlkSSdLOlnSzyzRRAcD7Be248ySEwVU0MC01cQKNjBtlhhgX3hmiScKqOCwjZ9ftWz9nFjBBjoYYF+YWXKhgApiU2yKLbOk5LqdqZELeSbBiRVsoIMBUiGToJwooIK5ZJFYwAo20MEA+8JMggsFVBBbxZZJMH7h1bJxc6KDAfaFmQQXDlvNYyeT4EIDC1jBBjoYYF+YSXAhNseWSVDz6MskuLCCact9nEkwPuDbsnFzYtpyt2QSXJi23FCZBBcaWMAKNtDBAPvCTIILsXVsHVvH1rF1bB1bx9aXLRs3JwqooIEFrGADHQwQm2ATbIJNsAk2wSbYBJtgE2yKTbEpNsWm2BSbYsurinF/0bJxc2JfmFcVF67cycbNiQYWsIINdDDAlXLZoumjJa/JmQ81cVQY79tu2Yw5McC+MPPhQgEVHHXHnU+TyvatrHFjjc8xf6KCY43HzVXLBsuJFWwge7Nha+xNZ286e9PZm87ePMd8LsM55k9sIHszx/y5DDnmT8wxfyE2xrww5oUxL4x5YcwLY16CYyfYkp0t2dmSOebPZehsyc6WZMwLY14Y88KYF8a8MuaVMa/H2m96jvkTC1jBtd+ywXJigNgY88qYV8a8MuaVMa+MeWXMq6z9phLg2pKqByhgbsmSaGBuyZpYwQY6mOuWy5Bj/sQc8xcKqKCBBaxg2nIhc8xfmNcP+R/klUKOwnxJpo+fcrZ8SebEAlaQPVTYQ4U9VNaxrvUABVSQPVTZQ5U9VNlD1cEAOR4ax0PjeMh8GB25LRssJzZw1PXcDpkPnkuW+XBi5sOFAipoYAEr2MCsm0dJJsGFAiqYdfMoySS4sIINzBmMEwPsCzMJLhRQQQMLWMHcOi2xT8ymyYkC5lp4ooEFrOCYE8trxPMVlxcG2BeeX9s4UUAFDcytc6KDAfaFObovFDCXtyeOCqNBuGXLo4+vZLdsebwwR+yFo0JoooJjO4x3lLdseZxYwbG8o4O4ZcvjxAD7wrziv1BABdNWEwtYwQY6GODY6porlCP23A45Yi9k6+SIjdzzOWIvdDDAvjBHbORBkCP2QgUNzLVIW47jCxs4bD2XN8fxhX1hjuOe+yLH8YUKpi33fI7jnrslx3HPjZrjuOfWyfP8hbEwx3HPdctxfKGBBcy6uW45Ys+DK0fsiTliLxTQwDFwJBfy/IDviQGOXTg+Cd3Ot0deKKCCBhawgg30hXkSHm2t7WxuvFBBA3Ple2IFG+jgWIvjxL7w/Cb3iQIqaGABK9jAfn25vWUbYxwnCqiggWWgJFawgQ4G2BeWA5Tr4/AtmxsnGljACjbQwQD7wnESnphroYkFrGADcy0sMcC+sB3gWItMjWxunGhgASvYQAdjoee+yOPMFTSwgBVs4Kibp6RsbpzYF46T8EQBFRxrkSeqbG6cWMEGOhgLe65FrlDP5c26vYINzAp5ePYA+8RsWJwooIIGFrCCDXQwQGyCTbAJNsEm2CSPHU8MsC/UA8ytE4kKGljACjbQwQDTlotzju4TBVRw2EY7csvWxIkVbKDPnVXP0X1iX3iO7hMFVNDAAlZw1B2tyy2bEC8c43jiqDv6lVs2IUamfTYhTixgBXMtSqKDAfaFObol91BLW26opqCBBaxgAx0MsC/0A8SWY15zNXPMX1jACjbQwQD7wjHmJw5bXt5mE2JornEYWMAKNtDBAPvCfoACYhtn9LA8uDIfLqxgAx0MsE/MJsSJAg5bzplnE+LEAlawgQ4G2BdK2lqigAoaWMAKNtDBTCNJ7Av1AAVU0MCs64m5vCMUsrFwYlbItTAFDSxgBRvoYIB9YY758SK+li2EUXJf5Ji/sIINdDDAvjCToORqZhJcqKCBadPECjbQwQD7wkyCC9OW65ZJkDOG2UI4sYAVbKCDsfZFYw85eyiT4EIFDSxgBRs49kUO9GwWnChgrkUecjnmL8y1yAo55i9sYK5F7tgc8xf2hTnm86FFNgtOVNDAAg5bza2TY/5CBwPsE7NZcKKACmbdmjiO1NEK0bLVL/KZRLb6TTQwl8wTK5hLFokOBphLNrZDtvpNFFBBAwtYwWHL6ehs9ZsYYF+Yo/tCAXWtcZ7Rcw46m/omOhhg1h1HSTb1TRRQwcdaPG5pEgtYwQY6GGBfmNfrJ45x0XOaMNvhJgqooIEFrGADHQwQW2ALbIEtsAW2wBbYAltgC2wdW8fWs24ecr2CbWK2okXOI2Yr2sSsOw7EbEWbKKCCBhawgg10MBbmUX2K86i+0MACZt2e2MBRN6dWs+ms5+krm84uHEf1RAEVNLCAFWygg9gMW8FWsBVsBVvBVrAVbAVbwVawVWwVW8VWsVVsFVvNumMUZiNZzzNvNpKdh1E2kk0sYO6LkthABwPsC89ReGLaTlQwlzcVOQovrGAu74jXbCTreYuYjWQTc3lzLXJknYdGjqwLG8ixkyMrZy2zkezCHFkXMgI6I6AzAjq2jq1j69h6TMwur563fdnldWEOvQuHOCessstrooFDnDOn2eU1cYhz5jS7vCYGOGw5c5pdXhMFVNDAAlYwbSXRwQD7whyQFwq4dmE/h14u5Dn0ItHBANfO6uUABVRw7azs55pYwQb6HAz9HHon9oXn0DtRQAUNLGAFY4ZYdm5d2I51aLQ1pLNza6KBBaxgAx0McAVIdm5NxObYHJtjc2yOzbE5NscW2AJbYAtsgS2wBbbAFthymJ7HTmer93Vi7b2BDgY4T6ye3VgTBVTQwAJWsIEOBohNsAk2wSbYBJtgE2yCTWYUe3ZjXagHKKCCBuaWPLGCuS9ScZ6ET4yF5+m2JZZrdPtxju4Tc3ktcYajHxZgX1gOcI5uP9bo9uM8sZ44R7cfa3T7sUa3HwVbwVawVWzn6E48D9qeqKCBGY7nf1vBBmY4SmKAGY46MM84Fwo4o9izyWhiASvYQAcDnFHs2WQ0UUAFDSzg2oVyzOsHl2NGsYscoIAKGljACq6dJevK0WVdObpIX6gzij3biSYqaGABK9hAB2Nh3vnkvshmoIkOBtgX5p3PhQIqaGABsRVsBVvBVrBVbBVbxVax5bxGHn3ZTjSxgQ4G2BfmvMaFAipoILaGrWFr2Bq2hs2xOTbH5tgcm2NzbI7NsTm2wBbYAltgC2yBLbAFtsAW2Dq2jq1j69g6to6tY+vYOra+bNlkNFFABQ0sYAUb6GCA2ASbYBNsgk2wCTbBJtgEm2BTbIpNsSk2xabYFJtiU2yKzbAZNsNm2AybYTNshs2wGbaCrWAr2Aq2gq1gK9gKtoKtYKvYKraKrWIjS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsUbJEyRIlS5QsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS+zMEktMW0l0MMC+8MySEwVU0MACVhDbmSWeGGBfeGZJTRRQwbT1xAJWcNhGk5FnU9TEAPvCzJILBVTQwAJWEFvD1rA1bI7NsTk2x+bYHJtjc2yOzbEFtsAW2AJbYAtsgS2wBbbA1rF1bB1bx9axdWwdW8fWsfVlyw6riQIqaGABK9hABwPEJtgEm2ATbIJNsAk2wSbYBJtiU2yKTbEpNsWm2BSbYlNshs2wGTbDZtgMm2EzbIbNsBVsZY3jcuZDJDoYYF945sOJAipoYAEriK1iq9gqtoatYWvYGraGrWFr2Bq2hq1hc2yOzbE5Nsfm2BybY3Nsji2wBbbAFtgCW2ALbIEtsAW2jq1j69g6to6tY+vYOraOrS9bPQ5QQAUNLGAFG+hggNgEm2ATbIJNsAk2wSbYBJtgU2yKTbEpNsWm2BSbYlNsis2wGTbDZtgMm2EzbIbNsBm2Mx8sUUAFDSxgBRuYadQSA+wLM0tGt7GfXV4XKthmRp1NXBcG2BeeUXGigFks1+28lDixgGNiaTS7ejZx9SMXPefiLwywL8y5+AsFVNDAAlYQW87FH7lJci7+wr4w5+IvFFBBAwtYwXWSqFxKVC4lsomrH7lJclrzQgEVNLCAFWyggwEuWzZxTRRQQQMLWMEGOrhs2cfUR9eJZx/TxADH4oyftHq+IG2igAoaWMAKNtDBALFVbPmwabSwePYm9dHC4tmQdP3TfMI0mlU8G5L66FDxbEiaWMAKNtDBAHNxckPlUX2hgGnrifmc4UjMefvcfGfjhSa2teh5VF/ICuVBa1k3D9oLC1jBBjoYYF+YB+2FAqYtFz0P2pKLngfthRVs4LCVXLc8aC/sE7MLaaKAChpYwCw2NlQ2JPXRXubZhdRHn5hnF1Ifv0L17EKa2EBfmDPpF2aFlljArOCJKR6bJF8B1kfnlucrwCZWMHfhkehggH3VPUdL/tNztJyooIFlrXGOlgsb6Asr65aPdM4Vyge2F7LGeYXXTswumVyyvMK7sC/MK7wLBcxultw6eS3XcjvktdyFDgbYF+a1XD53yh6iiQoaWMAKNnDYPA+YDOgL+8K8lrtQQAUNLGAq8ujLC7gLA+wT8z1aEwVU0MACVrCBDqbNEvvCvIC7UEAFDSxzq2fz0sQGrp119iblA9DsQop81JldSBMD7AvzmisfmWUX0kQFDSxgBRvoYNpaYl+Y11wXCqiggQVsa93yQisfxWWT0URZK5SXVBcaWMBc9Nxmec11oYN5zXUk9oV5zXVWaNgatoatYcvbswvZLY3d0tgtjd3i2BzFeRWUC5knFMklyxOK5CGXJ5QLG+hggH1hnlAuFFBBA7HlCUXySM0TyoUOBtgn5nupJgqooIEFrGADHUybJPaF+cj3QgEVNLCAFWygg9gEWz7cHb+08LPfaPR7+tlvdGFfmP1GFwqooIEFrGADU+GJqRjj4mw9ulBABVPREwtYwQY6GGBfmGeyCwVUEFvFVrFVbBVbxZYNSToO+7Mh6cKh0NwBeTU4msD97De60MFRTPOAyavBE/Nq8EIBFTSwgBVsoINTEWenznhDXZydOuPXKXF26lxYwAo2MOu2gXlUj5+ZxNmTc6GCBhYw60ZiAx0MsC/My68LBUxbTzSwgBVsoIMB9oU5GMbvWyK/iDnRwAJWsIEOBtgX5ri4EFvBluNivCYrzqadCyvYQAcD7GurV3ZWZWdVdlYe4OPlWZHvQuqWB0we1RcaWMBcnDyi8li/0MEA+8I81i8UUEFbR+p5rJ9YwQY6GGBfmDfx57qd90N5KJ93Pie2tULnnc+JAfaF551PjoDzzudEBXND5UbNE9WFlQrYOraOrS/b2YV0oYAKGljACp6K//mff/jtz3/9lz/8/U9//cs//f1vf/zjb//43+sf/Odv//h//vu3//jD3/74l7//9o9/+a8///kffvv//vDn/8r/6D//4w9/yT///oe/Pf7t49j841/+9fHno+C//enPfxz0P//A3z4+/qvyeEQY119/cOgq8VjPH4rIx0XKuE/JEo/J5lXA9Ye/rx//fRt9e/n3H49rWICfCmzXwsa1x7UWj+ctH65F+bjImLI7K4itv1/s7l+3/PDFuRaPqSuWQOsPJdqmxHhKem0HFsH97t9vMo+EZnX9/ccD2B8KxGY7ljYryGPu98MSfbcvdW2Gx2TJhyV2WzLT9toOrXy4JWVzSKrK3J2q/alG/emo3h2WVtdisDkl9P6KOCsS9vGKbGqMzyNcNcYXDVaN9tN61N1eHS9ZuPZq1Q9LbI6sfM9LVnjc7j2N0PsV8seMZ4UmH1e4uxr+8WrsNmZ+FOvcmH70j0roJmq0xDqwHk8IPiwh724K3RyZevQZdyoHkVt+ilzbLESbsf+4Nft4IXZ5qTq3xAM5Kqz6/RWRcSq+VqTKhyuyObCU0Dw+LLAfYb2tg+Ip+n/eo/F+6O1qPB6JzxqPJ94fnz/s2Ob3Og3Wp62hj+D4ocbm6Kwx98jjCcNTBb9/YJS6Doz6NMp+PjBsc3g+bvT6qtE5wi1+WpPNcqjb3KL6eHTFjr2/FDcP8W2Nu1vDv2FrxLtbYz9Q6hoorX0YfZsKxY91pfhIwQ+P8bI7s8c6QO1xn/xUw2/XsMNt1ejxcQ17+6xayrtn1V2Fe6eS26vx8Vn17taUpyP8a3tkXbuaiH9co79/9VqPb7h83a1L4cKxbtalbk6MITFrPLB9eP26raFrXUKfTq6/1ChvH+W1vnuU7yrcO8pvr8bHR/l+a7a1R7S/uEdqX1ddj6d9H9Zou3N8vu/wXBV/zr+f70tke6M5a9jj4cqHR2jTt4+MZu8eGbsK946M26vxYv5FWWekeCrxy9b097dmvL014+2t6b/z1nw6Np/HyFfOJvmzsevGWz7eI25v33j7++Hpb4envx2e/n547jfmu5eO9Vj3efUx3ffhpWNsonO8uWne2/ywOX+K39gcWvlg7dwWj3nnD9N3O1lZ1l2FWKv24WTlfos6WzRe2yn3ZkOi7mZDjnVTUaR8WKK9PUjC3x0kuwr3Bsnt1fh4kGw3pq2rg8fGbC+VyFf4XrNT9uFcRt+cEGu2qZ1HxeNZ6GslrNwosT+wbk2z9bejs78dnd3fnt/q8eb81nYZ7k0WynG8O1soh+weTthckSZP9/6PE/SrReqLRcqxpriKyqZIeXfacb8uUda6xKvromtWZ7xq/9UiXleR/uqusXVfMl6dvSmyu4V/zOise/gHy4fTZdsyd+ftPinS5/55PLzvLxaxeqwiTw9Hv1bk5hSi7Gbv7s4hyu4ZzM1JxO1yhK4tEk8XP78ux90i7Xi1yDrHPLC9VuQxJtal7YN9U2a7i+sKtv58+fDFgy042J7H8deKtE6Rjwfg/bP3xw8td08R8pshWcL9w5PW/gr51nMd0fb+jeS2yONabj3ZkV42RfbT93WNvLJZm/7+g+DdI6abT4J3JW4+Cr69Jptnwfstuh6WqUd5qYbJCtXHKcJfrXG8XeOpdeR55H+txrrIe5T7uMbuIdPNm4dPaty6e9ivSylrGr+0eL/Gi8eYaV9TgyU+3rfbJzRtTTyL6+bqe7sg+VHFc0EeyfrxgtT3d+6+xjfsXBfWZTNwy67T6fA1i/644nl1o64rRIvNUbZ94LRuzh53JR8vRt1ceUv+Su1cl+6b+5ndchShh882m2N3ntN1iirajo/Pc7snNTdnlKR+Q8NTfb/jqX5Dy9M39Dxtt+i9aaV9jXvzStLk/aG/PzpuTQvJ+0+d5P3HTl9Yk4+zo7U3L5H3Q9ZWlJbi/cXrW3Vf4353fdu+ofU0L5befXq/X538mNC5Or193Bwirt+xOvZ7r05fZ5h6HLvVqb/nkVbppq2lbe6k3HcnKeVAWyX0l236fhvUdilWhedT5S9LsXsSJY+pgrKuP46n6dD2hSJH/nr3mnqI5yuhrxTp8fRE66nR+StbxNd+6Zv9EuV3LfHYBtrZHvXjjVq+Y6OWb9io2yJ3j5HtsKvHeordS7wW8OOD22um2vzVImuebHwl9MUixZi6b6+ujtk81sbXwj4u0ss3BPzuAdO3BPz4mNhaHd+tzq5xo+ZLIq716aV/dLB9UmRNITz46bc8Pxfpu4f06+nMeCvyh6uju+dVpa45ldI2rW96bO+rypogOuTDm3c99N3bOz02VwE//JTFnx9mxE9FPgkTft90PN1Y/TxN/UmZymHyuHOJD8tsD9nxnsG5j8vT47Nf97G/PSOqR7x9p6i7CfN79xPbEjd/EXJ7TXyzJv72jOi2xs0Z0c9qHG/XuDfhpbvfLP1wx1pf26Y3Z2Y/qXFrZlalvz1590mNW3fw+3Upxzo+nh++/1xD9fdejlszxPdrvDjmbs4Q6y5O784Qf3Kw3zxA2u+8Y+7N7ur2d1A3Z3c/WZBbs7tq75/+d78fuju7u12Om7O7n1zcOVe8jwfmH1zcZUPKu1eI2yJFjWmAp4u79oVLOy+yRkz5+EC195+mann7aeq2xM1rB3v/aeonF8vrPPe4vP/4fLv7NdPt+NhdLbdYs90t+uZqeVfE10Z9oLxWRI71Yzct2+v23ZJUY5q4vX7xH42L/6ezzFcv/tcajRuBtilj2+cR9X97HvG17VLWnLOWp0vEX4u8nYrbw/5xWb+OFDnipaGjsn7xoLI54+2eNd080VT/hhNNbe9v0u2uXZPNj71srx7y2Vw0LwHs5ftdLdzvant55Oi6qBklN01iu77qNUXqLMdPLyj5bEZRnRyw/uK0ZHmaSWgfTUvq7snV4y7A/te7gPsl7l0FfDYLf3N7HN+wPfwbngdsi9zcIvtuxqeVOY7nRsSvNUUe1p7KbLo8dXsZf7u3clemxbokaP34cC5+W4LZ0fGhy9dKOEvRPyyxb7E+eMHP8XLH+HrR0aPIx33a29+x2rpQC6v94+nV3S+pbnZ6aLz/I1SNt/sBtiVuXoPH+79D3W/Re50e+xr3Oj003u8C/KTGvXuB/RF27109Xd4+Ovr77/u5vyYfX2b2dxuq96N+XYCE9c2o7+39O+/+/o+ltcf7+/Xtn0vfX5PNqN9u0Xt33nZ8w4zqfjluPS6zo7x7G2NHff+2e7scN29jdpvj7p3htsa9O0PbPVu6uUnleP/OcLsc9zbp/u0Z69FS1KcfzP3yTr/tO4xu/Wx6/wa4W9ct9g2v5LP338ln77+Uz77hrXzbDXrzsuV4+6rFVN6+avmkxr0cff+C45O7r3s/oty/3u/ezx+3NW7++nH7/rSbvxe8XWPzc8F9jXu/Ftw+y7l9Q7vdqjd/K7hfkrvHyHab3Pyt4P5Nf++vzd1jdb8uN49V/4Zj1b/hWPVvOFb9O47V/Va995PU+69c/fBKynY/orp187N9PSc9kEWeHn388nrO3a+fjM7DxwzKR09Q9yVuzZxa8befn+42BtN75fm1Fr9ujG94XZ99x/v69m9NvXUJY/vXMMw5tR8a0/1+hXUp1p4eD/xSYftiuHVkSH1qnPzl5a/bTUEHdVX7uEbd3ggSpQ9+br66f4TxNolSTT88wrY16rohLbV+/Mooq333KPhWl6G1uwfY5mq/vX1ZuC1x82q/fcNQ2W/RW12G2xo3uww/q3G8XeNel6G1uzOd9bVterPL8JMat7oMzb/hHsrfv4far8u9LkPz8nsvx60uw/s1XhxzN7sMbffLqbtdhp8c7PcOkBa/846512Vo20c2N7sMP1mQW12GFu/Pmu7e2HJ7ii/enjXdXgWtFx21H35a95XrqPWg9qld6pcK/h3PwD+pcvMRuO3eZPqFu7BdmXuPwPclbj0C/6TEnUfg+wmlm7eT5fedtPjCMWLfcozY9xwj9v4xYu8fI/b2MbK7RPU1W/B4ZPKUyvZjDJXt859bt8jbEtIqHWiPXHv6saL99Kbuo707ZbAvcWvKoBzxe28PvrD1eAqjH2+P3bOox2PyNdMf8lH/+LbE3a+klN3Hoe59JmVb4t6kwb7ErVmD/da4OW3wySa9N29QxN+fN/jkMOtrou7Bz9chvxxmu5tUcV6a+tRG/nj492OR7cTlrXcN7Jcjf/R3lnjwx8uxLVJpZ691U2S7Yf3pctd/+M7Hzxt2d/a9mWfbEvfyTNvvm2c/bo/n73z8ku/bMlZXD6oX2cSibiczChMi9enCt5RXi8Q3FHm+iP9akae5Ge8fF7HtDw3WexcfifjcLvnTbt59RMrCuD97btz+pcj2tanrJk/jqRfka0VC+iry/FLbLxZhSbR+QxE7NkW2v2ypPLJ/vgz/ucjux0+1rdvW2p6Oky/t4kI8lurx6nHy9KbQo7y4Tco62LS03TbZrU5bP65/TDmV1zZs6WuCtfSorxVp6k+txvU7Vmezi2/nSWxCaffA6uaL1Mv2eZUdTNRq+3hBdi/88+qziNfnF279dLG1a6Z63KivBSlPj8zlp0vHuns/1cGJ+NDycY1Pfk6yrsYfW7V+vDbbzbrugM2efh3z62bdFulPk+ibg+Qr5/P28fm8xjcca7sHrL3zoZHe6+YKpW3bs9Z1jj5/CFeL/FRE3r4U3m6Se99SKLsX9916a/9+o35h/27L1IMytWxuU3Y/giKlHxM/T4M4/CuL0g4uZL1sJip2s/JNVwtesx/mXX4usm0SXUdskaeO/S8VqbIS5YH24pI8veWtmL+4JLY+8VCttxc3rNX1uqpimyLbh1mtcaEUrxbx1dL8QHmxCP1ND3y1iK93ND6wvlikt/X9o/78pbGvDWRfSf2YejyOV8vE02f9or4aK4+7C2Y/f2jN+blMvD+5Fe9PbsX7k1v77VGZUopmm72z/biT8NFZkefL+5/OX+FvnwL3y9Gffib6mC77sMj2uyZrgqzrx9Mn+xJrVbq2Dydh93vGWZXwePmA7+snEg/ezbJ3e3tWalvi3qzU7nWAN2elvrA9difzz8o4ZWp5uUztlPHNnGHv7++d/u7eqbsfzn7P3nneHtFf3zuNMv3Vc04/uHzsovXVMsY3ER8j8ONrpbp7SnXvnLMtce+csy/xDeecx53WSrbeysd7p77/oGtb4nFtcvBjS5fyWhHmHR+s9cUipTxd3rx2yujObxb69pSx7WH8pttiXbMFaodvbovvFnnayV8rUtYJ/TFVcbxYhLfIan2aevxSkcd2WEF9/DDNJrcf3/f1jgM9fsiS424JpVVf1T7uAKhq24fEt7rT6/ZJ1c3u9N3K8GIQPcpuZd79UEDdvXLxMc+/5qOi7RYj3t8c2yJV1xV9/eE77CZfKEJE/3T/+JUivCWs+g+3Wj8V2b4h8Na1zb7EvWsbe7vf5ZOtsZ5x1bC+2Rrb0+96ntNK2KaI75ZkXQbI8dF08n4x6rqI/vEN4V9al1rX9z1/+LnyF4vQEXn0l4usGaT2w4PqrxztsULk8bhuU2T3M6xvKXK3f6duP0R173JzV+Lm5ea2xK3Lzf3WuNm/88kmvde/U+v21H2vf+eTE836Fu3j2qhsTjS7Il0psjtbVfu9V6c7D6YkNkuy+w61M2Hz/Hmd/lOJbRvhat63Ys/nqq8U4e7Vfpww/blIvH3C25a4d8Jrb78rbbs1Ho8BV9vAUevHW6O9f/pv75/+W/l9t4asIVfkh3ven7dGe39rtPe3xtvNrtthb7wgbfw067UUM37XYeWHTfpTEZffOcUef+3gwv14cXV8vcr2sWLtxSJ9XWWW49XTg/XVovYoslkSb99wg7j7cNL9O6Lt3uGptj9/MeWX1dlNkFLjqfXB/X6FxkeCnm66f1mT3WvObm/T0G/Yprtng/n447xOLc+n3J8uh7a/yvI15WXen3fLTxt197use7tluxixZmdHj9pmMbYnCH6OXZ5/6valIvVYudpsV6R/Q55tn1/VdRvymP976ikr5QtF2lqd/nxX9dUi6+0n7fktLF8rsu40e3tuYPy5yO71gH1dd/fnXxD99DvEbYnnN+Eez+2LPxfZr0ywMv3VzeoWa22eOt6/ViTYwfH8ovJfNuvvXeSH98DZbu9sf0qwXrSj+rxNvlTE1tfx9PlH4r/u4m24lvXB0N78wyBox+9d5O5UQnv/yVV7/8lVe//J1X5r3JxK+GST3ptKaPIdV63b/p7VYO5qH57Dm2znq9bKPOarPv6OXNu+DfveK0/bN7wwsL3/wsD2/gsD2ze8MHC/Re+98rTtfpx18y0CnyzHrVeeNn37E0FNv+GbJ/siN795si1y9+Wr+yW5+c2TfZGbX01suznv+19N/KzMze+vfFLm7scXPytz8zMu+w188zMu+yI3P+OyHUH3XjuxHcg3X9a7r3HvZb1t9+jqZhhYbNtPbr3JY7scNzepfsNnXD45Vu9+xuWTMnc/4/JZmZufcdlfqd16ycknF3t33nLyyS3S0w3f8y+8froxacXfnbDdl7g1YdtK/11L3Jzz3W/Q1U7+2Lbl4zu93XTtvUm0Vr+hc6XVb+hc2U9MFt6O1jaTta1u36O+WjX0xxdv/jRedt+2epxbuFnsT4/hynG/SLW1YR8PU+uLRUJXa8Hx/ED/K0WacrOndbMku59k3Ry7++VY54n2/N7dr62MrXnS9sPHZH5ZmfL7rszzt+WfbrF+XY72+y5HJdyfL39/XY63n7LuS9xL1fe/SLXfGr4+0dXi6c3uv2wN19+5yO25ov2vn27NFe1K3Jwr2pa4N1e03Rp354r2m/TmXJF/wxOB/VnmaV7z+Ubkl7NMvP9V2fYNX7Rq73/Rqr3/Rav2DV+02m/RmxM9u99d3Z3o2S/HvYmeePtDLK0f3zDRsy1yd6KnH98w0bNdkrsTPdsidyd6dr+8+sJEzydl7k707Mvcnuj5pMzdiZ5+fMNEz7bI3YmeePsTQtuBfHeiJ97/Xq+//6ErP77hla3+/oeuPtm1Nyd69sfq7YmefZnbEz2flLk70bO9zLo30bO/Urs10bObD7g3peBS3p9S8N2Dn9tTCtsWVF2zAaZ903S5LeLrgvExWF4twmVFOV4tUnS9p7xofNxR63r8zkXu3t24vv3egG2Je3c3+xK37m72W+Pm3c0nm/Te3U3enL79JHzXQN5X54eoPs1+6c8HSP99a0isn+boD03CXymiujaranu1iKzukUeRzerYN8y0un3DTOsn24RfTdix2Sa7nwlJ5fXNDy4ffQ79syLrTTMP7vphkd2rnoxd3J6nBH9Znd3VYl0/myitfty74eV4+8bPd689v3mtV/T9mxzf/sjn9k3OJ2Xu3p18dqA4o6fHR3OUXr7jaCtvvwx2f5jcm/nx/fewbs38+O4nWPdmfrYl7s383F+Tj2d+Phl4t2Z+vL7/BZf9yLs55bIvcnPKZVvk7pTLfkluTrl8FiQ3pzk+C5Kb8xP7Vbo5P7EvcnN+Yhv0926mt4f9zfmJfY2b8xPb51j3zlnNv2F+orX3N6m+Pz/xybF6d37ikzJ35yc+K3NzfmJ/o3RrfuKTe61b8xPb30DfWopPfkZ9Zyk+ef8JOV9/eOH/V16i0nidS+v2YpFYvz3S5++wfPFNLOuJ5wM/Xp26+xT13de5bIvc+6zMvsStz8p8UuLOZ2X2+8V5Obe//JqdH4qUV4soRezj/eLxdofAvsStDgHfTR5/Q4mb72Xbb1Ce/rrHq3tlXbGq91cT5HlJXi4S6yN7D3y5CHe+uyL1/VbH+n6r4yevq1w1urYX33i53p/Q1T/8Mk28fbb95I2ot7bF/s2565dx1dvL7/BdPwetUY8Xi/ChnvrjLPyXlsRZkv7qe41j7dxHvZffJvx0s1le3yZBkRfff13q+gVlqV2/o8iL778uzG2W57nNrxXhJYbFdwfbvgg3NOEfF4ndEyzv61ImjuPj33LG7idUpQW/gn56gvXzlftnS+JrSWS3JLs3OrV1WVXb04ST3V+OONaLIeJoH/9YN3Q/aTU36+MUWjdFdteq6xVXz3MAozn2/jHS101V2b2bNXY/e7h9jGj5hmPkkyW5d4zs3hx48xjZLcf9YyS+4xjpv+sxUo/Vvl2PzVcOYveNy6rxv7/C8Ke9a/uW1vVOtx++2RBfWZlY5z05dLMy5RtWpv7OK8Mnfh744lnvMTu63k9npb1YRFkS9e8oEserq7MmWOsP/flfWxJe7GjH6xu2s2Hrq0UKRV7+sqMWHqXV55vnH+cUYzfhdO/meV/i1p1vvP/TqW2JmzfP2w1qvDnY/OOvS8buqdOtd3buF6Nw+116bBZD3w+zbb/VzTDbf7FTeUyj9cOV+aTI0xf22sdbpOx/jH3z26G7IvfmAPclbs0BflLi1hygvH8PL2/fw+8fEd35NFjsvoMV62oq+sePd2L7iyspq29Fav3w8c5u5s7XTHeJ4+NvqG8btYKPbD+XaLdfFy6Njym0pxcXf6VErJEmzy+3/0qJzs8cj0NeKaEHoXE8fffqK0vBm8LHu/5fK9H5AIm8tCLjczvr6VZ/bSn4lp+U589xfqFEeWoteb7l+KlE7N4SWHj7Wnk+MqTfX5OVOWL+2sYofODt+Trh1e35YomgpzL0uUftp+uVePs7gttxtm4C5fkk8PNS7D8gwTh7fqfvF0rEejz3GKq62RbbN+ncaz+M3SelvuMTBc8vFnt+2/IvK7N7t0JzXh7XvH40xf5ZkfXE8sH9ow7G2P6eIVYLhol8fIREf/tjQdtzY19Tp4+D5ZWDrPCFrRK22S/9G1r/o39D6/+nO9efdm79cOf6732E8FE5rb1vNmzfXsbR6bOb0doXIUekfVyk7z5sdXeisB/67kThdjnuThT23Q+a7k4U9t1Pq+5NFG4DQB4X01zE+FOXrBzHT0uyOV7Xwfr0UeNit5NZbN2ay/PN209rsi/B6zeeb1i+UoKuGH165cXPJbps50yZ+jleLNHXr1OeDoyvrMjzie7prP2VEm1NMPzYIfSFEi5cAm23Rfudi0jj3PD83tmvFXHnlqPri0X6wZfs9LU9o42vRvlrY8XWFe7jSJHXloLmr+fJ1i+UeMzkrzPc8/fUv1JC+NCalHitBL8nk3htKWwN2Ae+thRVuXop/lqJRjN79NdWhKPT9LUV4SU5j0x/aUV89fN4aa8U6Guet9fNYN8+2Hz7drivz6Y/f0PgK2uxjsvu9c3N8FoBU66G9bnrvbf7JSo/g31qznq1xNNk5pdKrKFh6vWlEs8fynjqmvlKibKmda0er20La3yl53mO5dUSr+3Up+99POfdl7YFbb/FXtupfPjenj98/6US64uhj2dDL+7U9TK9B760FOObo1xYlJdKPH36NJ7fzv9Tib57piRKdD9/LFvuT3IHc1ZR62trEkx7lXitROOjw68NEmFq5XHFJi+uCL8qOfTtEvLqUjglXhrtj+tUtkXxt5dis1O3z3EepzO+hfEcn/XHJ1J99zyp1/Ul6V77xz9H6bsleXtu93GvymzI06TbT0/G+u4HR8oHVw75+NnaboPaOit26/LhBt0WeUwScAn+4BfL9LruWPvzLzG/VkTXc6UHlleLrC6S/tyK8rUivAvhsZXbi8dqrIHX42me+ddj9W6Rp5cQfLFIrA0b0V4rIofUlcuH+MdlPtm0waZ9+qL8lzbt40h9+gLM4frqKh3Wnsps9tHu41r3t8y2zL3mhX2JW80Ln5T4sHnh/z7+zx/+5U9/+6c///Vf/vD3P/31L//5+Hv/M0r97U9/+Oc///H6v//2X3/5l6d/+/f//z/mv/nnv/3pz3/+07//03/87a//8sd//a+//XFUGv/ut+P6n//j7XEL603j//7DbzL+/2MA/MNj+rw//r89/v/j3rLq+HfjP9bRsf34nzb+Qf7XTcffNvm//zMW9/8B"
|
|
2133
|
+
"debug_symbols": "tb3fju26cW/9Lvs6F6oqklXMqxwcBE7iBAYMO3CcD/gQ5N3PZEnkmGutNFs9Z+8b72F7dw39408SVVP679/+9Y///F///k9/+su//fU/f/vH//Pfv/3z3/705z//6d//6c9//Zc//P1Pf/3L43/979+O8R+i9bd/tH94/LP99o91/NOvf8b1z37+047rn3L9U69/2vXPcv2zXv+86tlVz656dtUrV71y1StXvXLVK1e9ctUrV71y1StXvXLVq1e9etWrV7161atXvXrVq1e9etWrV7161WtXvXbVa1e9dtVrV7121WtXvXbVa1e9dtXzq55f9fyq51c9v+r5Vc+ven7V86ueX/XiqhdXvbjqxVUvrnpx1YurXjzq+fhnXP/s5z/7cf3zUU+OATrBJjxKyjhW+qOm5L/cJviEmNBP0OOYMCrHAJ1gE8qEOqFN8AkxoV8gx4RZWWZlGZX7gDKhThiV6wCfEBMelXWAHhNkgk6wCWVCndAm+ISYMCvbrGyz8hhIOrbPGEknlAl1QpvgE2JCv2AMqBNkwqxcZuUyK5dZuczKZVYus3KZleusXGflOivXWbnOynVWrrNynZXHENOxC8YYSxiD7ASZoBNsQplQJ7QJPmFWbrOyz8o+K/us7LOyz8o+K/us7LOyz8o+K8esHLNyzMoxK8esHLNyzMoxK8esHLNyn5X7rNxn5T4r91m5z8p9Vu6zcp+V+1XZjmOCTNAJNqFMqBPaBJ8QE2ZlmZVlVpZZWWZlmZVlVpZZeYxB0wExoV8wxuAJMkEn2IQyoU5oE2ZlnZV1Vh5j0OoAmaATrtFtVibUCW2CT4gJ1+i2ckyQCTphVi6zcpmVxxi0NsAnxIR+wRiDJ8gEnWATyoQ6YVaus3KdlccYtLELxhg8QSZceWhjNJVH8tsYO2VsujF2TigT6oQ2wSfEhH7BGDsnyIRZOWblmJVjVo5ZOWblmJVjVu6zcp+V+6zcZ+U+K/dZuc/KfVbus3K/KpfjmCATdIJNKBPqhDbBJ8SEWVlmZZmVZVaWWVlmZZmVZVaWWVlmZZmVdVbWWVlnZZ2VdVYeY6fUAW2CT4gJ/YIxdk4YldsAnWATyoQ6oU3wCTGhXzDGzgmzcpmVx9gpPqBMGJVjQJvgE2JCv2CMnRNkwrhYkgE2oUwY10s2oE3wCeMSbCxPXiMOyIvEBJmgE2zCqDyWOa8UE9oEnxAT+gV5uZggE3SCTZiVfVbOi8axgnnVmBAX5HViGTDq9AGPv2pjlcf4avl/+YSY0C8Y4+sEmfCo08aRMMbXCWVCndAm+ISY0E+oY3ydIBN0gk0YlduAOmFU7gN8QkzoF4zxdYJMeFT2Y4BNKBPqhDbBJ8SEfsEYXyfIhFlZZ+UxvlwG1Amjsg7wCTGhXzDGl48VHOPrBJ1gE8qEOmFU9gE+ISb0C8b4OkEm6ASbUCbUCbNymZXH+PIY0C8Y4+uEUbkM0Ak2ISaMvxr7YoyUGKs8RkrYgDKhTmgTfEJM6BeMkXKCTNAJs7LPyj4rjwESY3nGADmhXzBOUifIhFFwrOA4SZ1QJtQJbYJPGJXHmo5BlDAG0QkyQSfYhDKhTmgTfMKs3K/KbQyifgyQCTrhUbnLgDKhTnhU7jbgUbmXAY/KvQ3oF4xBdIJM0Ak2YdQZizGGzAkxoV8whswJcoHlnaYO0kV5rzkWaRzSctRBvigW9UnjsL5IJtX838aSVVmki2xRWVQXtUW+KBb1SW052nK05WjL0ZajLUdeYB2PwdQ8/zYGjb8dt9ltHLUXlUXjb2XssxHxF/miWNQnjaP4oqw3tm7k346tG/m3Y1kiFvVJPf92bMmcDThJF9misqguSsdYt5wTOCkdYy1zVmCQ57TASVmvDxp/q8cgX5R/WwaNv9XHGnne+J8ki3TRqKc6qCyqi9Jhg3xRLFoOXQ5dDl0OtUXl2s6udVFb5Iti0dxHnsf92DNu9doznsf92AtuvigW9Ws7ezkWySJdZIvKonrtDy9tkc+9UGLR2kc5ZnLP5PjI/VHXPsrxkXsmx0dujbq2X1vbr63tl+Mj90Jb+6itfZTjI/dCW/uorX3UlqMthy+HL4evfZRH8bjB8jyKT9JFuQRjG+RRfFJd1Bb5oljUL4o8ik+SRcNhMsgWlUV1UVvki4Zj3KRGHu1JebSfJIt0kS0qi+qitsgXLYcsRx7tZoNkkS5KRxlUFtVF6aiDfFEs6pMsHW1Q1hvbysqiuqgtynp90Kg3bkUjR0AZ2ypHwEmySBcNx7i/iRwBJ9VFbdFwlLEeedyP+43I88e4z4g8f5SxBDkW6viLPH+cVBbVRW2RL4pFwzFuJiLHx0nDMS7fI8fHSbaoLKqL2qJ0xKBY1Cfl+DhJFukiW1QW1UVt0XL4cuR5ZtxFRJ5nTpJFw9HG3spzz0ll0XC0sTXyfDRuJiLPRyfFoj4pR/JJsigd47jKkXxSWVQXtUW+KBb1i3qO5JNkkS6yRWVRXdQW+aJYlI7H3uo5kk+SRbk/yiBbVBbVRW2RL0pHDOqTciSfJIt0kS0qi3KZ+6BY1CflqD1JFukiW1QW1UVt0XLYcthylOUoy1GWoyxHWY6yHGU5ynKU5SjLUZejLkddjrocdTnqctTlqMtRl6MuR1uOthxtOdpytOVoy9GWoy1HW462HL4cvhy+HL4cvhy+HL4cvhy+HL4csRyxHLEcsRyxHLEcsRyxHLEcsRx9Ofpy9OXoy9GXoy9HX46+HH05+nTIcRyggAoaWMAKNtDBALEJNsEm2ASbYBNsgk2wCTbBptgUm2JTbIpNsSk2xabYFJthM2yGzbAZNsNm2AybYTNsBVsmwpg+eaCCBtYryB7YQAcD7AvrAQqooIEFxFaxVWwVW8XWsDVsDVvD1rA1bA1bw9awNWyOzbE5Nsfm2BybY3Nsjs2xBbbAFtgCW2ALbIEtsAW2wNaxdWwdW8fWsXVsHVvH1rH1ZZPjAAVU0MACVrCBDgaITbAJNsEm2ASbYBNsgk2wCTbFptgUm2JTbIpNsSk2xabYDJthM2yGzbAZNsNm2AybYSvYCraCrWAr2MgSIUuELBGyRMgSIUuy/UTGRKdkB8pEA4dtTNpKtqJMbGC2UtTEAPvCzJILBVQwbT2xgBVsoIMB9oWZJRcKqCA2x+bYHJtjc2yOLbAFtsAW2AJbYAtsgS2zxHMPZZacmFlyoYAKGpgtKpJYwQZmo4omBtgnno0wF2bjS7ZdHavC1epyYoBZYezYq+HlRAGz6aUlGljACqbNEx0MsC/MJBgz2ZItLjImmiWbXCY6mNv3/LO+MMf8hQIqaGABs1XnSGyggwH2hTnmLxRQQQMLiK1gK9gKtoKtYssx33Nn5ejuuY9zdF/YQAcD7AtzdF8ooIIGYmvYGraGrWFr2BybY3Nsjs2xOTbH5tgcm2MLbIEtsAW2wBbYAltgC2yBrWPr2Dq2jq1j69g6to6tY+vLli02EwVU0MACVrCBDgaITbAJNsEm2ASbYBNsgk2wCTbFptgUm2JTbIpNsSk2xabYDJthM2yGzbAZNsNm2AybYSvYCraCrWAr2Aq2gq1gK9gKtoqtYqvYKjayxMgSI0uMLDGyxMgSI0uMLLEzSyzRwAJWsIEOBtgXnllyooBpa4kGFjBtJbGBDgbYF55ZcqKAChpYQGyB7cySSAywL8zWvPFsUbLBaKKCBhawgg10MMA+MVuOJgqoYNpaYpsLWc58GKfQcubDiaNC9u9me9FEAwtYwQaO5R0PrCRbjSb2hdkue6GAChpYwAo2EJtiywba8ahMsgVpooBps0QDC5i2kthABwNMW27qbOnLjuZsQ1LJTZ1NfBdWsIGjrubmy4ZazbXIllrNxcmmWk1bttVeqKCBw6a5ONlee2EDHUxbLm9212ouTvbXjo5LyQ4ltVyc7LG1VGSX7YUVbKCDAfaF2XFruQzZc3uhrcPzHPMnVpDj1x0McI3Cco75EwVUEFtgC2yBjTGf7U5quc2yGffEHPMX5grlv5tj/kIDC1jBBjoYYJ+YbVATBVRw2MajLcl2qIkVbKCDAQ7beOgl2Ro1UUAFDSxgBRvoYIDYFFvmQ7FEBQ1MW01MW0tsYNo8McC05YbKfLhQQAUNLGAFG+hggNgKtoKtYCvYCraCrWAr2Aq2gq1iq9gqtoqtYqvYKraKrWKr2Bq2hq1ha9gatoatYWvYGraGzbE5Nsfm2BxbNu+PR7QPbKCDAa5zbHZ5TRRQQQMLWMEGrjN69ng9bg4T11k6u7q05ijMfLiwgQ4G2Cdmh9fEbCXXxLV927HWuB0B9oXnmD8x29MtUUEDC7j2ZhNs4mCAa282PUABdS3DOeZPLGAF21qG8wc1JwaIjTHfGPONMd8Y840x3xjzzdax04wtaWxJY0uebf65DIUtWdiSjPnGmG+M+caYb4z5xphvjPlW2W/nmD+RLVnZkpX9lmP+QrYkY74x5htjvjHmG2O+MeYbY74x5ltjvzW2ZGNLNrZkY0vmmB/PsiVb4SbmlqyJBhawgrluuQw55i8MsC/MMX+hgAoamLZcyBzzF+b1w4l9jcIc86O3QbJhbqKCBrKHOnuos4c6x3rnWD+TYKAfB7j2kB8KGljACjbQwQDX8ZB9dTraxCUb6yYWcNQd7RySvXWP+alEBwPsCzMfLhRQQQMLmFdtKT5nD07sC8/ZgxMFVNDAAlawgdgMm2Er2Aq2gq1gK9gKtoKtYCvYCraKjTnHs0vvQmwVW8VWsVVsFVvF1rA1bA1bw9awNWwNW8PWsDVsjs2xOTbH5tgcm2NzbI7NsQW2wBbYAltgC2yBLbAFtsDWsXVsHVvH1rF1bB1bx9ax9WU7exIvFFBBAwtYwQY6GCA2wSbYBJtgE2yCTbAJNsEm2BSbYlNsik2xKTbFRpYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkmyk1NHEKtlJOdHAAlawgQ4G2BfmHcqF2Aq2gq1gK9gKtoKtYCvYKrbMknxonN2VOjpgJdsrJxawgg10MMC0ne+cOEAB05bivEO5sIBpa4kNdDDAfAo+LvPPfssLBVTQwAJWsIEOxsJMjewGyC5Lbef/amABK9hABwMc2yyb5LLbcqKAwzZ+dijZcDmxgMPm+e6PvEO50MEAc5tJvvHjAAVU0MACVrCBDsbCnMFwS1TQwFyLkljBBuZa1MQAc5u1fEvJAQqYtnyfSd6hXFjACjbQwQDTFvkqlAMUUEEDCzh/mKNnK+V4GKJnK6Um5lXFhQIqaGABKzh/jaNnV+WFAfaFeVUhJwqooIEFrGADHYyFjT3f2PONPd/Y840939jzjT3f2PONPe/seWfPO3ve2fPOnnf2vLPnnT3v7Hlnzwd7PtjzwZ4P9nyw54M9H+z5YM939nxnz3f2fGfPd/Z8Z8939nxnz3f2fF97/uyUlBMFVNDAAlawgQ6uPS/nmO+JChpYwLEv4khsoIMBjrUYP8LUsyfyQgEVNLCAFWygL8zRPX5LrNn9OFFBAwtYwVyLmuhggH1hnv0vFFBBAwtYQWwFW579RyOZZvfjhXn2vzBtnqiggWnLPZRn/547IM/+ozlBs/txYoB94fnKoBMFHLaeR8n54qATC1jBBjoYYF94vkboRAGxOTbH5tgcm2NzbOeLhXL7nq8WOlHAtOU2O18wdGIBK9hABx82O3JTj3y4cOTDRAEVNLCAFWygg9j6smX3ox2SKKCCabPEtLXECjbQwQD7QjlAARVMmycWMG2R2EAHAxw2yUXPVxVdKKCCBhawgg0ctgzz7KqcmLbcOvn6ogsFVNDAVJTEBjoYYF9YUpGbpAiooIEFrGDackPlW40uDLAvzHcbXSigggYWsILYKrZ811G+8y0bLC/M9x1dOGx5Cs0Gy4kGDlueC7PB0vJUlw2WprmhRoBMDLAvHAEyUcA8USXVRW2RL4pFfVKO4OulcgcoYD7PSLJFZVFd1Bb5b/PtdFmxJeZm8MRyvh5Ls13xorZobIOSFIv6pByJJ8kiXZSSSCxgbuue2EBfmAPOjsRRYbSz6Pk2sAtHBUsaBcZvnPV8JdiFAfaFObIulLlJTBfZorKoLmqL+tqIOWSul/rlguYy5ZC5MBc0t0UOmQtzSbPYfBWYrneB6XoZmK63gel6HZiu94Hp+fqvC3Mtc0HmC790vfFLsyfwovHXuRfy4D+pLmqLfFEsSkliHvcXDstZfJw4Jxo4ipbcm57HTe7COMBRIZc9dG2YMLCAFcyyuTfDwQD72uA5ki4UEFvH1rF1bB1bx9ax9WXL/r6JAi5b9vdNLGAFG+jXoZ5vGDsP32wFvFAOUEBdmOepkouQg+nCAub1RVJb5ItiUZ+Ul7snySJdZIvKouWw5bDlsOWw5chz1GgJ0nxj2EQFc2UisYBjI5bccjngLnQwwL4wh9yFAg7baMrQbNebWMC05fLmYLzQwWGruR9yiJ6YQ/TCDPYkXWSLyqK6qC3Kinls5MiruTtz5NVcfi9gBRs4lrSe7wcNsC/MUXqhgHmhlZSy3PI5Si+sYAMdDLAvzFF6oYAKYuvYOraOrWPLUdpyk+UoTcyOvIkCKmjgsI0n1JodeRMb6GCAfWEO0wsFVNBAbIItT5VjFlazI29igGkb+zU78iYKmLaWaGABK5i282WwaRuHc/be2ZgP1Oy9m6iggaOu5+bLy9ScvcneO8sZmey9s5x7yd67iX1hRsCFaTvfRKuggQVMWy5vjvucBciGO8vJxWy4s8jFyXGfN7fZcDdRQQMLWMEGpu18S24szME+psw1u+wmKmhgKnLRz5PyiQ10MOaQr2cQJOaJ+UIBFTSwgBUcdfPGPfvpLswguDAvK3JLZhBcaOComzfu2U83caxF3hNnP93EANOWy5BJcKGAChpYwAqmLY+zTIILA+wTs/duooB5qpHEPDO3xHUd0A4HA+wLz2vjEwVUMK8DSmIBK9jAvA7wxADXdV87L5pPFFBBAwtYwbzFydXMq+aemGP+QgEVNLCAFcx9kYoc8xcG2BfmmNcTBVTQwAJWsIEOxsIc6KMzXLPLbqKBuRY9sYIN9PHi3CMxwD4wD5gx5icKqANzz48xP7GAFWyggwGmbQyc7LKbKKCCBhYw93wumbPnnT0f7Plgzwd7PtjzwZ4P9nyw54M9H+z5YM939nxnz3f2fGfPd/Z8Z8939nxnz/e157PDLfJsmh1uE+vAmtjAvv6FMbImCqgL8424R/5ZvhP3wgbmLsxlyDfjXtgX5ttxj54o4NiFOW2UjWYTCzhsORWUjWYTHQywL8w35l4ooIIGFhBbxVaxVWwVW8OWh33OQWXzWMnX8mfzWBnvv9NsHpvYF+YBfmEubyQqaGABKzhsmtvsfH/1iQH2hedbrE8UUEEDC1hBbIEtsAW2883WR6KAChpYwAqmTRMdjIlxvr76xPwXLDHA3NTjkMt+r4kC5uLURAMLmIvjiQ1MWyQGOGx5+5D9XiUjKPu9St7XZL/XxGHLM2/2e02sYAMdDLAvzJdbX5i2XMh8wXVOZWS/V8lJi+z3Knn2z86ukifs7Oya2Bfm4L1QQAUNzGK51XNsXtgX5ti8UEAFDcxiuQNyZOWNcTZYTaxgA/PPcuVzvF3YF+Z4u1BABQ0sYAUbiM2xObbAFtgCW2ALbIEtsAW2wBbYOraOrWPr2Dq2jq1j69g6tr5s2WA1UUAFDSxgBRvoYIDYBJtgE2yCTbAJNsEm2ASbYFNsik2xKTbFptgUm2JTbIrNsBk2w2bYDJthM2yGzbAZtoKtYCvYCraCrWAr2Aq2gq1gq9gqtoqtYqvYKraKrWKr2Cq2hq1ha9gatoatYWvYyJJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0leW2LGyxI6VJXasLLFjZYkdK0vsWFlix8oSO1aW2LGyxI4Dm2ATbIJNsAk2wSbYBNsZFZGooIEFrGADHQywLzyj4kRshs2wGTbDZtgMm2EzbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsDVvD1rA1bA1bw9awNWwNW8Pm2BybY3Nsjs2xOTbH5tgcW2ALbIEtsAW2wBbYAltgC2wdW8fWsXVsHVvH1rF1bB1bXzY5DlBABQ0sYAUb6GCA2ASbYBNsgk2wCTbBJtgEm2BTbGSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImRJ9lqV8XDHsteqjOdUlr1WZXyuxrKrqozHOJYtT+X6TpeCBg7FeAJi2fI0sYEOBtgX5iC7UEAFDcQW2AJbDpHxrMOyYWlinZhNSGVM31g2IU1UMCt44qgwnlRYNiFNbKCDAfaFedhfKKCCBmITbIJNsAk2wabYFJtiU2yKTbEpNsWm2BSbYTNsediP3nLLJqSJBaxgAx0MsC/Mw/5CAbEVbAVbngDHEybLvqEynjBZ9g0Vz92dg+FCBwPsC/NUd6GAChpYQGwNW8PWsDVsjs2xOTbH5tgcm2NzbI7NsQW2wBbYAltgC2yBLbAFtsDWsXVsHVuO4/Fcz7JxaWIFG+hggH1itjRNFFBBAwtYwbR5ooOx8BzdkZgVeuKoMJ4tWnYxTXQwwL4wx/GFAipoYAGxKTbFluN4PN+0bHm6MMfxhQIqaGABK9hAB7EZtoKtYMtxPB63WjZJTSxgBRvoC88vvJXErFATs0LulhzzFzbQwQD7whzzFwqooIHYGraGLcd85AGTY/7CvjDH/IUCKjjq9tybOY57br4cxyfmOL5wVBgPVu38xuKFBhawgg10MMC+MMfxhdg6thzHPXdLjuMLK5i2HGQ5ji9MW65xjuPx0M3O7zBe+LDV8UzNsmlqooFloCZWsA20RB9YEmNgTewDhzi7piYKqKCBBaxgAx0MEJtiU2yKTbEptvxG95GbJD/LPR4KWTZa1fH4x7LTamIBx0JKbpL8SveFDgbYF+YXuiU3X36UW3Lz5Xe582uhJT/NfWGAfWF+o/tCARU0sIBpa4kNdDBtuUny04wn5scZLxQwbbnN8hONFxZwXVpmJ9VEB/NCNrdkDt4Tc/BeKKCCBqYtd1Z+uvHCBjoYYF+YX/++UEAFDcQW2AJbYAtsga1j69g6to6tY+vYOraOrWPry5Z9VxMFVNDAAlawgQ4GiE2wCTbBJtgEm2ATbIJNsAk2xabYFJtiU2yKTbEpNsWm2AybYTNshs2wGTbDZtgMm2Er2Aq2gq1gK9gKtoKtYCvYCraKrWKr2Cq2iq1iq9gqtoqtYmvYGraGrWFr2Bq2hi0/+zoezVr2aE3sC/PjrxcWMP9MEmNhntHzTJZtVRMrmP+uJvaFOaQvFFBBAwtYwQY6iK0vWzZQTRRQQQMLWMEGOhggNsEm2ASbYBNsgk2wCTbBJtgUm2JTbIpNsSk2xabYFJtiM2yGzbAZNsNm2AybYTNshq1gK9gKtoKtYCvYCraCrWAr2Cq2iq1iq9gqtoqtYqvYKraKrWFr2Bq2hq1ha9gatoatYWvYHJtjc2yOzbE5Nsfm2BybYwtsgS2wBbbAFtgCW14e5Ifq25klJ/aFZ4B4ooIGpqInVrCBQzE6Piy7sSb2ifnOs4kCKmhgASvYQAcDxCbYBJtgE2yCTbAJNsEm2ASbYlNsik2xKTbFptgUm2JTbIbNsBk2w2bYDJthM2yGzbAVbAVbwVawFWwFW8FWsBVsBVvFVrFVbBVbxVaxVWwVW8VWsTVsDVvD1rA1bA1bw9awNWwNm2NzbI7NsTk2x+bYHJtjc2yBLbAFtsAW2AJbYAtsgS2wdWwdW8fWsXVsHVvHRpY4WeJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlQZYEWRJkSZAlcWaJJDbQwbRZYl94ZsmJaauJCqYtEgtYwQY6mLae2Cdm+14dP121bN+royHUsn1v4rCNzk7L9r2JFRy28TtLy/a9iQEO2+jLtGzfmyigggYWsIINdDBAbIpNsSk2xabYMiqylSf78Go+ds4+vFpym2UoXFjACo6FzOfS2Yc3McC+MEPhwmGruVEzFGpuvgyFCwtYwbTl8mYo1FyGDIV21u0LMxRGS79lH17Nh8bZhzdx2PL5cfbh1ZbFMhROzNGdD0uzoa7m08lsqJtYwLE4+cwym+Sq5/LmiL1QQQMLWMEGOhhgXxjYAltgC2yBLbAFtsAW2AJbx9axdWwdW8fWsXVsHVvH1qetZJPcRAEVNLCAFWyggwFiE2yCTbAJNsEm2ASbYBNsgk2xKTbFliN2PGMt2UU3sYINdDDAvjDP/uOpZ8kuuokKluv4Ldk6N7GBDgbYF+bovlBABQ3EVrAVbAVbwVawVWwVW8VWsVVsFVvFVrFVbBVbw9awNWwNW8PWsDVsDVvD1rA5Nsfm2BybY3Nsjs2xOTbHFtgCW2ALbIEtsAW2wBbYAlvH1rF1bB1bx5YBMp6Nl2ydm+jgsMX57/aJ2To3cdjGT3tLts5NHLbxBLpk69zECqbNEx0MsC/MALlQQAUNLGAFsQk2wSbYFJtiU2yKTbEpNsWm2BSbYjNshs2wGTbDZtgMm2EzbIatYCvYCraCrWAr2Aq2gq1gK9gqtoqtYqvYKraKrWKr2Cq2iq1ha9gatoatYWvYGraGrWFr2BybY3Nsjs2xOTbH5tgcm2MLbIEtsAW2wBbYAltgC2yBrWPr2Dq2jq1j69g6to6tY+vLpscBCqiggQWsYAMdDBAbWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpbYmSWR2CeWM0tOHLbRc1rOXssLDRy20XNazl7LCxvo4LCN3tBy9lqO9/qUs9dyvFOnnL2WFypoYAEr2EAHA+wLFVtmyeg5LWev5YUGFrCCDXQwwL4ws+RCbIbNsGWWjMbYcrZoXthABwPsCzNLLhRQQQOxFWyZJaP3tpztnBcG2BdmllwooIIGFrCC2DJLeh5ymSUX9oWZGhc+KrQjj76RD+3Ig2vkw8QA+8KRD+3Io2/kw0QFDSxgBRvoYIB9YWALbIEtsAW2wBZpyyESDqYtj9/oC/sBpi03alfQwAJWsIEOBtgnZovmRAEVNLCAFVy27MBso4u5ZK9lG13MJXst2/j+dMley4kNdHAs5GhSLtlreeEY6BMFVDAjsyQWsIJpy4VUBwPsC+0ABUxbrtsY6BMLWMEGOhhgX1gOUEBsBVtJW27UUsEGDtvoJizZazlx2DS3wxjoE4dttP2U7LWcOGzj9VAley0nVrCBDgbYF7YDFFBBbA1bw9awNWwNW8Pm2BybY3Nsjs2xOTbH5tgcW2ALbIEtsAW2wBbYAltgC2wdW8fWsXVsHVuGgubxm6FwoYMBpm0cRtnkOVFABQ0sYAUb6GCA2ASbYBNsgk2wCTbBJtgyNcYT6JKNm208ay7ZuDlxVBgvHyrZuDnRwQD7wsyHCwXMupa49mY2Y57bN5sxL8wxf6GAY43HGwBLNmNOLGAF17HTCrYS4Dp2Wj1AARW0tQznmD+xgg30tQw55i/sCxnzjTHfGPONMd8Y840x3xjzra0jtTW2ZGNLOlsyx/y5DM6WdLYkY74x5htjvjHmG2O+MeYbY74x5ts55nMZgi0ZbMlgSwZbMsf8aGQo2Yw5Mbdk1s0xf6GACua65bGeY/7CCjbQwQD7xOzLnDhsoxWiZF/mxHWAZzNmG10RJZsxJzoY4Do0shlzooAKGljACq6d5eJggGtnZTPmRAEVNLCAuRaaGGBfmMO/5HbI4V9yyfLy4EIDC1jBBjoYYF+YoTDe+1WywXJiASuYdXMtMhQuDLAvzFDI67NssJyooIEFrGADfWHOE+S1/dlKeaGCuRYnFnDUrXmc5fC/0MGxFjWPqBz+J+bwv3CsRc09lMP/QgMLWMEGOhhgX5jD/0Js51PPXMjzqeeJDXQwwL7wfOp5ooAKGoitY+vYOraOrS/b2TR5oYAKGljACjbQwQCxCTbBJtgEm2ATbIJNsAk2wabYFJtiU2yKTbEpNsWm2BSbYTNshs2wGTbDZtgMm2EzbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsZ0dFGMMnU2TFwqY47gmGljAHMeR2EAHcxz3xL7wTI0TBVTQwAJWsIEOYnNsgS2wBbbAFtgCW2ALbIEtsHVsHVvH1rF1bB1bx9axdWx92bJpcqKAChpYwAo20MEAsQk2wSbYBJtgE2yCTbAJNsGm2BSbYlNsik2xKTbFptgUm2EzbIbNsBk2w2bYDJthM2wFW8FWsBVsBVvBVrAVbAVbwVaxVWwVW8VWsVVsFVvFVrFVbA1bw9awNWwNW8PWsDVsZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJX1lST1WltRjZUk9VpbUY2VJPVaW1GNlST1WltRjZUk9VpbU48Am2ASbYBNsgk2wCTbBJtgEm2JTbIpNsSk2xabYFJtiU2yGzbAZNsNm2AybYTNshs2wFWwFW8FWsBVsBVvBVrAVbAVbxVaxVWwVW8VWsVVsFVvFVrE1bA1bw9awNWwNW8PWsDVsDZtjc2yOzbE5Nsfm2BybY3NsgS2wBbbAFtgCW2ALbIEtsHVsHVvH1rF1bB1bx9axdWxkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkSXZ2PmaUE/vCzJILh228zKdmZ+fEYRs/7qnZ2TmxgsM2fudTs7NzYtpKYp+YnZ0T0+aJCqatJRawgmnriQ4O23i7Yc3OzgszS0ZXe83OzokKDtv42UbNzs6JFWyggwH2hZklFwqoIDbFptgUm2JTbIrNsBk2w2bYDJthM2yGzbBlanhu9cwHzz2U+TB+yVKzW3OigwGO5R2/GqjZrTlRQAUNHLbIoyTz4cIGOhhgX5j5ELkWmQ8XKmhgASvYQAcD7Asdm2PLfIjcfJkPFxYwbbmhMh96HrSZDxcO2+gLqtmteWHmQ8/jN/PhQgUNLGAFG+hggH1hx9axdWwdW8fWsXVsHVvH1pctuzUnCqiggQWsYAMdDBCbYBNsgk2wCTbBJtgEW+bDaByq2a15YebDhQKmrSUaWMAKNtDBAPvCzIcLBcRm2AybYTNshs2wGbaCrWAr2Aq2gq1gK9gKtoKtYKvYKraKLVNjNFDV7MBs42lJzQ7MCzMfxkfJanZgTlTQwAJWsIGPuj76rmp2VV4HQY75cx/nmL+wgg30UUESA+wLx5ifyJHKmDfGvDHmjTFvjHljzBtj3oIjtXOkdo7Uc8yfyLqNMe+jMatmV+XENjDrdgcD7BOzq9LH5+drdlVOVNDAAlawgQ6mzRP7QpG5s7KV0keHVc1WyokFrGCbOyBbKScGuHZWtlJOFFDBtbOKFrCCDXQwwBVixQ5QwFyLnljBBo61kNwOY0i75JKNIX3hGNITBVTQwAJWsIFZdxwa2R45UUAFs26uRS1gBRuYlx25Y3OgX9gX5kC/UEAFDSxgBcdDlppLlk3VJ2ZT9YUCKmhgASvYQAexObbAFtgCW2ALbIEtsAW2wBbYOraOrWPr2Dq2jq1j69g6tr5s53stLxRQQQMLWMEGOhggNsEm2ASbYBNsgk2wCTbBJtgUm2JTbIpNsSk2xZaPUMfLGer5XssL+0LLkdUSBVQwbZZYwArmyPJEBwNMW+L5iokTBVTQwAJWsIEOBoitYqvYKraKrWKr2Cq2iq1iq9gatoatYWvYGraGrWFr2Bq2hs2xOTbH5tgcm2NzbI7NsTm2wBbYAltgC2yBLbAFtsAW2Dq2jq1j69g6to6tY+vYOra+bOcLNS8UUEEDC1jBBjoYIDbBJtgEm2ATbIJNsAk2wSbYFJtiU2yKTbEpNsWm2BSbYjNshs2wGTbDZtgMm2EzbGRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZkm2iPn6JVbNNdKKDaeuJfeF5j3OigAoOWz6YOttELxzrls+zzjbRCx0ctnwEdbaJnphzION3XzXbRCcqOOYqNBU5B3JhBRvoYIB9Yc6MXCiggtgqtoqtYqvYKraKrWFr2Bq2hq1ha9gatoatYWvYHJtn3ZKYFWpiVmiJAfaFOQV6YS5vHiWhoIEFrOCwjd8w1Wz9nBjgsFnu2JEPEwVU0MACVrCBDga4bNn6OVFABQ0sYAUb6GCA2ASbYBNsgk2wCTbBJtgEm2BTbIpNsSk2xabYFJtiU2yKzbAZNsNm2AybYTNshs2wGbaCrWAr2Aq2gq1gK9gKtoKtYKvYKraKrWKr2Cq2iq1iq9gqtoatYWvYGraGrWFr2Bq2hq1hc2yOzbE5Nsfm2BybY3Nsji2wBbbAFtgCW2ALbIEtsJElnSzpZEknSzpZ0smSTpb0M0s00cEA+4XtOLPkRAEVNDBtNbGCDUybJQbYF55Z4okCKjhs4+dXLVs/J1awgQ4G2BdmllwooILYFJtiyywpuW5nauRCnklwYgUb6GCAVMgkKCcKqGAuWSQWsIINdDDAvjCT4EIBFcRWsWUSjF94tWzcnOhggH1hJsGFw1bz2MkkuNDAAlawgQ4G2BdmElyIzbFlEtQ8+jIJLqxg2nIfZxKMD/i2bNycmLbcLZkEF6YtN1QmwYUGFrCCDXQwwL4wk+BCbB1bx9axdWwdW8fWsfVly8bNiQIqaGABK9hABwPEJtgEm2ATbIJNsAk2wSbYBJtiU2yKTbEpNsWm2PKqYtxftGzcnNgX5lXFhSt3snFzooEFrGADHQxwpVy2aPpoyWty5kNNHBXG+7ZbNmNODLAvzHy4UEAFR91x59Oksn0ra9xY43PMn6jgWONxc9WywXJiBRvI3mzYGnvT2ZvO3nT2prM3zzGfy3CO+RMbyN7MMX8uQ475E3PMX4iNMS+MeWHMC2NeGPPCmJfg2Am2ZGdLdrZkjvlzGTpbsrMlGfPCmBfGvDDmhTGvjHllzOux9pueY/7EAlZw7bdssJwYIDbGvDLmlTGvjHllzCtjXhnzKmu/qQS4tqTqAQqYW7IkGphbsiZWsIEO5rrlMuSYPzHH/IUCKmhgASuYtlzIHPMX5vVD/gt5pZCjMF+S6eOnnC1fkjmxgBVkDxX2UGEPlXWsaz1AARVkD1X2UGUPVfZQdTBAjofG8dA4HjIfRkduywbLiQ0cdT23Q+aD55JlPpyY+XChgAoaWMAKNjDr5lGSSXChgApm3TxKMgkurGADcwbjxAD7wkyCCwVU0MACVjC3TkvsE7NpcqKAuRaeaGABKzjmxPIa8XzF5YUB9oXn1zZOFFBBA3PrnOhggH1hju4LBczl7YmjwmgQbtny6OMr2S1bHi/MEXvhqBCaqODYDuMd5S1bHidWcCzv6CBu2fI4McC+MK/4LxRQwbTVxAJWsIEOBji2uuYK5Yg9t0OO2AvZOjliI/d8jtgLHQywL8wRG3kQ5Ii9UEEDcy3SluP4wgYOW8/lzXF8YV+Y47jnvshxfKGCacs9n+O4527Jcdxzo+Y47rl18jx/YSzMcdxz3XIcX2hgAbNurluO2PPgyhF7Yo7YCwU0cAwcyYU8P+B7YoBjF45PQrfz7ZEXCqiggQWsYAN9YZ6ER1trO5sbL1TQwFz5nljBBjo41uI4sS88v8l9ooAKGljACjawX19ub9nGGMeJAipoYBkoiRVsoIMB9oXlAOX6OHzL5saJBhawgg10MMC+cJyEJ+ZaaGIBK9jAXAtLDLAvbAc41iJTI5sbJxpYwAo20MFY6Lkv8jhzBQ0sYAUbOOrmKSmbGyf2heMkPFFABcda5IkqmxsnVrCBDsbCnmuRK9RzebNur2ADs0Ienj3APjEbFicKqKCBBaxgAx0MEJtgE2yCTbAJNsljxxMD7Av1AHPrRKKCBhawgg10MMC05eKco/tEARUcttGO3LI1cWIFG+hzZ9VzdJ/YF56j+0QBFTSwgBUcdUfrcssmxAvHOJ446o5+5ZZNiJFpn02IEwtYwVyLkuhggH1hjm7JPdTSlhuqKWhgASvYQAcD7Av9ALHlmNdczRzzFxawgg10MMC+cIz5icOWl7fZhBiaaxwGFrCCDXQwwL6wH6CA2MYZPSwPrsyHCyvYQAcD7BOzCXGigMOWc+bZhDixgBVsoIMB9oWStpYooIIGFrCCDXQw00gS+0I9QAEVNDDremIu7wiFbCycmBVyLUxBAwtYwQY6GGBfmGN+vIivZQthlNwXOeYvrGADHQywL8wkKLmamQQXKmhg2jSxgg10MMC+MJPgwrTlumUS5IxhthBOLGAFG+hgrH3R2EPOHsokuFBBAwtYwQaOfZEDPZsFJwqYa5GHXI75C3MtskKO+QsbmGuROzbH/IV9YY75fGiRzYITFTSwgMNWc+vkmL/QwQD7xGwWnCigglm3Jo4jdbRCtGz1i3wmka1+Ew3MJfPECuaSRaKDAeaSje2QrX4TBVTQwAJWcNhyOjpb/SYG2Bfm6L5QQF1rnGf0nIPOpr6JDgaYdcdRkk19EwVU8LEWj1uaxAJWsIEOBtgX5vX6iWNc9JwmzHa4iQIqaGABK9hABwPEFtgCW2ALbIEtsAW2wBbYAlvH1rH1rJuHXK9gm5itaJHziNmKNjHrjgMxW9EmCqiggQWsYAMdjIV5VJ/iPKovNLCAWbcnNnDUzanVbDrrefrKprMLx1E9UUAFDSxgBRvoIDbDVrAVbAVbwVawFWwFW8FWsBVsFVvFVrFVbBVbxVaz7hiF2UjW88ybjWTnYZSNZBMLmPuiJDbQwQD7wnMUnpi2ExXM5U1FjsILK5jLO+I1G8l63iJmI9nEXN5cixxZ56GRI+vCBnLs5MjKWctsJLswR9aFjIDOCOiMgI6tY+vYOrYeE7PLq+dtX3Z5XZhD78Ihzgmr7PKaaOAQ58xpdnlNHOKcOc0ur4kBDlvOnGaX10QBFTSwgBVMW0l0MMC+MAfkhQKuXdjPoZcLeQ69SHQwwLWzejlAARVcOyv7uSZWsIE+B0M/h96JfeE59E4UUEEDC1jBmCGWnVsXtmMdGm0N6ezcmmhgASvYQAcDXAGSnVsTsTk2x+bYHJtjc2yOzbEFtsAW2AJbYAtsgS2wBbYcpuex09nqfZ1Ye2+ggwHOE6tnN9ZEARU0sIAVbKCDAWITbIJNsAk2wSbYBJtgkxnFnt1YF+oBCqiggbklT6xg7otUnCfhE2PhebptieUa3X6co/vEXF5LnOHohwXYF5YDnKPbjzW6/ThPrCfO0e3HGt1+rNHtR8FWsBVsFds5uhPPg7YnKmhghuP571awgRmOkhhghqMOzDPOhQLOKPZsMppYwAo20MEAZxR7NhlNFFBBAwu4dqEc8/rB5ZhR7CIHKKCCBhawgmtnybpydFlXji7SF+qMYs92ookKGljACjbQwViYdz65L7IZaKKDAfaFeedzoYAKGlhAbAVbwVawFWwVW8VWsVVsOa+RR1+2E01soIMB9oU5r3GhgAoaiK1ha9gatoatYXNsjs2xOTbH5tgcm2NzbI4tsAW2wBbYAltgC2yBLbAFto6tY+vYOraOrWPr2Dq2jq0vWzYZTRRQQQMLWMEGOhggNsEm2ASbYBNsgk2wCTbBJtgUm2JTbIpNsSk2xabYFJtiM2yGzbAZNsNm2AybYTNshq1gK9gKtoKtYCvYCraCrWAr2Cq2iq1iq9jIEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLlCxRskTJEiVLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEjuzxBLTVhIdDLAvPLPkRAEVNLCAFcR2ZoknBtgXnllSEwVUMG09sYAVHLbRZOTZFDUxwL4ws+RCARU0sIAVxNawNWwNm2NzbI7NsTk2x+bYHJtjc2yBLbAFtsAW2AJbYAtsgS2wdWwdW8fWsXVsHVvH1rF1bH3ZssNqooAKGljACjbQwQCxCTbBJtgEm2ATbIJNsAk2wabYFJtiU2yKTbEpNsWm2BSbYTNshs2wGTbDZtgMm2EzbAVbWeO4nPkQiQ4G2Bee+XCigAoaWMAKYqvYKraKrWFr2Bq2hq1ha9gatoatYWvYHJtjc2yOzbE5Nsfm2BybYwtsgS2wBbbAFtgCW2ALbIGtY+vYOraOrWPr2Dq2jq1j68tWjwMUUEEDC1jBBjoYIDbBJtgEm2ATbIJNsAk2wSbYFJtiU2yKTbEpNsWm2BSbYjNshs2wGTbDZtgMm2EzbIbtzAdLFFBBAwtYwQZmGrXEAPvCzJLRbexnl9eFCraZUWcT14UB9oVnVJwoYBbLdTsvJU4s4JhYGs2unk1c/chFz7n4CwPsC3Mu/kIBFTSwgBXElnPxR26SnIu/sC/MufgLBVTQwAJWcJ0kKpcSlUuJbOLqR26SnNa8UEAFDSxgBRvoYIDLlk1cEwVU0MACVrCBDi5b9jH10XXi2cc0McCxOOMnrZ4vSJsooIIGFrCCDXQwQGwVWz5sGi0snr1JfbSweDYkXf9rPmEazSqeDUl9dKh4NiRNLGAFG+hggLk4uaHyqL5QwLT1xHzOcCTmvH1uvrPxQhPbWvQ8qi9khfKgtaybB+2FBaxgAx0MsC/Mg/ZCAdOWi54HbclFz4P2wgo2cNhKrlsetBf2idmFNFFABQ0sYBYbGyobkvpoL/PsQuqjT8yzC6mPX6F6diFNbKAvzJn0C7NCSyxgVvDEFI9Nkq8A66Nzy/MVYBMrmLvwSHQwwL7qnqMl/9dztJyooIFlrXGOlgsb6Asr65aPdM4Vyge2F7LGeYXXTswumVyyvMK7sC/MK7wLBcxultw6eS3XcjvktdyFDgbYF+a1XD53yh6iiQoaWMAKNnDYPA+YDOgL+8K8lrtQQAUNLGAq8ujLC7gLA+wT8z1aEwVU0MACVrCBDqbNEvvCvIC7UEAFDSxzq2fz0sQGrp119iblA9DsQop81JldSBMD7AvzmisfmWUX0kQFDSxgBRvoYNpaYl+Y11wXCqiggQVsa93yQisfxWWT0URZK5SXVBcaWMBc9Nxmec11oYN5zXUk9oV5zXVWaNgatoatYcvbswvZLY3d0tgtjd3i2BzFeRWUC5knFMklyxOK5CGXJ5QLG+hggH1hnlAuFFBBA7HlCUXySM0TyoUOBtgn5nupJgqooIEFrGADHUybJPaF+cj3QgEVNLCAFWygg9gEWz7cHb+08LPfaPR7+tlvdGFfmP1GFwqooIEFrGADU+GJqRjj4mw9ulBABVPREwtYwQY6GGBfmGeyCwVUEFvFVrFVbBVbxZYNSToO+7Mh6cKh0NwBeTU4msD97De60MFRTPOAyavBE/Nq8EIBFTSwgBVsoINTEWenznhDXZydOuPXKXF26lxYwAo2MOu2gXlUj5+ZxNmTc6GCBhYw60ZiAx0MsC/My68LBUxbTzSwgBVsoIMB9oU5GMbvWyK/iDnRwAJWsIEOBtgX5ri4EFvBluNivCYrzqadCyvYQAcD7GurV3ZWZWdVdlYe4OPlWZHvQuqWB0we1RcaWMBcnDyi8li/0MEA+8I81i8UUEFbR+p5rJ9YwQY6GGBfmDfx57qd90N5KJ93Pie2tULnnc+JAfaF551PjoDzzudEBXND5UbNE9WFlQrYOraOrS/b2YV0oYAKGljACp6K//mff/jtz3/9lz/8/U9//cs//f1vf/zjb//43+t/+M/f/vH//Pdv//GHv/3xL3//7R//8l9//vM//Pb//eHP/5X/0n/+xx/+kv/8+x/+9vh/H8fmH//yr49/Pgr+25/+/MdB//MP/PXx8Z/K4xFhXH/+4NBV4rGePxSRj4uUcZ+SJR6TzauA6w9/rx//vY2+vfz7x+MaFuCnAtu1sHHtca3F43nLh2tRPi4ypuzOCmLr74vd/XPLD1+ca/GYumIJtP5Qom1KjKek13ZgEdzv/n2TeSQ0q+vvHw9gfygQm+1Y2qwgj7nfD0v03b7UtRkekyUflthtyUzbazu08uGWlM0hqSpzd6r2pxr1p6N6d1haXYvB5pTQ+yvirEjYxyuyqTE+j3DVGF80WDXaT+tRd3t1vGTh2qtVPyyxObLyPS9Z4XG79zRC71fIHzOeFZp8XOHuavjHq7HbmPlRrHNj+tE/KqGbqNES68B6PCH4sIS8uyl0c2Tq0WfcqRxEbvkpcm2zEG3G/uPW7OOF2OWl6twSD+SosBr3V0TGqfhakSofrsjmwFJC8/iwwH6E9bYOiqfo/3mPxvuht6vxeCQ+azyeeH98/rBjm9/rNFiftobaj7vENkdnjblHHk8Ynir4/QOj1HVg1KdR9vOBYZvD83Gj11eNzhFu0X+ssVkOdZtbVB+Prtix95fi5iG+rXF3a/g3bI14d2vsB0pdA6W1D6NvU6H4sa4UHyn44TFedmf2WAeoPe6Tn2r47Rp2uK0aPT6uYW+fVUt596y6q3DvVHJ7NT4+q97dmvJ0hH9tj6xrVxPxj2v0969e6/ENl6+7dSlcONbNutTNiTEkZo0Htg+vX7c1dK1L6NPJ9Zca5e2jvNZ3j/JdhXtH+e3V+Pgo32/NtvaI9hf3SO3rquvxtO/DGm13js/3HZ6r4s/59/N9iWxvNGcNezxc+fAIbfr2kdHs3SNjV+HekXF7NV7MvyjrjBRPJX7Zmv7+1oy3t2a8vTX9d96aT8fm8xj5ytkkfzZ23XjLx3vE7e0bb38/PP3t8PS3w9PfD8/9xnz30rEe6z6vPqb7Prx0jE10jjc3zXubHzbnT/Ebm0MrH6yd2+Ix7/xh+m4nK8u6qxBr1T6crNxvUWeLxms75d5sSNTdbMixbiqKlA9LtLcHSfi7g2RX4d4gub0aHw+S7ca0dXXw2JjtpRL5Ct9rdso+nMvomxNizTa186h4PAt9rYSVGyX2B9atabb+dnT2t6Oz+9vzWz3enN/aLsO9yUI5jndnC+WQ3cMJmyvS5OnefzzyebFIfbFIOdYUV1HZFCnvTjvu1yXKWpd4dV10zeqMV+2/WsTrKtJf3TW27kvGq7M3RXa38I8ZnXUP/2D5cLpsW+buvN0nRfrcP4+H9/3FIlaPVeTp4ejXitycQpTd7N3dOUTZPYO5OYm4XY7QtUXi6eLn1+W4W6QdrxZZ55gHtteKPMbEurR9sG/KbHdxXcHWny8fvniwBQfb8zj+WpHWKfLxALx/9v74oeXuKUJ+MyRLuH940tpfId96riPa3r+R3BZ5XMutJzvSy6bIfvq+rpFXNmvT338QvHvEdPNJ8K7EzUfBt9dk8yx4v0XXwzL1KC/VMFmh+jhF+Ks1jrdrPLWOPI/8r9VYF3mPch/X2D1kunnz8EmNW3cP+3UpZU3jlxbv13jxGDPta2qwxMf7dvuEpq2JZ3HdXH1vFyQ/qnguyCNZP16Q+v7O3df4hp3rwrpsBm7ZdTodvmbRH1c8r27UdYVosTnKtg+c1s3Z467k48WomytvyV+pnevSfXM/s1uOIvTw2WZz7M5zuk5RRdvx8Xlu96Tm5oyS1G9oeKrvdzzVb2h5+oaep+0WvTettK9xb15Jmrw/9PdHx61pIXn/qZO8/9jpC2vycXa09uYl8n7I2orSUry/eH2r7mvc765v2ze0nubF0rtP7/erkx8TOlent4+bQ8T1O1bHfu/V6esMU49jtzr19zzSKt20tbTNnZT77iSlHGirhP6yTd9vg9ouxarwfKr8ZSl2T6LkMVVQ1vXH8TQd2r5Q5Mhf715TD/F8JfSVIj2enmg9NTp/ZYv42i99s1+i/K4lHttAO9ujfrxRy3ds1PING3Vb5O4xsh129VhPsXuJ1wJ+fHB7zVSbv1pkzZONr4S+WKQYU/ft1dUxm8fa+FrYx0V6+YaA3z1g+paAHx8TW6vju9XZNW7UfEnEtT699I8Otk+KrCmEBz/9lufnIn33kH49nRlvRf5wdXT3vKrUNadS2qb1TY/tfVVZE0SHfHjzroe+e3unx+Yq4Iefsvjzw4z+U5FPwoTfNx1PN1Y/T1N/UqZymDzuXOLDMttDdrxncO7j8vT47Nd97G/PiOoRb98p6m7C/N79xLbEzV+E3F4T36yJvz0juq1xc0b0sxrH2zXuTXjp7jdLP9yx1te26c2Z2U9q3JqZVelvT959UuPWHfx+Xcqxjo/nh+8/11D9vZfj1gzx/RovjrmbM8S6i9O7M8SfHOw3D5D2O++Ye7O7uv0d1M3Z3U8W5Nbsrtr7p//d74fuzu5ul+Pm7O4nF3fOFe/jgfkHF3fZkPLuFeK2SFFjGuDp4q594dLOi6wRUz4+UO39p6la3n6aui1x89rB3n+a+snF8jrPPS7vPz7f7n7NdDs+dlfLLdZsd4u+uVreFfG1UR8orxWRY/3YTcv2un23JNWYJm6vX/xH4+L/6Szz1Yv/tUbjRqBtytj2eUT9355HfG27lDXnrOXpEvHXIm+n4vawf1zWryNFjnhp6KisXzyobM54u2dNN0801b/hRFPb+5t0u2vXZPNjL9urh3w2F81LAHv5flcL97vaXh45ui5qRslNk9iur3pNkTrL8dMLSj6bUVQnB6y/OC1ZnmYS2kfTkrp7cvW4C7D/9S7gfol7VwGfzcLf3B7HN2wP/4bnAdsiN7fIvpvxaWWO47kR8WtNkYe1pzKbLk/dXsbf7q3clWmxLglaPz6ci9+WYHZ0fOjytRLOUvQPS+xbrA9e8HO83DG+XnT0KPJxn/b2d6y2LtRixPKH06u7X1Ld7PTQeP9HqBpv9wNsS9y8Bo/3f4e636L3Oj32Ne51emi83wX4SY179wL7I+zeu3q6vH109Pff93N/TT6+zOzvNlTvR/26AAnrm1Hf2/t33v39H0trj/f369s/l76/JptRv92i9+687fiGGdX9ctx6XGZHefc2xo76/m33djlu3sbsNsfdO8NtjXt3hrZ7tnRzk8rx/p3hdjnubdL92zPWo6WoTz+Y++Wdftt3GN362fT+DXC3rlvsG17JZ++/k8/efymffcNb+bYb9OZly/H2VYupvH3V8kmNezn6/gXHJ3df935EuX+9372fP25r3Pz14/b9aTd/L3i7xubngvsa934tuH2Wc/uGdrtVb/5WcL8kd4+R7Ta5+VvB/Zv+3l+bu8fqfl1uHqv+Dceqf8Ox6t9wrPp3HKv7rXrvJ6n3X7n64ZWU7X5EdevmZ/t6Tnogizw9+vjl9Zy7Xz8ZnYePGZSPnqDuS9yaObXibz8/3W0MpvfK82stft0Y3/C6PvuO9/Xt35p66xLG9q9hmHNqPzSm+/0K61KsPT0e+KXC9sVw68iQ+tQ4+cvLX7ebgg7qqvZxjbq9ESRKH/zcfHX/CONtEqWafniEbWvUdUNaav34lVFW++5R8K0uQ2t3D7DN1X57+7JwW+Lm1X77hqGy36K3ugy3NW52GX5W43i7xr0uQ2t3Zzrra9v0ZpfhJzVudRmaf8M9lL9/D7Vfl3tdhubl916OW12G92u8OOZudhna7pdTd7sMPznY7x0gLX7nHXOvy9C2j2xudhl+siC3ugwt3p813b2x5fYUX7w9a7q9ClovOmo//LTuK9dR60HtU7vULxX8O56Bf1Ll5iNw273J9At3Ybsy9x6B70vcegT+SYk7j8D3E0o3byfL7ztp8YVjxL7lGLHvOUbs/WPE3j9G7O1jZHeJ6mu24PHI5CmV7ccYKtvnP7dukbcl5JFE62McrT51Woj99Kbuo707ZbAvcWvKoBzxO2+P2tZzyset+vHx9tg9i3o8Jl8z/SEf9Y9vS9z9SkrZfRzq3mdStiXuTRrsS9yaNdhvjZvTBp9s0nvzBkX8/XmDTw6z4KrskUeyOcx2N6nivDT1qY388fDvxyLbictb7xrYL0f+6O8s8eCPl2NbpNLOXuumyHbD+rHuQx781IL6y4bdnX1v5tm2xL080/b75tmP2+P5efQv+b4tY8pt1fN996+bdTuZUZgQqU8XvqW8WiS+ocjzRfzXijzNzXj/uIhtf2iw3rv4SMTndsmfv/KzO9jCuD97btz+pcj2tanrJk/jqRfka0VC+iry/FLbLxZhSbR+QxE7NkW2v2ypPLJ/vgz/ucjux0+1rdvW2p6Oky/t4kI8lurx6nHy9KbQo7y4Tco62LS03TbZrU5bP65/TDmV1zZs6WuCtfSorxVp6k+txvU7Vmezi2/nSWxCaffA6uaL1Mv2eZUdTNRq+3hBdi/88+qziNfnF279dLG1a6Z63KivBSlPj8zlp61ad++nOjgRH1o+rvHJz0nW1fhjq9aP12a7WdcdsNnTpcmvm3VbpD9Nom8Okq+cz8vH5/Ma33Cs7R6w9uhPnaG6uUJp2/asdUGtzx/C1SI/FZG3L4W3m+TetxTK7sV9t97av9+oX9i/2zLFKVNlc5uy+xEUKf2Y+HkaxOFfWZTqXMi6bCYqdrPy7XGbtML+6XXbvxbZNomul/8U2R6wu9dU0KrxQHlxScpqwynPNxlfWxKr69171sqLG9aUm/xjU8T3n5Gm77W+WsS52vLnn/18rUhQJF4t0tbteX1u+/hakb4mLR5nUX11IDttLA+OV8uEMAifL++/ViaOdVUtj5myzeaN9ye34v3JrXh/cmu/PerqoJfx9cXN9th1tAgfnX1s1OOjlwKW8LdPgfvl6E8/E31Ml31YZPtdkxWPXT+ePtmXWKvStX04CbvfM23dMD1OV/XlAz54tUH03Sx7t7dnpbYl7s1K7V4HeHNW6gvbY3cy/6xMpYy+Go6PP3XKlM2cYe/v753+7t6pux/Ofsve+WF7VH9975SnMq+ecx5BtpamH91eLaM8cXtk0sdXbXX3lOreOWdb4t45Z1/iG845nb5D6e34eO/U9x90bUs8rkcOebqyL68VYd5xXJnUF4uUQpH62imjt/7UpLI7ZWx7GL/ptlhXFbXDN7fFd4s87eSvFSnrhP6YqjheLMJbZLU+TT1+qchjO6ygPn6YZpPbj+/7eseBPr+p6OfH97tV4f5P1T7uAKhq24fEt7rT6/ZJ1c3u9N3K8GIQPcpuZd79UEDdvXLxEfFrPirabjHi/c2xLVJ1PSSuP3yH3eQLRaqvFkI/6otFeEvY43ZYPi6yfUPgrWubfYl71zb2dr/LJ1tjPeOqYX2zNban3zXD0ErYpojvlmRdBsjx0XTyfjG4a/zxDeFfWpda1/c9f/i58heL0BF59JeLrBeeN/EXj/ZYIfJ4XLcpsvsZ1rcUudu/U7cforp3ubkrcfNyc1vi1uXmfmvc7N/5ZJPe69+pdXvqvte/88mJZs2LP66NyuZEsyvSlSK7s1W133t1uvNgSmKzJLvvUDsTNs+f1+k/ldi2Ea7mfSs/NEV9pUivq7Wje9kUibdPeNsS90547e13pW23xmMufj0hOH646/1pa7T3T//t/dN/K7/v1pA15Mrz571/3Rrt/a3R3t8abze7boe98YK08dOs11LM+F2HlR826U9FXH7nFHv82cGF+/Hi6vh6le1jxdqLRfq6yizHq6cH66tF7VFksyTevuEGcffhpPt3RNu9w1Nt/2Gq9ufV2U2QUuNpItD9foXGR4Kebrp/WZPda85ub9PQb9imu2eDZT3MruX5lPvT5dD2V1k87/nhJ2by89Xd7ndZ93bLdjFiPVK38N1ibE8QnOt++I3Zl4oUxm774dHkz0X6N+TZ9vlVPWay9h+Os1K/UqTw4pKn53lfLbKu7Z4/3vTFIuuVnv35/u6XIrvXA/Z13d2ff0HU5H6J5zfhHs/tiz8X2a4Mt1W92aubta3Xg/cfmga/VIRXFT42Tt1s1t+7yA/vgbPd3tn+lGC9aEf16VcAXyti6+t4+tys/usu3obrWpLH81D5MAja8XsXuTuV0N5/ctXef3LV3n9ytd8aN6cSPtmk96YSmnzHVeu2v2e1wrjah+fwJtv5qqcWIfn4O3Jt+zbse688bd/wwsD2/gsD2/svDGzf8MLA/Ra998rTtvtx1s23CHyyHLdeedr07U8ENf2Gb57si9z85sm2yN2Xr+6X5OY3T/ZFbn41se3mvO9/NfGzMje/v/JJmbsfX/yszM3PuOw38M3PuOyL3PyMy3YE3XvtxHYg33xZ777GvZf1tt2jq5thYLFtP7n1Jo/tctzcpPoNn3H55Fi9+xmXT8rc/YzLZ2VufsZlf6V26yUnn1zs3XnLySd3N6uxoPvzzwl/ujFpxd+dsN2XuDVh20r/XUvcnPPdb9DVufLYtvbxnd5uuvbeJFqr39C50uo3dK7sJyYLb0drm8naVrfvUV+tGvrjizd/Gi+7b1s9zi3rdyX9uQu8HPeLVFsb9vEwtb5YJHS1FhzPD/S/UqQxHde0bpZk95Osm2N3vxzrPNGe37v7tZWx1RrYfviYzC8rU37flXn+tvzTLdavy9F+3+WohPvz5e+vy/H2U9Z9iXup+v4XqfZbw1fHdIunN7v/sjVcf+cit+eKtnMS9+aKdiVuzhVtS9ybK9pujbtzRftNenOuyL/hicD+LPM0r/l8I/LLWSbe/6ps+4YvWrX3v2jV3v+iVfuGL1rtt+jNiZ7d767uTvTsl+PeRE+8/SGW1o9vmOjZFrk70dOPb5jo2S7J3YmebZG7Ez27X159YaLnkzJ3J3r2ZW5P9HxS5u5ETz++YaJnW+TuRE+8/Qmh7UC+O9ET73+v19//0JUf3/DKVn//Q1ef7NqbEz37Y/X2RM++zO2Jnk/K3J3o2V5m3Zvo2V+p3Zro2c0H3JtScCnvTyn47sHP7SmFbQuqrtkA075putwW8XXBaF1eLcJlRTleLVJ0vae8aHzcUet6/M5F7t7duL793oBtiXt3N/sSt+5u9lvj5t3NJ5v03t1N3py+/SR810DeV6uEqD7NfunPB0j/fWtIrJ/m6A9Nwl8poro2q2p7tYisnz4/imxWx75hptXtG2ZaP9km/GrCjs022f1MSCqvb35w+ehz6J8VWZ+ReHDXD4vsXvVk7OL2PCX4y+rsrhbr+tlEafXj3g0vx9s3fr577fnNa72i79/k+PZHPrdvcj4pc/fu5LMDxRk9PT6ao/TyHUdbeftlsPvD5N7Mj++/h3Vr5sd3P8G6N/OzLXFv5uf+mnw88/PJwLs18+P1/S+47EfezSmXfZGbUy7bInenXPZLcnPK5bMguTnN8VmQ3Jyf2K/SzfmJfZGb8xPboL93M7097G/OT+xr3Jyf2D7HunfOav4N8xOtvb9J9f35iU+O1bvzE5+UuTs/8VmZm/MT+xulW/MTn9xr3Zqf2P4G+tZSfPIz6jtL8cn7T8j5+sML/7/yEpXG61xatxeLxPrtkT5/h+WLb2JZTzwf+PHq1N2nqO++zmVb5N5nZfYlbn1W5pMSdz4rs98vzsu5/eXX7PxQpLxaRCliH++XfNPmex0C+xK3OgR8N3n8DSVuvpdtv0F5+user+6VdcWq3l9NkOcleblIrI/sPfDlItz57orU91sd6/utjp+8rnLV6NpefOPlen9CV//wyzTx9tn2kzei3toW+9fvHutFwK6vvn6Xl9U+MF4tsiL5ce599R2+UViS9up7jWPdFD3qvfw24fWb0ge+vE3WjdWjyGbvbF9dXRvfTvb2DUXi1Zdo8+yptPLq6vBbzuK7g21bhLc0l7CPi8TuCZbz9k7v5ePfcsbuJ1SF994+lrh+eOX+2ZK0tSR1tyS7Nzq1dVlV29OEk31lOda3FOM4Pv6xbuh20mr9Qt2f3+r4a5Hdtep6xdXzHMBojr1/jMTTN08272aN3c8ebh8jWr7hGPlkSe4dI7s3B948RvbLcfcYie84Rvrve4z0vgL62HzlIHbfuKwa//srDOOnGvuW1vVON3+6fP/5qynbzxMc65KkHn5sVqZ8w8rU33llxNblxI8vIPrSBxvWC3OrSXmxiLIkWr6lSLxaZD1vfewmf7XI6gx41Ht9wzob1l4tIhR5+cuOWniUVp9vnn+cU4zdhNO9m+d9iVt3vvH+T6e2JW7ePG83qPHmYPOPvy4Zu6dOt97ZuV+Mwu136bFZDH0/zLb9VjfDbP/FTuUxjdYPV+aTIk9f2Gsfb5Gy/zH2zW+H7orcmwPcl7g1B/hJiVtzgPL+Pby8fQ+/f0R059NgsfsOVqybu+gfP96J7S+uZN15mzxfXv70eGc3c+drprvE8fE31LeNWnwJoT2XaPffON748k57enHxV0rE01d36mtL0fmZ43HIKyX0IDSOp2mMrywFbwof7/p/rQQv6Q95aUXG53bW063+2lLwLT95/mjWV0qUp9aSpwbPn0vE7i2BJXiA+XxkyP0j3FbmiPlrG6Osj0jL83XCq9vzxRJBT2Xoc4/aT9cr8fZ3BLfjrPJxjqeTwM9LsS3RGWfPE1JfKBFrluAxVHWzLbZv0rnXfhi7T0p9xycKnl8s9vy25V9WZvduhea8PK55/WiK/bMi64nlg/tHHYyx/T1DrBYM++HzgT+vTn/7Y0Hbc+OaaHg8EvBXDrLCGx4ec56b/dK/ofU/+je0/n+6c/1p59YPd67/3kdIrVwT977ZsLur82O1x+jzw/VfZrT69rev9D49fy/z5yJ992GruxOF+YDjvYnCT5bj3kRh3/2g6e5EYd/9tOreROE2AORxMc1FjD9/o+s4flqSzfG6DtanjxoXu53MYhwezzdvP63JvgSv33i+YflKCbpi9Omh1s8lumznTNfhZceLJfr6dcrT5dxXVuT5RPd01v5KibYmGH7sEPpCCRcugbbbov3ORaRxbmjPbRNfKuLOLUfXF4v09RMoef5a4Zd2buOrUf7aWLF1hfs4UuS1paD5y46XVkSONf/0w/fUv1JC1vveRUq8VoLfk0m8thS2BuwDX1uKqly9PH1+8kslGs3s0V9bEY5O09dWhJfkPDL9pRXx1c/jpb1SoK953udPTv4yTrcPNt++He7r9P78DYGvrMU6LrvXNzfDawVMuRrW56737vdLVH4G+9Sc9WqJp8nML5VYQ8PU60slnj+U8fTU7islyprWtXq8ti2s8ZWe5zmWV0u8tlOfvvfxnHdf2ha0/RZ7bacWPltQzF8rsb4Y+rjsfnGntvXquNJeWorxzVEuLMpLJZ4+fRomH5bou2dKokT388eyf3oetJ9e5lPZtb62Jnxtu5d4rUTjy9KvDRJhauVxxSYvrgi/Kjn07RLy6lLw5WR5abQ/rlPZFsXfXorNTt0+x3mcztb3Fn6Iz/rj8dl3z5N6Xa1TvfaPf47Sd0vy9tzu417Vud2Vj56M9d0PjpQPrhzy8bO13Qa1dVZ8PLOUDzfotshjkoBL8Ae/WKZX4xslz2P2S0WUL3Lo85tiv1ZkffylP78q8mtFeBfCYyu3F4/VWAOvx9M886/H6t0iTy8h+GKR9eH0B7bXisghdeXyIf5xmU82bbBp+/Hapn0cqU9fgDlcX12lw9pTmc0+2n1c6/6W2Za517ywL3GreeGTEh82L/zfx3/5w7/86W//9Oe//ssf/v6nv/7lPx9/9z+j1N/+9Id//vMfr//6b//1l395+n///v//x/x//vlvf/rzn//07//0H3/767/88V//629/HJXG//fbcf3H//H2uIX1pvF//+E3Gf/9MQD+4TF93h//3R7//XFvWXX8f+Nf1vHZ+cd/tPE/5L/ddPy1yf/9n7G4/w8="
|
|
2134
2134
|
},
|
|
2135
2135
|
{
|
|
2136
2136
|
"name": "sync_private_state",
|
|
@@ -2288,7 +2288,7 @@
|
|
|
2288
2288
|
}
|
|
2289
2289
|
},
|
|
2290
2290
|
"bytecode": "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",
|
|
2291
|
-
"debug_symbols": "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"
|
|
2291
|
+
"debug_symbols": "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"
|
|
2292
2292
|
},
|
|
2293
2293
|
{
|
|
2294
2294
|
"name": "public_dispatch",
|
|
@@ -2582,11 +2582,11 @@
|
|
|
2582
2582
|
},
|
|
2583
2583
|
"132": {
|
|
2584
2584
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/encryption/aes128.nr",
|
|
2585
|
-
"source": "use dep::protocol_types::{\n address::AztecAddress,\n constants::{GENERATOR_INDEX__SYMMETRIC_KEY, GENERATOR_INDEX__SYMMETRIC_KEY_2},\n hash::poseidon2_hash_with_separator,\n point::Point,\n public_keys::AddressPoint,\n};\n\nuse crate::{\n keys::{ecdh_shared_secret::derive_ecdh_shared_secret, ephemeral::generate_ephemeral_key_pair},\n messages::{\n encoding::{\n EPH_PK_SIGN_BYTE_SIZE_IN_BYTES, EPH_PK_X_SIZE_IN_FIELDS,\n HEADER_CIPHERTEXT_SIZE_IN_BYTES, MESSAGE_CIPHERTEXT_LEN, MESSAGE_PLAINTEXT_LEN,\n },\n encryption::message_encryption::MessageEncryption,\n logs::arithmetic_generics_utils::{\n get_arr_of_size__message_bytes__from_PT,\n get_arr_of_size__message_bytes_padding__from_PT,\n },\n },\n oracle::{\n aes128_decrypt::aes128_decrypt_oracle, random::random, shared_secret::get_shared_secret,\n },\n utils::{\n array,\n conversion::{\n bytes_to_fields::{bytes_from_fields, bytes_to_fields},\n fields_to_bytes::{fields_from_bytes, fields_to_bytes},\n },\n point::{get_sign_of_point, point_from_x_coord_and_sign},\n random::get_random_bytes,\n },\n};\n\nuse std::aes128::aes128_encrypt;\n\n/**\n * Computes N close-to-uniformly-random 256 bits from a given ECDH shared_secret.\n *\n * NEVER re-use the same iv and sym_key.\n * DO NOT call this function more than once with the same shared_secret.\n *\n * This function is only known to be safe if shared_secret is computed by combining a \n * random ephemeral key with an address point. See big comment within the body of the function.\n * See big comment within the body of the function.\n */\nfn extract_many_close_to_uniformly_random_256_bits_from_ecdh_shared_secret_using_poseidon2_unsafe<let N: u32>(\n shared_secret: Point,\n) -> [[u8; 32]; N] {\n /*\n * Unsafe because of https://eprint.iacr.org/2010/264.pdf Page 13, Lemma 2 (and the * two paragraphs below it).\n *\n * If you call this function, you need to be careful and aware of how the arg\n * `shared_secret` has been derived.\n *\n * The paper says that the way you derive aes keys and IVs should be fine with poseidon2\n * (modelled as a RO), as long as you _don't_ use Poseidon2 as a PRG to generate the * two exponents x & y which multiply to the shared secret S:\n *\n * S = [x*y]*G.\n *\n * (Otherwise, you would have to \"key\" poseidon2, i.e. generate a uniformly string K\n * which can be public and compute Hash(x) as poseidon(K,x)).\n * In that lemma, k would be 2*254=508, and m would be the number of points on the * grumpkin curve (which is close to r according to the Hasse bound).\n *\n * Our shared secret S is [esk * address_sk] * G, and the question is: * Can we compute hash(S) using poseidon2 instead of sha256?\n *\n * Well, esk is random and not generated with poseidon2, so that's good.\n * What about address_sk?\n * Well, address_sk = poseidon2(stuff) + ivsk, so there was some\n * discussion about whether address_sk is independent of poseidon2.\n * Given that ivsk is random and independent of poseidon2, the address_sk is also\n * independent of poseidon2.\n *\n * Tl;dr: we believe it's safe to hash S = [esk * address_sk] * G using poseidon2,\n * in order to derive a symmetric key.\n *\n * If you're calling this function for a differently-derived `shared_secret`, be\n * careful.\n *\n */\n\n /* The output of this function needs to be 32 random bytes.\n * A single field won't give us 32 bytes of entropy.\n * So we compute two \"random\" fields, by poseidon-hashing with two different\n * generators.\n * We then extract the last 16 (big endian) bytes of each \"random\" field.\n * Note: we use to_be_bytes because it's slightly more efficient. But we have to\n * be careful not to take bytes from the \"big end\", because the \"big\" byte is\n * not uniformly random over the byte: it only has < 6 bits of randomness, because\n * it's the big end of a 254-bit field element.\n */\n\n let mut all_bytes: [[u8; 32]; N] = std::mem::zeroed();\n // We restrict N to be < 2^8, because of how we compute the domain separator\n // from k below (where k <= N must be 8 bits). In practice, it's extremely\n // unlikely that an app will want to compute >= 256 ciphertexts.\n std::static_assert(N < 256, \"N too large\");\n for k in 0..N {\n // We augment the domain separator with the loop index, so that we can\n // generate N lots of randomness.\n let k_shift = (k as u16 << 8);\n let separator_1 = k_shift + GENERATOR_INDEX__SYMMETRIC_KEY as u16;\n let separator_2 = k_shift + GENERATOR_INDEX__SYMMETRIC_KEY_2 as u16;\n\n let rand1: Field =\n poseidon2_hash_with_separator([shared_secret.x, shared_secret.y], separator_1);\n let rand2: Field =\n poseidon2_hash_with_separator([shared_secret.x, shared_secret.y], separator_2);\n\n let rand1_bytes: [u8; 32] = rand1.to_be_bytes();\n let rand2_bytes: [u8; 32] = rand2.to_be_bytes();\n\n let mut bytes: [u8; 32] = [0; 32];\n for i in 0..16 {\n // We take bytes from the \"little end\" of the be-bytes arrays:\n let j = 32 - i - 1;\n bytes[i] = rand1_bytes[j];\n bytes[16 + i] = rand2_bytes[j];\n }\n\n all_bytes[k] = bytes;\n }\n\n all_bytes\n}\n\nfn derive_aes_symmetric_key_and_iv_from_uniformly_random_256_bits<let N: u32>(\n many_random_256_bits: [[u8; 32]; N],\n) -> [([u8; 16], [u8; 16]); N] {\n // Many (sym_key, iv) pairs:\n let mut many_pairs: [([u8; 16], [u8; 16]); N] = std::mem::zeroed();\n for k in 0..N {\n let random_256_bits = many_random_256_bits[k];\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n for i in 0..16 {\n sym_key[i] = random_256_bits[i];\n iv[i] = random_256_bits[i + 16];\n }\n many_pairs[k] = (sym_key, iv);\n }\n\n many_pairs\n}\n\npub fn derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe<let N: u32>(\n shared_secret: Point,\n) -> [([u8; 16], [u8; 16]); N] {\n let many_random_256_bits: [[u8; 32]; N] = extract_many_close_to_uniformly_random_256_bits_from_ecdh_shared_secret_using_poseidon2_unsafe(\n shared_secret,\n );\n\n derive_aes_symmetric_key_and_iv_from_uniformly_random_256_bits(many_random_256_bits)\n}\n\npub struct AES128 {}\n\nimpl MessageEncryption for AES128 {\n fn encrypt<let PlaintextLen: u32>(\n plaintext: [Field; PlaintextLen],\n recipient: AztecAddress,\n ) -> [Field; MESSAGE_CIPHERTEXT_LEN] {\n // AES 128 operates on bytes, not fields, so we need to convert the fields to bytes.\n // (This process is then reversed when processing the message in `do_process_message`)\n let plaintext_bytes = fields_to_bytes(plaintext);\n\n // *****************************************************************************\n // Compute the shared secret\n // *****************************************************************************\n\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let eph_pk_sign_byte: u8 = get_sign_of_point(eph_pk) as u8;\n\n // (not to be confused with the tagging shared secret)\n // TODO (#17158): Currently we unwrap the Option returned by derive_ecdh_shared_secret.\n // We need to handle the case where the ephemeral public key is invalid to prevent potential DoS vectors.\n let ciphertext_shared_secret = derive_ecdh_shared_secret(\n eph_sk,\n recipient\n .to_address_point()\n .unwrap_or(\n // Safety: if the recipient is an invalid address, then it is not possible to encrypt a message for\n // them because we cannot establish a shared secret. This is never expected to occur during normal\n // operation. However, it is technically possible for us to receive an invalid address, and we must\n // therefore handle it.\n // We could simply fail, but that'd introduce a potential security issue in which an attacker forces\n // a contract to encrypt a message for an invalid address, resulting in an impossible transaction -\n // this is sometimes called a 'king of the hill' attack.\n // We choose instead to not fail and encrypt the plaintext regardless using the shared secret that\n // results from a random valid address. The sender is free to choose this address and hence shared\n // secret, but this has no security implications as they already know not only the full plaintext\n // but also the ephemeral private key anyway.\n unsafe { random_address_point() },\n )\n .inner,\n );\n // TODO: also use this shared secret for deriving note randomness.\n\n // *****************************************************************************\n // Convert the plaintext into whatever format the encryption function expects\n // *****************************************************************************\n\n // Already done for this strategy: AES expects bytes.\n\n // *****************************************************************************\n // Encrypt the plaintext\n // *****************************************************************************\n\n // It is safe to call the `unsafe` function here, because we know the `shared_secret`\n // was derived using an AztecAddress (the recipient). See the block comment\n // at the start of this unsafe target function for more info.\n let pairs = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<2>(\n ciphertext_shared_secret,\n );\n let (body_sym_key, body_iv) = pairs[0];\n let (header_sym_key, header_iv) = pairs[1];\n\n let ciphertext_bytes = aes128_encrypt(plaintext_bytes, body_iv, body_sym_key);\n\n // |full_pt| = |pt_length| + |pt|\n // |pt_aes_padding| = 16 - (|full_pt| % 16)\n // or... since a % b is the same as a - b * (a // b) (integer division), so:\n // |pt_aes_padding| = 16 - (|full_pt| - 16 * (|full_pt| // 16))\n // |ct| = |full_pt| + |pt_aes_padding|\n // = |full_pt| + 16 - (|full_pt| - 16 * (|full_pt| // 16))\n // = 16 + 16 * (|full_pt| // 16)\n // = 16 * (1 + |full_pt| // 16)\n std::static_assert(\n ciphertext_bytes.len() == 16 * (1 + (PlaintextLen * 32) / 16),\n \"unexpected ciphertext length\",\n );\n\n // *****************************************************************************\n // Compute the header ciphertext\n // *****************************************************************************\n\n // Header contains only the length of the ciphertext stored in 2 bytes.\n let mut header_plaintext: [u8; 2] = [0 as u8; 2];\n let ciphertext_bytes_length = ciphertext_bytes.len();\n header_plaintext[0] = (ciphertext_bytes_length >> 8) as u8;\n header_plaintext[1] = ciphertext_bytes_length as u8;\n\n // Note: the aes128_encrypt builtin fn automatically appends bytes to the\n // input, according to pkcs#7; hence why the output `header_ciphertext_bytes` is 16\n // bytes larger than the input in this case.\n let header_ciphertext_bytes = aes128_encrypt(header_plaintext, header_iv, header_sym_key);\n // I recall that converting a slice to an array incurs constraints, so I'll check the length this way instead:\n std::static_assert(\n header_ciphertext_bytes.len() == HEADER_CIPHERTEXT_SIZE_IN_BYTES,\n \"unexpected ciphertext header length\",\n );\n\n // *****************************************************************************\n // Prepend / append more bytes of data to the ciphertext, before converting back\n // to fields.\n // *****************************************************************************\n\n let mut message_bytes_padding_to_mult_31 =\n get_arr_of_size__message_bytes_padding__from_PT::<PlaintextLen * 32>();\n // Safety: this randomness won't be constrained to be random. It's in the\n // interest of the executor of this fn to encrypt with random bytes.\n message_bytes_padding_to_mult_31 = unsafe { get_random_bytes() };\n\n let mut message_bytes = get_arr_of_size__message_bytes__from_PT::<PlaintextLen * 32>();\n\n std::static_assert(\n message_bytes.len() % 31 == 0,\n \"Unexpected error: message_bytes.len() should be divisible by 31, by construction.\",\n );\n\n message_bytes[0] = eph_pk_sign_byte;\n let mut offset = 1;\n for i in 0..header_ciphertext_bytes.len() {\n message_bytes[offset + i] = header_ciphertext_bytes[i];\n }\n offset += header_ciphertext_bytes.len();\n\n for i in 0..ciphertext_bytes.len() {\n message_bytes[offset + i] = ciphertext_bytes[i];\n }\n offset += ciphertext_bytes.len();\n\n for i in 0..message_bytes_padding_to_mult_31.len() {\n message_bytes[offset + i] = message_bytes_padding_to_mult_31[i];\n }\n offset += message_bytes_padding_to_mult_31.len();\n\n // Ideally we would be able to have a static assert where we check that the offset would be such that we've\n // written to the entire log_bytes array, but we cannot since Noir does not treat the offset as a comptime\n // value (despite the values that it goes through being known at each stage). We instead check that the\n // computation used to obtain the offset computes the expected value (which we _can_ do in a static check), and\n // then add a cheap runtime check to also validate that the offset matches this.\n std::static_assert(\n 1\n + header_ciphertext_bytes.len()\n + ciphertext_bytes.len()\n + message_bytes_padding_to_mult_31.len()\n == message_bytes.len(),\n \"unexpected message length\",\n );\n assert(offset == message_bytes.len(), \"unexpected encrypted message length\");\n\n // *****************************************************************************\n // Convert bytes back to fields\n // *****************************************************************************\n\n // TODO(#12749): As Mike pointed out, we need to make messages produced by different encryption schemes\n // indistinguishable from each other and for this reason the output here and in the last for-loop of this function\n // should cover a full field.\n let message_bytes_as_fields = bytes_to_fields(message_bytes);\n\n // *****************************************************************************\n // Prepend / append fields, to create the final message\n // *****************************************************************************\n\n let mut ciphertext: [Field; MESSAGE_CIPHERTEXT_LEN] = [0; MESSAGE_CIPHERTEXT_LEN];\n\n ciphertext[0] = eph_pk.x;\n\n let mut offset = 1;\n for i in 0..message_bytes_as_fields.len() {\n ciphertext[offset + i] = message_bytes_as_fields[i];\n }\n offset += message_bytes_as_fields.len();\n\n for i in offset..MESSAGE_CIPHERTEXT_LEN {\n // We need to get a random value that fits in 31 bytes to not leak information about the size of the message\n // (all the \"real\" message fields contain at most 31 bytes because of the way we convert the bytes to fields).\n // TODO(#12749): Long term, this is not a good solution.\n\n // Safety: we assume that the sender wants for the message to be private - a malicious one could simply reveal its\n // contents publicly. It is therefore fine to trust the sender to provide random padding.\n let field_bytes = unsafe { get_random_bytes::<31>() };\n ciphertext[i] = Field::from_be_bytes::<31>(field_bytes);\n }\n\n ciphertext\n }\n\n unconstrained fn decrypt(\n ciphertext: BoundedVec<Field, MESSAGE_CIPHERTEXT_LEN>,\n recipient: AztecAddress,\n ) -> Option<BoundedVec<Field, MESSAGE_PLAINTEXT_LEN>> {\n let eph_pk_x = ciphertext.get(0);\n\n let ciphertext_without_eph_pk_x_fields = array::subbvec::<Field, MESSAGE_CIPHERTEXT_LEN, MESSAGE_CIPHERTEXT_LEN - EPH_PK_X_SIZE_IN_FIELDS>(\n ciphertext,\n EPH_PK_X_SIZE_IN_FIELDS,\n );\n\n // Convert the ciphertext represented as fields to a byte representation (its original format)\n let ciphertext_without_eph_pk_x = bytes_from_fields(ciphertext_without_eph_pk_x_fields);\n\n // First byte of the ciphertext represents the ephemeral public key sign\n let eph_pk_sign_bool = ciphertext_without_eph_pk_x.get(0) != 0;\n\n // With the sign and the x-coordinate of the ephemeral public key, we can reconstruct the point. This may fail\n // however, as not all x-coordinates are on the curve. In that case, we simply return `Option::none`.\n point_from_x_coord_and_sign(eph_pk_x, eph_pk_sign_bool).map(|eph_pk| {\n // Derive shared secret\n let ciphertext_shared_secret = get_shared_secret(recipient, eph_pk);\n\n // Derive symmetric keys:\n let pairs = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<2>(\n ciphertext_shared_secret,\n );\n let (body_sym_key, body_iv) = pairs[0];\n let (header_sym_key, header_iv) = pairs[1];\n\n // Extract the header ciphertext\n let header_start = EPH_PK_SIGN_BYTE_SIZE_IN_BYTES; // Skip eph_pk_sign byte\n let header_ciphertext: [u8; HEADER_CIPHERTEXT_SIZE_IN_BYTES] =\n array::subarray(ciphertext_without_eph_pk_x.storage(), header_start);\n // We need to convert the array to a BoundedVec because the oracle expects a BoundedVec as it's designed to work\n // with messages with unknown length at compile time. This would not be necessary here as the header ciphertext length\n // is fixed. But we do it anyway to not have to have duplicate oracles.\n let header_ciphertext_bvec =\n BoundedVec::<u8, HEADER_CIPHERTEXT_SIZE_IN_BYTES>::from_array(header_ciphertext);\n\n // Decrypt header\n let header_plaintext =\n aes128_decrypt_oracle(header_ciphertext_bvec, header_iv, header_sym_key);\n\n // Extract ciphertext length from header (2 bytes, big-endian)\n let ciphertext_length =\n ((header_plaintext.get(0) as u32) << 8) | (header_plaintext.get(1) as u32);\n\n // Extract and decrypt main ciphertext\n let ciphertext_start = header_start + HEADER_CIPHERTEXT_SIZE_IN_BYTES;\n let ciphertext_with_padding: [u8; (MESSAGE_CIPHERTEXT_LEN - EPH_PK_X_SIZE_IN_FIELDS) * 31 - HEADER_CIPHERTEXT_SIZE_IN_BYTES - EPH_PK_SIGN_BYTE_SIZE_IN_BYTES] =\n array::subarray(ciphertext_without_eph_pk_x.storage(), ciphertext_start);\n let ciphertext: BoundedVec<u8, (MESSAGE_CIPHERTEXT_LEN - EPH_PK_X_SIZE_IN_FIELDS) * 31 - HEADER_CIPHERTEXT_SIZE_IN_BYTES - EPH_PK_SIGN_BYTE_SIZE_IN_BYTES> =\n BoundedVec::from_parts(ciphertext_with_padding, ciphertext_length);\n\n // Decrypt main ciphertext and return it\n let plaintext_bytes = aes128_decrypt_oracle(ciphertext, body_iv, body_sym_key);\n\n // Each field of the original note message was serialized to 32 bytes so we convert the bytes back to fields.\n fields_from_bytes(plaintext_bytes)\n })\n }\n}\n\n/// Produces a random valid address point, i.e. one that is on the curve. This is equivalent to calling\n/// [AztecAddress::to_address_point] on a random valid address.\nunconstrained fn random_address_point() -> AddressPoint {\n let mut result = std::mem::zeroed();\n\n loop {\n // We simply produce random x coordinates until we find one that is on the curve. About half of the x\n // coordinates fulfill this condition, so this should only take a few iterations at most.\n let x_coord = random();\n let point = point_from_x_coord_and_sign(x_coord, true);\n if point.is_some() {\n result = AddressPoint { inner: point.unwrap() };\n break;\n }\n }\n\n result\n}\n\nmod test {\n use crate::{\n keys::ecdh_shared_secret::derive_ecdh_shared_secret,\n messages::{\n encoding::MESSAGE_PLAINTEXT_LEN, encryption::message_encryption::MessageEncryption,\n },\n test::helpers::test_environment::TestEnvironment,\n };\n use super::{AES128, random_address_point};\n use protocol_types::{address::AztecAddress, traits::FromField};\n use std::{embedded_curve_ops::EmbeddedCurveScalar, test::OracleMock};\n\n #[test]\n unconstrained fn encrypt_decrypt_deterministic() {\n let env = TestEnvironment::new();\n\n // Message decryption requires oracles that are only available during private execution\n env.private_context(|_| {\n let plaintext = [1, 2, 3];\n\n let recipient = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n // Mock random values for deterministic test\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"utilityGetRandomField\").returns(eph_sk).times(1);\n\n let randomness = 0x0101010101010101010101010101010101010101010101010101010101010101;\n let _ = OracleMock::mock(\"utilityGetRandomField\").returns(randomness).times(1000000);\n\n let _ = OracleMock::mock(\"privateGetNextAppTagAsSender\").returns(42);\n\n // Encrypt the message\n let encrypted_message = BoundedVec::from_array(AES128::encrypt(plaintext, recipient));\n\n // Mock shared secret for deterministic test\n let shared_secret = derive_ecdh_shared_secret(\n EmbeddedCurveScalar::from_field(eph_sk),\n recipient.to_address_point().unwrap().inner,\n );\n\n let _ = OracleMock::mock(\"utilityGetSharedSecret\").returns(shared_secret);\n\n // Decrypt the message\n let decrypted = AES128::decrypt(encrypted_message, recipient).unwrap();\n\n // The decryption function spits out a BoundedVec because it's designed to work with messages with unknown length\n // at compile time. For this reason we need to convert the original input to a BoundedVec.\n let plaintext_bvec = BoundedVec::<Field, MESSAGE_PLAINTEXT_LEN>::from_array(plaintext);\n\n // Verify decryption matches original plaintext\n assert_eq(\n decrypted,\n plaintext_bvec,\n \"Decrypted bytes should match original plaintext\",\n );\n\n // The following is a workaround of \"struct is never constructed\" Noir compilation error (we only ever use\n // static methods of the struct).\n let _ = AES128 {};\n });\n }\n\n #[test]\n unconstrained fn encrypt_decrypt_random() {\n // Same as `encrypt_decrypt_deterministic`, except we don't mock any of the oracles and rely on\n // `TestEnvironment` instead.\n let mut env = TestEnvironment::new();\n\n let recipient = env.create_light_account();\n\n env.private_context(|_| {\n let plaintext = [1, 2, 3];\n let ciphertext = AES128::encrypt(plaintext, recipient);\n\n assert_eq(\n AES128::decrypt(BoundedVec::from_array(ciphertext), recipient).unwrap(),\n BoundedVec::from_array(plaintext),\n );\n });\n }\n\n #[test]\n unconstrained fn encrypt_to_invalid_address() {\n // x = 3 is a non-residue for this curve, resulting in an invalid address\n let invalid_address = AztecAddress { inner: 3 };\n\n // We just test that we produced some output and did not crash - the result is gibberish as it is encrypted\n // using a public key for which we do not know the private key.\n let _ = AES128::encrypt([1, 2, 3, 4], invalid_address);\n }\n\n #[test]\n unconstrained fn random_address_point_produces_valid_points() {\n // About half of random addresses are invalid, so testing just a couple gives us high confidence that\n // `random_address_point` is indeed producing valid addresses.\n for _ in 0..10 {\n let random_address = AztecAddress { inner: random_address_point().inner.x };\n assert(random_address.to_address_point().is_some());\n }\n }\n\n #[test]\n unconstrained fn decrypt_invalid_ephemeral_public_key() {\n let mut env = TestEnvironment::new();\n\n let recipient = env.create_light_account();\n\n env.private_context(|_| {\n let plaintext = [1, 2, 3, 4];\n let ciphertext = AES128::encrypt(plaintext, recipient);\n\n // The first field of the ciphertext is the x-coordinate of the ephemeral public key. We set it to a known\n // non-residue (3), causing `decrypt` to fail to produce a decryption shared secret.\n let mut bad_ciphertext = BoundedVec::from_array(ciphertext);\n bad_ciphertext.set(0, 3);\n\n assert(AES128::decrypt(bad_ciphertext, recipient).is_none());\n });\n }\n}\n"
|
|
2585
|
+
"source": "use dep::protocol_types::{\n address::AztecAddress,\n constants::{DOM_SEP__SYMMETRIC_KEY, DOM_SEP__SYMMETRIC_KEY_2},\n hash::poseidon2_hash_with_separator,\n point::Point,\n public_keys::AddressPoint,\n};\n\nuse crate::{\n keys::{ecdh_shared_secret::derive_ecdh_shared_secret, ephemeral::generate_ephemeral_key_pair},\n messages::{\n encoding::{\n EPH_PK_SIGN_BYTE_SIZE_IN_BYTES, EPH_PK_X_SIZE_IN_FIELDS,\n HEADER_CIPHERTEXT_SIZE_IN_BYTES, MESSAGE_CIPHERTEXT_LEN, MESSAGE_PLAINTEXT_LEN,\n },\n encryption::message_encryption::MessageEncryption,\n logs::arithmetic_generics_utils::{\n get_arr_of_size__message_bytes__from_PT,\n get_arr_of_size__message_bytes_padding__from_PT,\n },\n },\n oracle::{\n aes128_decrypt::aes128_decrypt_oracle, random::random, shared_secret::get_shared_secret,\n },\n utils::{\n array,\n conversion::{\n bytes_to_fields::{bytes_from_fields, bytes_to_fields},\n fields_to_bytes::{fields_from_bytes, fields_to_bytes},\n },\n point::{get_sign_of_point, point_from_x_coord_and_sign},\n random::get_random_bytes,\n },\n};\n\nuse std::aes128::aes128_encrypt;\n\n/**\n * Computes N close-to-uniformly-random 256 bits from a given ECDH shared_secret.\n *\n * NEVER re-use the same iv and sym_key.\n * DO NOT call this function more than once with the same shared_secret.\n *\n * This function is only known to be safe if shared_secret is computed by combining a \n * random ephemeral key with an address point. See big comment within the body of the function.\n * See big comment within the body of the function.\n */\nfn extract_many_close_to_uniformly_random_256_bits_from_ecdh_shared_secret_using_poseidon2_unsafe<let N: u32>(\n shared_secret: Point,\n) -> [[u8; 32]; N] {\n /*\n * Unsafe because of https://eprint.iacr.org/2010/264.pdf Page 13, Lemma 2 (and the * two paragraphs below it).\n *\n * If you call this function, you need to be careful and aware of how the arg\n * `shared_secret` has been derived.\n *\n * The paper says that the way you derive aes keys and IVs should be fine with poseidon2\n * (modelled as a RO), as long as you _don't_ use Poseidon2 as a PRG to generate the * two exponents x & y which multiply to the shared secret S:\n *\n * S = [x*y]*G.\n *\n * (Otherwise, you would have to \"key\" poseidon2, i.e. generate a uniformly string K\n * which can be public and compute Hash(x) as poseidon(K,x)).\n * In that lemma, k would be 2*254=508, and m would be the number of points on the * grumpkin curve (which is close to r according to the Hasse bound).\n *\n * Our shared secret S is [esk * address_sk] * G, and the question is: * Can we compute hash(S) using poseidon2 instead of sha256?\n *\n * Well, esk is random and not generated with poseidon2, so that's good.\n * What about address_sk?\n * Well, address_sk = poseidon2(stuff) + ivsk, so there was some\n * discussion about whether address_sk is independent of poseidon2.\n * Given that ivsk is random and independent of poseidon2, the address_sk is also\n * independent of poseidon2.\n *\n * Tl;dr: we believe it's safe to hash S = [esk * address_sk] * G using poseidon2,\n * in order to derive a symmetric key.\n *\n * If you're calling this function for a differently-derived `shared_secret`, be\n * careful.\n *\n */\n\n /* The output of this function needs to be 32 random bytes.\n * A single field won't give us 32 bytes of entropy.\n * So we compute two \"random\" fields, by poseidon-hashing with two different\n * generators.\n * We then extract the last 16 (big endian) bytes of each \"random\" field.\n * Note: we use to_be_bytes because it's slightly more efficient. But we have to\n * be careful not to take bytes from the \"big end\", because the \"big\" byte is\n * not uniformly random over the byte: it only has < 6 bits of randomness, because\n * it's the big end of a 254-bit field element.\n */\n\n let mut all_bytes: [[u8; 32]; N] = std::mem::zeroed();\n // We restrict N to be < 2^8, because of how we compute the domain separator\n // from k below (where k <= N must be 8 bits). In practice, it's extremely\n // unlikely that an app will want to compute >= 256 ciphertexts.\n std::static_assert(N < 256, \"N too large\");\n for k in 0..N {\n // We augment the domain separator with the loop index, so that we can\n // generate N lots of randomness.\n let k_shift = (k as u16 << 8);\n let separator_1 = k_shift + DOM_SEP__SYMMETRIC_KEY as u16;\n let separator_2 = k_shift + DOM_SEP__SYMMETRIC_KEY_2 as u16;\n\n let rand1: Field =\n poseidon2_hash_with_separator([shared_secret.x, shared_secret.y], separator_1);\n let rand2: Field =\n poseidon2_hash_with_separator([shared_secret.x, shared_secret.y], separator_2);\n\n let rand1_bytes: [u8; 32] = rand1.to_be_bytes();\n let rand2_bytes: [u8; 32] = rand2.to_be_bytes();\n\n let mut bytes: [u8; 32] = [0; 32];\n for i in 0..16 {\n // We take bytes from the \"little end\" of the be-bytes arrays:\n let j = 32 - i - 1;\n bytes[i] = rand1_bytes[j];\n bytes[16 + i] = rand2_bytes[j];\n }\n\n all_bytes[k] = bytes;\n }\n\n all_bytes\n}\n\nfn derive_aes_symmetric_key_and_iv_from_uniformly_random_256_bits<let N: u32>(\n many_random_256_bits: [[u8; 32]; N],\n) -> [([u8; 16], [u8; 16]); N] {\n // Many (sym_key, iv) pairs:\n let mut many_pairs: [([u8; 16], [u8; 16]); N] = std::mem::zeroed();\n for k in 0..N {\n let random_256_bits = many_random_256_bits[k];\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n for i in 0..16 {\n sym_key[i] = random_256_bits[i];\n iv[i] = random_256_bits[i + 16];\n }\n many_pairs[k] = (sym_key, iv);\n }\n\n many_pairs\n}\n\npub fn derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe<let N: u32>(\n shared_secret: Point,\n) -> [([u8; 16], [u8; 16]); N] {\n let many_random_256_bits: [[u8; 32]; N] = extract_many_close_to_uniformly_random_256_bits_from_ecdh_shared_secret_using_poseidon2_unsafe(\n shared_secret,\n );\n\n derive_aes_symmetric_key_and_iv_from_uniformly_random_256_bits(many_random_256_bits)\n}\n\npub struct AES128 {}\n\nimpl MessageEncryption for AES128 {\n fn encrypt<let PlaintextLen: u32>(\n plaintext: [Field; PlaintextLen],\n recipient: AztecAddress,\n ) -> [Field; MESSAGE_CIPHERTEXT_LEN] {\n // AES 128 operates on bytes, not fields, so we need to convert the fields to bytes.\n // (This process is then reversed when processing the message in `do_process_message`)\n let plaintext_bytes = fields_to_bytes(plaintext);\n\n // *****************************************************************************\n // Compute the shared secret\n // *****************************************************************************\n\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let eph_pk_sign_byte: u8 = get_sign_of_point(eph_pk) as u8;\n\n // (not to be confused with the tagging shared secret)\n // TODO (#17158): Currently we unwrap the Option returned by derive_ecdh_shared_secret.\n // We need to handle the case where the ephemeral public key is invalid to prevent potential DoS vectors.\n let ciphertext_shared_secret = derive_ecdh_shared_secret(\n eph_sk,\n recipient\n .to_address_point()\n .unwrap_or(\n // Safety: if the recipient is an invalid address, then it is not possible to encrypt a message for\n // them because we cannot establish a shared secret. This is never expected to occur during normal\n // operation. However, it is technically possible for us to receive an invalid address, and we must\n // therefore handle it.\n // We could simply fail, but that'd introduce a potential security issue in which an attacker forces\n // a contract to encrypt a message for an invalid address, resulting in an impossible transaction -\n // this is sometimes called a 'king of the hill' attack.\n // We choose instead to not fail and encrypt the plaintext regardless using the shared secret that\n // results from a random valid address. The sender is free to choose this address and hence shared\n // secret, but this has no security implications as they already know not only the full plaintext\n // but also the ephemeral private key anyway.\n unsafe { random_address_point() },\n )\n .inner,\n );\n // TODO: also use this shared secret for deriving note randomness.\n\n // *****************************************************************************\n // Convert the plaintext into whatever format the encryption function expects\n // *****************************************************************************\n\n // Already done for this strategy: AES expects bytes.\n\n // *****************************************************************************\n // Encrypt the plaintext\n // *****************************************************************************\n\n // It is safe to call the `unsafe` function here, because we know the `shared_secret`\n // was derived using an AztecAddress (the recipient). See the block comment\n // at the start of this unsafe target function for more info.\n let pairs = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<2>(\n ciphertext_shared_secret,\n );\n let (body_sym_key, body_iv) = pairs[0];\n let (header_sym_key, header_iv) = pairs[1];\n\n let ciphertext_bytes = aes128_encrypt(plaintext_bytes, body_iv, body_sym_key);\n\n // |full_pt| = |pt_length| + |pt|\n // |pt_aes_padding| = 16 - (|full_pt| % 16)\n // or... since a % b is the same as a - b * (a // b) (integer division), so:\n // |pt_aes_padding| = 16 - (|full_pt| - 16 * (|full_pt| // 16))\n // |ct| = |full_pt| + |pt_aes_padding|\n // = |full_pt| + 16 - (|full_pt| - 16 * (|full_pt| // 16))\n // = 16 + 16 * (|full_pt| // 16)\n // = 16 * (1 + |full_pt| // 16)\n std::static_assert(\n ciphertext_bytes.len() == 16 * (1 + (PlaintextLen * 32) / 16),\n \"unexpected ciphertext length\",\n );\n\n // *****************************************************************************\n // Compute the header ciphertext\n // *****************************************************************************\n\n // Header contains only the length of the ciphertext stored in 2 bytes.\n let mut header_plaintext: [u8; 2] = [0 as u8; 2];\n let ciphertext_bytes_length = ciphertext_bytes.len();\n header_plaintext[0] = (ciphertext_bytes_length >> 8) as u8;\n header_plaintext[1] = ciphertext_bytes_length as u8;\n\n // Note: the aes128_encrypt builtin fn automatically appends bytes to the\n // input, according to pkcs#7; hence why the output `header_ciphertext_bytes` is 16\n // bytes larger than the input in this case.\n let header_ciphertext_bytes = aes128_encrypt(header_plaintext, header_iv, header_sym_key);\n // I recall that converting a slice to an array incurs constraints, so I'll check the length this way instead:\n std::static_assert(\n header_ciphertext_bytes.len() == HEADER_CIPHERTEXT_SIZE_IN_BYTES,\n \"unexpected ciphertext header length\",\n );\n\n // *****************************************************************************\n // Prepend / append more bytes of data to the ciphertext, before converting back\n // to fields.\n // *****************************************************************************\n\n let mut message_bytes_padding_to_mult_31 =\n get_arr_of_size__message_bytes_padding__from_PT::<PlaintextLen * 32>();\n // Safety: this randomness won't be constrained to be random. It's in the\n // interest of the executor of this fn to encrypt with random bytes.\n message_bytes_padding_to_mult_31 = unsafe { get_random_bytes() };\n\n let mut message_bytes = get_arr_of_size__message_bytes__from_PT::<PlaintextLen * 32>();\n\n std::static_assert(\n message_bytes.len() % 31 == 0,\n \"Unexpected error: message_bytes.len() should be divisible by 31, by construction.\",\n );\n\n message_bytes[0] = eph_pk_sign_byte;\n let mut offset = 1;\n for i in 0..header_ciphertext_bytes.len() {\n message_bytes[offset + i] = header_ciphertext_bytes[i];\n }\n offset += header_ciphertext_bytes.len();\n\n for i in 0..ciphertext_bytes.len() {\n message_bytes[offset + i] = ciphertext_bytes[i];\n }\n offset += ciphertext_bytes.len();\n\n for i in 0..message_bytes_padding_to_mult_31.len() {\n message_bytes[offset + i] = message_bytes_padding_to_mult_31[i];\n }\n offset += message_bytes_padding_to_mult_31.len();\n\n // Ideally we would be able to have a static assert where we check that the offset would be such that we've\n // written to the entire log_bytes array, but we cannot since Noir does not treat the offset as a comptime\n // value (despite the values that it goes through being known at each stage). We instead check that the\n // computation used to obtain the offset computes the expected value (which we _can_ do in a static check), and\n // then add a cheap runtime check to also validate that the offset matches this.\n std::static_assert(\n 1\n + header_ciphertext_bytes.len()\n + ciphertext_bytes.len()\n + message_bytes_padding_to_mult_31.len()\n == message_bytes.len(),\n \"unexpected message length\",\n );\n assert(offset == message_bytes.len(), \"unexpected encrypted message length\");\n\n // *****************************************************************************\n // Convert bytes back to fields\n // *****************************************************************************\n\n // TODO(#12749): As Mike pointed out, we need to make messages produced by different encryption schemes\n // indistinguishable from each other and for this reason the output here and in the last for-loop of this function\n // should cover a full field.\n let message_bytes_as_fields = bytes_to_fields(message_bytes);\n\n // *****************************************************************************\n // Prepend / append fields, to create the final message\n // *****************************************************************************\n\n let mut ciphertext: [Field; MESSAGE_CIPHERTEXT_LEN] = [0; MESSAGE_CIPHERTEXT_LEN];\n\n ciphertext[0] = eph_pk.x;\n\n let mut offset = 1;\n for i in 0..message_bytes_as_fields.len() {\n ciphertext[offset + i] = message_bytes_as_fields[i];\n }\n offset += message_bytes_as_fields.len();\n\n for i in offset..MESSAGE_CIPHERTEXT_LEN {\n // We need to get a random value that fits in 31 bytes to not leak information about the size of the message\n // (all the \"real\" message fields contain at most 31 bytes because of the way we convert the bytes to fields).\n // TODO(#12749): Long term, this is not a good solution.\n\n // Safety: we assume that the sender wants for the message to be private - a malicious one could simply reveal its\n // contents publicly. It is therefore fine to trust the sender to provide random padding.\n let field_bytes = unsafe { get_random_bytes::<31>() };\n ciphertext[i] = Field::from_be_bytes::<31>(field_bytes);\n }\n\n ciphertext\n }\n\n unconstrained fn decrypt(\n ciphertext: BoundedVec<Field, MESSAGE_CIPHERTEXT_LEN>,\n recipient: AztecAddress,\n ) -> Option<BoundedVec<Field, MESSAGE_PLAINTEXT_LEN>> {\n let eph_pk_x = ciphertext.get(0);\n\n let ciphertext_without_eph_pk_x_fields = array::subbvec::<Field, MESSAGE_CIPHERTEXT_LEN, MESSAGE_CIPHERTEXT_LEN - EPH_PK_X_SIZE_IN_FIELDS>(\n ciphertext,\n EPH_PK_X_SIZE_IN_FIELDS,\n );\n\n // Convert the ciphertext represented as fields to a byte representation (its original format)\n let ciphertext_without_eph_pk_x = bytes_from_fields(ciphertext_without_eph_pk_x_fields);\n\n // First byte of the ciphertext represents the ephemeral public key sign\n let eph_pk_sign_bool = ciphertext_without_eph_pk_x.get(0) != 0;\n\n // With the sign and the x-coordinate of the ephemeral public key, we can reconstruct the point. This may fail\n // however, as not all x-coordinates are on the curve. In that case, we simply return `Option::none`.\n point_from_x_coord_and_sign(eph_pk_x, eph_pk_sign_bool).map(|eph_pk| {\n // Derive shared secret\n let ciphertext_shared_secret = get_shared_secret(recipient, eph_pk);\n\n // Derive symmetric keys:\n let pairs = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<2>(\n ciphertext_shared_secret,\n );\n let (body_sym_key, body_iv) = pairs[0];\n let (header_sym_key, header_iv) = pairs[1];\n\n // Extract the header ciphertext\n let header_start = EPH_PK_SIGN_BYTE_SIZE_IN_BYTES; // Skip eph_pk_sign byte\n let header_ciphertext: [u8; HEADER_CIPHERTEXT_SIZE_IN_BYTES] =\n array::subarray(ciphertext_without_eph_pk_x.storage(), header_start);\n // We need to convert the array to a BoundedVec because the oracle expects a BoundedVec as it's designed to work\n // with messages with unknown length at compile time. This would not be necessary here as the header ciphertext length\n // is fixed. But we do it anyway to not have to have duplicate oracles.\n let header_ciphertext_bvec =\n BoundedVec::<u8, HEADER_CIPHERTEXT_SIZE_IN_BYTES>::from_array(header_ciphertext);\n\n // Decrypt header\n let header_plaintext =\n aes128_decrypt_oracle(header_ciphertext_bvec, header_iv, header_sym_key);\n\n // Extract ciphertext length from header (2 bytes, big-endian)\n let ciphertext_length =\n ((header_plaintext.get(0) as u32) << 8) | (header_plaintext.get(1) as u32);\n\n // Extract and decrypt main ciphertext\n let ciphertext_start = header_start + HEADER_CIPHERTEXT_SIZE_IN_BYTES;\n let ciphertext_with_padding: [u8; (MESSAGE_CIPHERTEXT_LEN - EPH_PK_X_SIZE_IN_FIELDS) * 31 - HEADER_CIPHERTEXT_SIZE_IN_BYTES - EPH_PK_SIGN_BYTE_SIZE_IN_BYTES] =\n array::subarray(ciphertext_without_eph_pk_x.storage(), ciphertext_start);\n let ciphertext: BoundedVec<u8, (MESSAGE_CIPHERTEXT_LEN - EPH_PK_X_SIZE_IN_FIELDS) * 31 - HEADER_CIPHERTEXT_SIZE_IN_BYTES - EPH_PK_SIGN_BYTE_SIZE_IN_BYTES> =\n BoundedVec::from_parts(ciphertext_with_padding, ciphertext_length);\n\n // Decrypt main ciphertext and return it\n let plaintext_bytes = aes128_decrypt_oracle(ciphertext, body_iv, body_sym_key);\n\n // Each field of the original note message was serialized to 32 bytes so we convert the bytes back to fields.\n fields_from_bytes(plaintext_bytes)\n })\n }\n}\n\n/// Produces a random valid address point, i.e. one that is on the curve. This is equivalent to calling\n/// [AztecAddress::to_address_point] on a random valid address.\nunconstrained fn random_address_point() -> AddressPoint {\n let mut result = std::mem::zeroed();\n\n loop {\n // We simply produce random x coordinates until we find one that is on the curve. About half of the x\n // coordinates fulfill this condition, so this should only take a few iterations at most.\n let x_coord = random();\n let point = point_from_x_coord_and_sign(x_coord, true);\n if point.is_some() {\n result = AddressPoint { inner: point.unwrap() };\n break;\n }\n }\n\n result\n}\n\nmod test {\n use crate::{\n keys::ecdh_shared_secret::derive_ecdh_shared_secret,\n messages::{\n encoding::MESSAGE_PLAINTEXT_LEN, encryption::message_encryption::MessageEncryption,\n },\n test::helpers::test_environment::TestEnvironment,\n };\n use super::{AES128, random_address_point};\n use protocol_types::{address::AztecAddress, traits::FromField};\n use std::{embedded_curve_ops::EmbeddedCurveScalar, test::OracleMock};\n\n #[test]\n unconstrained fn encrypt_decrypt_deterministic() {\n let env = TestEnvironment::new();\n\n // Message decryption requires oracles that are only available during private execution\n env.private_context(|_| {\n let plaintext = [1, 2, 3];\n\n let recipient = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n // Mock random values for deterministic test\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"utilityGetRandomField\").returns(eph_sk).times(1);\n\n let randomness = 0x0101010101010101010101010101010101010101010101010101010101010101;\n let _ = OracleMock::mock(\"utilityGetRandomField\").returns(randomness).times(1000000);\n\n let _ = OracleMock::mock(\"privateGetNextAppTagAsSender\").returns(42);\n\n // Encrypt the message\n let encrypted_message = BoundedVec::from_array(AES128::encrypt(plaintext, recipient));\n\n // Mock shared secret for deterministic test\n let shared_secret = derive_ecdh_shared_secret(\n EmbeddedCurveScalar::from_field(eph_sk),\n recipient.to_address_point().unwrap().inner,\n );\n\n let _ = OracleMock::mock(\"utilityGetSharedSecret\").returns(shared_secret);\n\n // Decrypt the message\n let decrypted = AES128::decrypt(encrypted_message, recipient).unwrap();\n\n // The decryption function spits out a BoundedVec because it's designed to work with messages with unknown length\n // at compile time. For this reason we need to convert the original input to a BoundedVec.\n let plaintext_bvec = BoundedVec::<Field, MESSAGE_PLAINTEXT_LEN>::from_array(plaintext);\n\n // Verify decryption matches original plaintext\n assert_eq(\n decrypted,\n plaintext_bvec,\n \"Decrypted bytes should match original plaintext\",\n );\n\n // The following is a workaround of \"struct is never constructed\" Noir compilation error (we only ever use\n // static methods of the struct).\n let _ = AES128 {};\n });\n }\n\n #[test]\n unconstrained fn encrypt_decrypt_random() {\n // Same as `encrypt_decrypt_deterministic`, except we don't mock any of the oracles and rely on\n // `TestEnvironment` instead.\n let mut env = TestEnvironment::new();\n\n let recipient = env.create_light_account();\n\n env.private_context(|_| {\n let plaintext = [1, 2, 3];\n let ciphertext = AES128::encrypt(plaintext, recipient);\n\n assert_eq(\n AES128::decrypt(BoundedVec::from_array(ciphertext), recipient).unwrap(),\n BoundedVec::from_array(plaintext),\n );\n });\n }\n\n #[test]\n unconstrained fn encrypt_to_invalid_address() {\n // x = 3 is a non-residue for this curve, resulting in an invalid address\n let invalid_address = AztecAddress { inner: 3 };\n\n // We just test that we produced some output and did not crash - the result is gibberish as it is encrypted\n // using a public key for which we do not know the private key.\n let _ = AES128::encrypt([1, 2, 3, 4], invalid_address);\n }\n\n #[test]\n unconstrained fn random_address_point_produces_valid_points() {\n // About half of random addresses are invalid, so testing just a couple gives us high confidence that\n // `random_address_point` is indeed producing valid addresses.\n for _ in 0..10 {\n let random_address = AztecAddress { inner: random_address_point().inner.x };\n assert(random_address.to_address_point().is_some());\n }\n }\n\n #[test]\n unconstrained fn decrypt_invalid_ephemeral_public_key() {\n let mut env = TestEnvironment::new();\n\n let recipient = env.create_light_account();\n\n env.private_context(|_| {\n let plaintext = [1, 2, 3, 4];\n let ciphertext = AES128::encrypt(plaintext, recipient);\n\n // The first field of the ciphertext is the x-coordinate of the ephemeral public key. We set it to a known\n // non-residue (3), causing `decrypt` to fail to produce a decryption shared secret.\n let mut bad_ciphertext = BoundedVec::from_array(ciphertext);\n bad_ciphertext.set(0, 3);\n\n assert(AES128::decrypt(bad_ciphertext, recipient).is_none());\n });\n }\n}\n"
|
|
2586
2586
|
},
|
|
2587
2587
|
"137": {
|
|
2588
2588
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/logs/event.nr",
|
|
2589
|
-
"source": "use crate::{\n event::{event_interface::EventInterface, event_selector::EventSelector},\n messages::{\n encoding::{encode_message, MAX_MESSAGE_CONTENT_LEN, MESSAGE_EXPANDED_METADATA_LEN},\n msg_type::PRIVATE_EVENT_MSG_TYPE_ID,\n },\n utils::array,\n};\nuse protocol_types::{\n constants::
|
|
2589
|
+
"source": "use crate::{\n event::{event_interface::EventInterface, event_selector::EventSelector},\n messages::{\n encoding::{encode_message, MAX_MESSAGE_CONTENT_LEN, MESSAGE_EXPANDED_METADATA_LEN},\n msg_type::PRIVATE_EVENT_MSG_TYPE_ID,\n },\n utils::array,\n};\nuse protocol_types::{\n constants::DOM_SEP__EVENT_COMMITMENT,\n hash::poseidon2_hash_with_separator_bounded_vec,\n traits::{FromField, Serialize, ToField},\n};\n\n/// The number of fields in a private event message content that are not the event's serialized representation\n/// (1 field for randomness).\npub(crate) global PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN: u32 = 1;\npub(crate) global PRIVATE_EVENT_MSG_PLAINTEXT_RANDOMNESS_INDEX: u32 = 0;\n\n/// The maximum length of the packed representation of an event's contents. This is limited by private log size,\n/// encryption overhead and extra fields in the message (e.g. message type id, randomness, etc.).\npub(crate) global MAX_EVENT_SERIALIZED_LEN: u32 =\n MAX_MESSAGE_CONTENT_LEN - PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN;\n\n/// Creates the plaintext for a private event message (i.e. one of type [PRIVATE_EVENT_MSG_TYPE_ID]).\n///\n/// This plaintext is meant to be decoded via [decode_private_event_message].\npub fn encode_private_event_message<Event>(\n event: Event,\n randomness: Field,\n ) -> [Field; PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN + <Event as Serialize>::N + MESSAGE_EXPANDED_METADATA_LEN]\nwhere\n Event: EventInterface + Serialize,\n{\n // We use `Serialize` because we want for events to be processable by off-chain actors, e.g. block explorers,\n // wallets and apps, without having to rely on contract invocation. If we used `Packable` we'd need to call utility\n // functions in order to unpack events, which would introduce a level of complexity we don't currently think is\n // worth the savings in DA (for public events) and proving time (when encrypting private event messages).\n let serialized_event = event.serialize();\n\n // If PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN is changed, causing the assertion below to fail, then the\n // encoding below must be updated as well.\n std::static_assert(\n PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN == 1,\n \"unexpected value for PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN\",\n );\n\n let mut msg_plaintext =\n [0; PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN + <Event as Serialize>::N];\n msg_plaintext[PRIVATE_EVENT_MSG_PLAINTEXT_RANDOMNESS_INDEX] = randomness;\n\n for i in 0..serialized_event.len() {\n msg_plaintext[PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN + i] = serialized_event[i];\n }\n\n // Private events use the event type id for metadata\n encode_message(\n PRIVATE_EVENT_MSG_TYPE_ID,\n Event::get_event_type_id().to_field() as u64,\n msg_plaintext,\n )\n}\n\n/// Decodes the plaintext from a private event message (i.e. one of type [PRIVATE_EVENT_MSG_TYPE_ID]).\n///\n/// This plaintext is meant to have originated from [encode_private_event_message].\n///\n/// Note that while [encode_private_event_message] returns a fixed-size array, this function takes a [BoundedVec]\n/// instead. This is because when decoding we're typically processing runtime-sized plaintexts, more specifically, those\n/// that originate from [crate::messages::encryption::message_encryption::MessageEncryption::decrypt].\npub(crate) unconstrained fn decode_private_event_message(\n msg_metadata: u64,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n) -> (EventSelector, BoundedVec<Field, MAX_EVENT_SERIALIZED_LEN>, Field) {\n // In the case of events, the msg metadata is the event selector.\n let event_type_id = EventSelector::from_field(msg_metadata as Field);\n\n assert(\n msg_content.len() > PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN,\n f\"Invalid private event message: all private event messages must have at least {PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN} fields\",\n );\n\n // If PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN is changed, causing the assertion below to fail, then the\n // destructuring of the private event message encoding below must be updated as well.\n std::static_assert(\n PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN == 1,\n \"unexpected value for PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN\",\n );\n\n let serialized_event_with_randomness = msg_content;\n\n let event_commitment = poseidon2_hash_with_separator_bounded_vec(\n serialized_event_with_randomness,\n DOM_SEP__EVENT_COMMITMENT,\n );\n\n // Randomness was injected into the event payload in `emit_event_in_private` but we have already used it\n // to compute the event commitment, so we can safely discard it now.\n let serialized_event = array::subbvec(\n serialized_event_with_randomness,\n PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN,\n );\n\n (event_type_id, serialized_event, event_commitment)\n}\n\nmod test {\n use crate::{\n event::event_interface::EventInterface,\n messages::{\n encoding::decode_message,\n logs::event::{decode_private_event_message, encode_private_event_message},\n msg_type::PRIVATE_EVENT_MSG_TYPE_ID,\n },\n };\n use crate::test::mocks::mock_event::MockEvent;\n use protocol_types::traits::Serialize;\n\n global VALUE: Field = 7;\n global RANDOMNESS: Field = 10;\n\n #[test]\n unconstrained fn encode_decode() {\n let event = MockEvent::new(VALUE).build_event();\n\n let message_plaintext = encode_private_event_message(event, RANDOMNESS);\n\n let (msg_type_id, msg_metadata, msg_content) =\n decode_message(BoundedVec::from_array(message_plaintext));\n\n assert_eq(msg_type_id, PRIVATE_EVENT_MSG_TYPE_ID);\n\n let (event_type_id, serialized_event, _) =\n decode_private_event_message(msg_metadata, msg_content);\n\n assert_eq(event_type_id, MockEvent::get_event_type_id());\n assert_eq(serialized_event, BoundedVec::from_array(event.serialize()));\n }\n}\n"
|
|
2590
2590
|
},
|
|
2591
2591
|
"139": {
|
|
2592
2592
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/logs/note.nr",
|
|
@@ -2674,41 +2674,41 @@
|
|
|
2674
2674
|
},
|
|
2675
2675
|
"313": {
|
|
2676
2676
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
|
|
2677
|
-
"source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{
|
|
2677
|
+
"source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{AZTEC_ADDRESS_LENGTH, DOM_SEP__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE},\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n utils::field::{pow, sqrt},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\nuse std::meta::derive;\n\n// Aztec address\n#[derive(Deserialize, Eq, Packable, Serialize)]\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n /// Returns an address's `AddressPoint`, which can be used to create shared secrets with the owner\n /// of the address. If the address is invalid (i.e. it is not a properly derived Aztec address), then this\n /// returns `Option::none()`, and no shared secrets can be created.\n pub fn to_address_point(self) -> Option<AddressPoint> {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // An invalid AztecAddress is one for which no y coordinate satisfies the curve equation, which we'll\n // identify by proving that the square root of y_squared does not exist.\n let mut y_opt = sqrt(y_squared);\n if y_opt.is_none() {\n Option::none()\n } else {\n let mut y = y_opt.unwrap();\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n Option::some(\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } },\n )\n }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n DOM_SEP__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secret can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_class_id(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], DOM_SEP__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n // We use the AZTEC_ADDRESS_LENGTH constant to ensure that there is a match between the derived trait\n // implementation and the constant.\n let serialized: [Field; AZTEC_ADDRESS_LENGTH] = address.serialize();\n let deserialized = AztecAddress::deserialize(serialized);\n assert_eq(address, deserialized);\n}\n\n#[test]\nfn to_address_point_valid() {\n // x = 8 where x^3 - 17 = 512 - 17 = 495, which is a residue in this field\n let address = AztecAddress { inner: 8 };\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_some());\n\n let point = maybe_point.unwrap().inner;\n // check that x is preserved\n assert_eq(point.x, Field::from(8));\n\n // check that the curve equation holds: y^2 == x^3 - 17\n assert_eq(pow(point.y, 2), pow(point.x, 3) - 17);\n}\n\n#[test]\nunconstrained fn to_address_point_invalid() {\n // x = 3 where x^3 - 17 = 27 - 17 = 10, which is a non-residue in this field\n let address = AztecAddress { inner: 3 }; //\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_none());\n}\n"
|
|
2678
2678
|
},
|
|
2679
2679
|
"334": {
|
|
2680
2680
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
2681
2681
|
"source": "// TODO: Expose other wrapped functions than debug (info, warn)\n// ['silent', 'fatal', 'error', 'warn', 'info', 'verbose', 'debug', 'trace']\n\npub global SILENT_LOG_LEVEL: u8 = 0;\npub global FATAL_LOG_LEVEL: u8 = 1;\npub global ERROR_LOG_LEVEL: u8 = 2;\npub global WARN_LOG_LEVEL: u8 = 3;\npub global INFO_LOG_LEVEL: u8 = 4;\npub global VERBOSE_LOG_LEVEL: u8 = 5;\npub global DEBUG_LOG_LEVEL: u8 = 6;\npub global TRACE_LOG_LEVEL: u8 = 7;\n\n/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Same as debug_log, but allows to customize the log level.\n/// Consider changing just to 'log'\npub fn debug_log_with_level<let N: u32>(log_level: u8, msg: str<N>) {\n debug_log_format_with_level(log_level, msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(DEBUG_LOG_LEVEL, msg, args) };\n}\n\n/// Same as debug_log_format, but allows to customize the log level.\n/// Consider changing just to 'log_format'\npub fn debug_log_format_with_level<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(log_level, msg, args) };\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` slice.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole slice: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format_slice<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_slice_oracle_wrapper(log_level, msg, args) };\n}\n\n// We provide two versions of the debug log oracle: one that takes args as a slice and another one that takes args as an array.\n// We do this since conversion from array to slice generates overhead in public functions, since opcodes need to be emitted for the conversion.\n// By exposing the two flavors, we avoid conversions since the AVM is able to handle both arrays an slices in this oracle.\n\nunconstrained fn debug_log_slice_oracle_wrapper<let M: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field],\n) {\n debug_log_slice_oracle(log_level, msg, args);\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_slice_oracle<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {}\n\nunconstrained fn debug_log_array_oracle_wrapper<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_array_oracle(log_level, msg, N, args);\n}\n\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_array_oracle<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n length: u32,\n args: [Field; N],\n) {}\n"
|
|
2682
2682
|
},
|
|
2683
|
-
"
|
|
2683
|
+
"345": {
|
|
2684
2684
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
2685
|
-
"source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_log::{PrivateLog, PrivateLogData},\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE,\n GENERATOR_INDEX__OUTER_NULLIFIER, GENERATOR_INDEX__SILOED_NOTE_HASH,\n GENERATOR_INDEX__UNIQUE_NOTE_HASH, NULL_MSG_SENDER_CONTRACT_ADDRESS, TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n compute_nonce_and_unique_note_hash(siloed_note_hash, first_nullifier, note_index_in_tx)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: Scoped<Counted<NoteHash>>) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.innermost())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: Scoped<Counted<Nullifier>>) -> Field {\n let value = nullifier.innermost().value;\n // Q: shouldn't we be checking whether the _whole_ nullifier is empty?\n // A: We don't have to. The init and inner circuits add contract address to non-empty nullifiers.\n // So we know we should silo it if the contract address is not empty.\n if nullifier.contract_address.is_zero() {\n value // Return `value` instead of 0 because an already-siloed nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, value)\n }\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<Counted<PrivateLogData>>) -> PrivateLog {\n let log = private_log.innermost().log;\n if private_log.contract_address.is_zero() {\n log\n } else {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n app_secret_generator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n app_secret_generator,\n )\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = recipient.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.inner.recipient,\n msg.inner.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs.get(i));\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0x3b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0xaab2a5828156782b12a1dc6f336e2bc627eb1b9514b02d511f66296990c050);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n ),\n version,\n chainId,\n );\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let hash_from_typescript = 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, hash_from_typescript);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
|
|
2685
|
+
"source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_log::{PrivateLog, PrivateLogData},\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, DOM_SEP__NOTE_HASH_NONCE, DOM_SEP__OUTER_NULLIFIER,\n DOM_SEP__SILOED_NOTE_HASH, DOM_SEP__UNIQUE_NOTE_HASH, FUNCTION_TREE_HEIGHT,\n NULL_MSG_SENDER_CONTRACT_ADDRESS, TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n DOM_SEP__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, DOM_SEP__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator([app.to_field(), note_hash], DOM_SEP__SILOED_NOTE_HASH)\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n compute_nonce_and_unique_note_hash(siloed_note_hash, first_nullifier, note_index_in_tx)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: Scoped<Counted<NoteHash>>) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.innermost())\n }\n}\n\npub fn compute_siloed_nullifier(contract_address: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), nullifier],\n DOM_SEP__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: Scoped<Counted<Nullifier>>) -> Field {\n let value = nullifier.innermost().value;\n // Q: shouldn't we be checking whether the _whole_ nullifier is empty?\n // A: We don't have to. The init and inner circuits add contract address to non-empty nullifiers.\n // So we know we should silo it if the contract address is not empty.\n if nullifier.contract_address.is_zero() {\n value // Return `value` instead of 0 because an already-siloed nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, value)\n }\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<Counted<PrivateLogData>>) -> PrivateLog {\n let log = private_log.innermost().log;\n if private_log.contract_address.is_zero() {\n log\n } else {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n app_secret_generator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n app_secret_generator,\n )\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = recipient.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.inner.recipient,\n msg.inner.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs.get(i));\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0x3b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0xaab2a5828156782b12a1dc6f336e2bc627eb1b9514b02d511f66296990c050);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n ),\n version,\n chainId,\n );\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let hash_from_typescript = 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, hash_from_typescript);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
|
|
2686
2686
|
},
|
|
2687
|
-
"
|
|
2687
|
+
"358": {
|
|
2688
2688
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr",
|
|
2689
2689
|
"source": "use utils::derive_serialization_quotes;\n\npub mod utils;\n\n/// Generates the generic parameter declarations for a struct's trait implementation.\n///\n/// This function takes a struct type definition and generates the generic parameter declarations\n/// that go after the `impl` keyword. For example, given a struct with generics `N: u32` and `T`,\n/// it generates `<let N: u32, T>`.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate generic declarations for\n///\n/// # Returns\n/// A quoted code block containing the generic parameter declarations, or an empty quote if the struct\n/// has no generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// This function generates:\n/// ```\n/// <let N: u32, T>\n/// ```\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\n/// Generates the `where` clause for a trait implementation that constrains non-numeric generic type parameters.\n///\n/// This function takes a struct type definition and a trait name, and generates a `where` clause that\n/// requires all non-numeric generic type parameters to implement the specified trait.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the where clause for\n/// - `trait_name`: The name of the trait that non-numeric generic parameters must implement\n///\n/// # Returns\n/// A quoted code block containing the where clause, or an empty quote if the struct has no non-numeric\n/// generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// And trait name \"Serialize\", this function generates:\n/// ```\n/// where T: Serialize\n/// ```\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// #[inline_always]\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut serialized_params = [0; _];\n/// let mut offset = 0;\n///\n/// let serialized_member = Serialize::serialize(self.fields);\n/// let serialized_member_len = <[Field; N] as Serialize>::N;\n/// for i in 0..serialized_member_len {\n/// serialized_params[i + offset] = serialized_member[i];\n/// }\n/// offset += serialized_member_len;\n///\n/// let serialized_member = Serialize::serialize(self.length);\n/// let serialized_member_len = <u32 as Serialize>::N;\n/// for i in 0..serialized_member_len {\n/// serialized_params[i + offset] = serialized_member[i];\n/// }\n/// offset += serialized_member_len;\n///\n/// serialized_params\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote {Serialize});\n\n let (function_body, params_len_quote, serialized_params_name) =\n derive_serialization_quotes(params, true);\n\n quote {\n impl$generics_declarations $crate::traits::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n $function_body\n\n $serialized_params_name\n }\n }\n }\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(serialized: [Field; Self::N]) -> Self {\n/// let mut offset = 0;\n/// let mut member_fields = [0; <AztecAddress as Deserialize>::N];\n/// for i in 0..<AztecAddress as Deserialize>::N {\n/// member_fields[i] = serialized[i + offset];\n/// }\n/// let x = <AztecAddress as Deserialize>::deserialize(member_fields);\n/// offset += <AztecAddress as Deserialize>::N;\n///\n/// let mut member_fields = [0; <Field as Deserialize>::N];\n/// for i in 0..<Field as Deserialize>::N {\n/// member_fields[i] = serialized[i + offset];\n/// }\n/// let y = <Field as Deserialize>::deserialize(member_fields);\n/// offset += <Field as Deserialize>::N;\n///\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub(crate) comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote {Deserialize});\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as Deserialize>::N];\n for i in 0..<$param_type as Deserialize>::N {\n member_fields[i] = serialized[i + offset];\n }\n let $param_name = <$param_type as Deserialize>::deserialize(member_fields);\n offset += <$param_type as Deserialize>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Deserialize::deserialize(serialized) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn deserialize(serialized: [Field; Self::N]) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a `Packable` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Packable` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Packable for MyStruct {\n/// let N: u32 = 2;\n///\n/// fn pack(self) -> [Field; 2] {\n/// let mut result: [Field; 2] = [0_Field; 2];\n/// let mut offset: u32 = 0_u32;\n/// let packed_member: [Field; 1] = self.x.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// let packed_member: [Field; 1] = self.y.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// result\n/// }\n///\n/// fn unpack(packed: [Field; 2]) -> Self {\n/// let mut offset: u32 = 0_u32;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<AztecAddress as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let x: AztecAddress = <AztecAddress as Packable>::unpack(member_fields);\n/// offset = offset + <AztecAddress as Packable>::N;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<Field as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let y: Field = <Field as Packable>::unpack(member_fields);\n/// offset = offset + <Field as Packable>::N;\n/// Self { x: x, y: y }\n/// }\n/// }\n/// ```\npub comptime fn derive_packable(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Packable` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_packable_clause = get_where_trait_clause(s, quote {Packable});\n\n // The following will give us:\n // <type_of_struct_member_1 as Packable>::N + <type_of_struct_member_2 as Packable>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Packable>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly returning the packed member,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let pack_function_body = if params.len() > 1 {\n // For multiple struct members, generate packing code that:\n // 1. Packs each member\n // 2. Copies the packed fields into the result array at the correct offset\n // 3. Updates the offset for the next member\n let packing_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let packed_member = $crate::traits::Packable::pack(self.$param_name);\n let packed_member_len = <$param_type as $crate::traits::Packable>::N;\n for i in 0..packed_member_len {\n result[i + offset] = packed_member[i];\n }\n offset += packed_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut result = [0; Self::N];\n let mut offset = 0;\n\n $packing_of_struct_members\n\n result\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n $crate::traits::Packable::pack(self.$param_name)\n }\n } else {\n quote {\n [0; Self::N]\n }\n };\n\n // For structs containing a single member, we can enhance performance by directly unpacking the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let unpack_function_body = if params.len() > 1 {\n // For multiple struct members, generate unpacking code that:\n // 1. Unpacks each member\n // 2. Copies packed fields into member array at correct offset\n // 3. Updates offset for next member\n let unpacking_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as $crate::traits::Packable>::N];\n for i in 0..<$param_type as $crate::traits::Packable>::N {\n member_fields[i] = packed[i + offset];\n }\n let $param_name = <$param_type as $crate::traits::Packable>::unpack(member_fields);\n offset += <$param_type as $crate::traits::Packable>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n $unpacking_of_struct_members\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Packable::unpack(packed) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Packable for $typ\n $where_packable_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n $pack_function_body\n }\n\n #[inline_always]\n fn unpack(packed: [Field; Self::N]) -> Self {\n $unpack_function_body\n }\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Packable, Serialize};\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Empty {}\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Smol {\n a: Field,\n b: Field,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct HasArray {\n a: [Field; 2],\n b: bool,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct Fancier {\n a: Smol,\n b: [Field; 2],\n c: [u8; 3],\n d: str<16>,\n }\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct HasArrayWithGenerics<T, let N: u32> {\n pub fields: [T; N],\n pub length: u32,\n }\n\n #[test]\n fn serde_on_empty() {\n let original = Empty {};\n let serialized = original.serialize();\n assert_eq(serialized, [], \"Serialized does not match empty array\");\n let deserialized = Empty::deserialize(serialized);\n assert_eq(deserialized, original, \"Deserialized does not match original\");\n }\n\n #[test]\n fn packable_on_empty() {\n let original = Empty {};\n let packed = original.pack();\n assert_eq(packed, [], \"Packed does not match empty array\");\n let unpacked = Empty::unpack(packed);\n assert_eq(unpacked, original, \"Unpacked does not match original\");\n }\n\n #[test]\n fn serde_on_smol() {\n let smol = Smol { a: 1, b: 2 };\n let serialized = smol.serialize();\n assert(serialized == [1, 2], serialized);\n let deserialized = Smol::deserialize(serialized);\n assert(deserialized == smol);\n\n // None of the struct members implements the `Packable` trait so the packed and serialized data should be the same\n let packed = smol.pack();\n assert_eq(packed, serialized, \"Packed does not match serialized\");\n }\n\n #[test]\n fn serde_on_has_array() {\n let has_array = HasArray { a: [1, 2], b: true };\n let serialized = has_array.serialize();\n assert(serialized == [1, 2, 1], serialized);\n let deserialized = HasArray::deserialize(serialized);\n assert(deserialized == has_array);\n }\n\n #[test]\n fn serde_on_fancier() {\n let fancier =\n Fancier { a: Smol { a: 1, b: 2 }, b: [0, 1], c: [1, 2, 3], d: \"metaprogramming!\" };\n let serialized = fancier.serialize();\n assert(\n serialized\n == [\n 1, 2, 0, 1, 1, 2, 3, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,\n 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x21,\n ],\n serialized,\n );\n let deserialized = Fancier::deserialize(serialized);\n assert(deserialized == fancier);\n }\n\n #[test]\n fn serde_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let serialized = struct_with_array_of_generics.serialize();\n assert(serialized == [1, 2, 3, 3], serialized);\n let deserialized = HasArrayWithGenerics::deserialize(serialized);\n assert(deserialized == struct_with_array_of_generics);\n }\n\n #[test]\n fn packable_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let packed = struct_with_array_of_generics.pack();\n assert(packed == [1, 2, 3, 3], packed);\n\n let unpacked = HasArrayWithGenerics::unpack(packed);\n assert(unpacked == struct_with_array_of_generics);\n }\n\n}\n"
|
|
2690
2690
|
},
|
|
2691
|
-
"
|
|
2691
|
+
"359": {
|
|
2692
2692
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/utils.nr",
|
|
2693
2693
|
"source": "/// Generates serialization code for a list of parameters and the total length of the serialized array\n///\n/// # Parameters\n/// - `params`: A list of (name, type) tuples to serialize\n/// - `use_self_prefix`: If true, parameters are accessed as `self.$param_name` (for struct members).\n/// If false, parameters are accessed directly as `$param_name` (for function parameters).\n///\n/// # Returns\n/// A tuple containing:\n/// - Quoted code that serializes the parameters into an array named `serialized_params`\n/// - Quoted code that evaluates to the total length of the serialized array\n/// - Quoted code containing the name of the serialized array\npub comptime fn derive_serialization_quotes(\n params: [(Quoted, Type)],\n use_self_prefix: bool,\n) -> (Quoted, Quoted, Quoted) {\n let prefix_quote = if use_self_prefix {\n quote { self. }\n } else {\n quote {}\n };\n\n let params_len_quote = get_params_len_quote(params);\n let serialized_params_name = quote { serialized_params };\n\n let body = if params.len() == 0 {\n quote {\n let $serialized_params_name: [Field; 0] = [];\n }\n } else if params.len() == 1 {\n // When we have only a single parameter on the input, we can enhance performance by directly returning\n // the serialized member, bypassing the need for loop-based array construction. While this optimization yields\n // significant benefits in Brillig where the loops are expected to not be optimized, it is not relevant in ACIR\n // where the loops are expected to be optimized away.\n\n let param_name = params[0].0;\n quote {\n let $serialized_params_name = $crate::traits::Serialize::serialize($prefix_quote$param_name);\n }\n } else {\n // For multiple struct members, generate serialization code that:\n // 1. Serializes each member\n // 2. Copies the serialized fields into the serialize array at the correct offset\n // 3. Updates the offset for the next member\n let serialization_of_struct_members = params\n .map(|(param_name, param_type): (Quoted, Type)| {\n quote {\n let serialized_member = $crate::traits::Serialize::serialize($prefix_quote$param_name);\n let serialized_member_len = <$param_type as $crate::traits::Serialize>::N;\n for i in 0..serialized_member_len {\n $serialized_params_name[i + offset] = serialized_member[i];\n }\n offset += serialized_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut $serialized_params_name = [0; $params_len_quote];\n let mut offset = 0;\n\n $serialization_of_struct_members\n }\n };\n\n (body, params_len_quote, serialized_params_name)\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\npub comptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::traits::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n"
|
|
2694
2694
|
},
|
|
2695
|
-
"
|
|
2695
|
+
"361": {
|
|
2696
2696
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
|
|
2697
2697
|
"source": "use crate::constants::TWO_POW_64;\nuse crate::traits::{Deserialize, Serialize};\nuse std::meta::derive;\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\n#[derive(Deserialize, Eq, Serialize)]\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
|
|
2698
2698
|
},
|
|
2699
|
-
"
|
|
2699
|
+
"389": {
|
|
2700
2700
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
|
|
2701
2701
|
"source": "use crate::meta::{derive_deserialize, derive_packable, derive_serialize};\nuse crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for bool {\n #[inline_always]\n fn empty() -> Self {\n false\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let bytes = self.as_bytes();\n/// let mut fields = [0; Self::N];\n/// for i in 0..bytes.len() {\n/// fields[i] = bytes[i] as Field; // Each byte gets its own Field\n/// }\n/// fields\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let bytes = self.as_bytes();\n let mut fields = [0; Self::N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n/// Implementation of Deserialize for BoundedVec.\n///\n/// This implementation deserializes a BoundedVec from an array of Fields. The array contains:\n/// 1. The serialized items, each taking up T::N Fields\n/// 2. The length of the BoundedVec as the last Field\n///\n/// # Type Parameters\n/// * `T` - The type of items stored in the BoundedVec, must implement Deserialize\n/// * `M` - The maximum length of the BoundedVec\n///\n/// # Fields Array Layout\n/// [item1_field1, item1_field2, ..., item2_field1, item2_field2, ..., length]\n/// Where:\n/// - itemN_fieldM: The M-th Field of the N-th item (T::N Fields per item)\n/// - length: The number of items in the BoundedVec (1 Field)\n///\n/// Total length N = T::N * M + 1, where:\n/// - T::N is the number of Fields needed to deserialize one item\n/// - M is the maximum length of the BoundedVec\n/// - +1 is for storing the length\n///\n/// # Note\n/// Not deriving this because it's not supported to call derive_deserialize on a \"remote\" struct (and it will never\n/// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = fields[<T as Deserialize>::N * M] as u32;\n\n for i in 0..len {\n let mut nested_fields = [0; <T as Deserialize>::N];\n for j in 0..<T as Deserialize>::N {\n nested_fields[j] = fields[i * <T as Deserialize>::N + j];\n }\n\n let item = T::deserialize(nested_fields);\n new_bounded_vec.push(item);\n }\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(_fields: [Field; Self::N]) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut fields = [0; Self::N];\n\n let storage = self.storage();\n\n for i in 0..M {\n let serialized_item = storage[i].serialize();\n\n for j in 0..<T as Serialize>::N {\n fields[i * <T as Serialize>::N + j] = serialized_item[j];\n }\n }\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n fields[<T as Serialize>::N * M] = self.len() as Field;\n\n fields\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// #[inline_always]\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// str::<Self::N>::from(fields.map(|value| value as u8))\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n str::<Self::N>::from(fields.map(|value| value as u8))\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
|
|
2702
2702
|
},
|
|
2703
|
-
"
|
|
2703
|
+
"392": {
|
|
2704
2704
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
|
|
2705
2705
|
"source": "use crate::traits::{Deserialize, Serialize};\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> bool {\n fields[0] != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self]\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut result: [Field; _] = std::mem::zeroed();\n for i in 0..M {\n let serialized_t = self[i].serialize();\n for j in 0..<T as Serialize>::N {\n result[i * <T as Serialize>::N + j] = serialized_t[j];\n }\n }\n result\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Deserialize>::N, M>(Deserialize::deserialize, result)\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n\n result[0] = if self.is_some() { 1 } else { 0 };\n\n let value_serialized = self.unwrap_unchecked().serialize();\n for i in 0..<T as Serialize>::N {\n result[1 + i] = value_serialized[i];\n }\n\n result\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n if fields[0] == 1 {\n let mut value_fields = [0; <T as Deserialize>::N];\n for i in 0..<T as Deserialize>::N {\n value_fields[i] = fields[1 + i];\n }\n\n Option::some(T::deserialize(value_fields))\n } else {\n Option::none()\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Serialize};\n\n #[test]\n fn u16_serialization() {\n let a: u16 = 10;\n assert_eq(a, u16::deserialize(a.serialize()));\n }\n\n #[test]\n fn i8_serialization() {\n let a: i8 = -10;\n assert_eq(a, i8::deserialize(a.serialize()));\n }\n\n #[test]\n fn i16_serialization() {\n let a: i16 = -10;\n assert_eq(a, i16::deserialize(a.serialize()));\n }\n\n #[test]\n fn i32_serialization() {\n let a: i32 = -10;\n assert_eq(a, i32::deserialize(a.serialize()));\n }\n\n #[test]\n fn i64_serialization() {\n let a: i64 = -10;\n assert_eq(a, i64::deserialize(a.serialize()));\n }\n\n #[test]\n fn option_field_serialization() {\n let opt_some = Option::some(5);\n assert_eq(Option::<_>::deserialize(opt_some.serialize()), opt_some);\n\n let opt_none = Option::none();\n assert_eq(Option::<Field>::deserialize(opt_none.serialize()), opt_none);\n }\n\n #[test]\n fn array_serialization() {\n let array = [1, 2, 3, 4];\n\n let serialized: [Field; 4] = array.serialize();\n let deserialized: [Field; 4] = Deserialize::deserialize(serialized);\n assert_eq(deserialized, array);\n }\n\n #[test]\n fn nested_array_serialization() {\n let nested_array = [[1, 2, 3, 4], [5, 6, 7, 8]];\n\n let serialized: [Field; 8] = nested_array.serialize();\n let deserialized: [[Field; 4]; 2] = Deserialize::deserialize(serialized);\n\n assert_eq(deserialized, nested_array);\n }\n\n #[test]\n fn option_array_serialization() {\n let opt_some = Option::some([2, 5]);\n assert_eq(Option::<_>::deserialize(opt_some.serialize()), opt_some);\n\n let opt_none = Option::none();\n assert_eq(Option::<Field>::deserialize(opt_none.serialize()), opt_none);\n }\n}\n"
|
|
2706
2706
|
},
|
|
2707
|
-
"
|
|
2707
|
+
"397": {
|
|
2708
2708
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
|
|
2709
2709
|
"source": "global KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\n\npub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\npub fn min(f1: Field, f2: Field) -> Field {\n if f1.lt(f2) {\n f1\n } else {\n f2\n }\n}\n\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n\n/// Returns Option::some(sqrt) if there is a square root, and Option::none() if there isn't.\npub fn sqrt(x: Field) -> Option<Field> {\n // Safety: if the hint returns the square root of x, then we simply square it\n // check the result equals x. If x is not square, we return a value that\n // enables us to prove that fact (see the `else` clause below).\n let (is_sq, maybe_sqrt) = unsafe { __sqrt(x) };\n\n if is_sq {\n let sqrt = maybe_sqrt;\n validate_sqrt_hint(x, sqrt);\n Option::some(sqrt)\n } else {\n let not_sqrt_hint = maybe_sqrt;\n validate_not_sqrt_hint(x, not_sqrt_hint);\n Option::none()\n }\n}\n\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\nunconstrained fn is_square(x: Field) -> bool {\n let v = pow(x, -1 / 2);\n v * (v - 1) == 0\n}\n\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\nunconstrained fn tonelli_shanks_sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\n// NB: this doesn't return an option, because in the case of there _not_ being a square root, we still want to return a field element that allows us to then assert in the _constrained_ sqrt function that there is no sqrt.\nunconstrained fn __sqrt(x: Field) -> (bool, Field) {\n let is_sq = is_square(x);\n if is_sq {\n let sqrt = tonelli_shanks_sqrt(x);\n (true, sqrt)\n } else {\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // sq * sq = sq // 1 * 1 = 1\n // non-sq * non-sq = sq // -1 * -1 = 1\n // sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n let not_sqrt = tonelli_shanks_sqrt(demo_x_not_square);\n (false, not_sqrt)\n }\n}\n\nfn validate_sqrt_hint(x: Field, hint: Field) {\n assert(hint * hint == x, f\"The claimed_sqrt {hint} is not the sqrt of x {x}\");\n}\n\nfn validate_not_sqrt_hint(x: Field, hint: Field) {\n // We need this assertion, because x = 0 would pass the other assertions in this\n // function, and we don't want people to be able to prove that 0 is not square!\n assert(x != 0, \"0 has a square root; you cannot claim it is not square\");\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n //\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // 1. sq * sq = sq // 1 * 1 = 1\n // 2. non-sq * non-sq = sq // -1 * -1 = 1\n // 3. sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n //\n // We want to demonstrate that this below multiplication falls under bullet-point (2):\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n // I.e. we want to demonstrate that `demo_x_not_square` has Legendre symbol 1\n // (i.e. that it is a square), so we prove that it is square below.\n // Why do we want to prove that it has LS 1?\n // Well, since it was computed with a known-non-residue, its squareness implies we're\n // in case 2 (something multiplied by a known-non-residue yielding a result which\n // has a LS of 1), which implies that x must be a non-square. The unconstrained\n // function gave us the sqrt of demo_x_not_square, so all we need to do is\n // assert its squareness:\n assert(\n hint * hint == demo_x_not_square,\n f\"The hint {hint} does not demonstrate that {x} is not a square\",\n );\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167,\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes: [u8; 31] = field.to_be_bytes();\n assert_eq(inputs, return_bytes);\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158,\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2: [u8; 31] = field.to_be_bytes();\n\n assert_eq(return_bytes2, return_bytes);\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes: [u8; 32] = max_value.to_be_bytes();\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n\n#[test]\nunconstrained fn sqrt_valid_test() {\n let x = 16; // examples: 16, 9, 25, 81\n let result = sqrt(x);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), x);\n}\n\n#[test]\nunconstrained fn sqrt_invalid_test() {\n let x = KNOWN_NON_RESIDUE; // has no square root in the field\n let result = sqrt(x);\n assert(result.is_none());\n}\n"
|
|
2710
2710
|
},
|
|
2711
|
-
"
|
|
2711
|
+
"401": {
|
|
2712
2712
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
2713
2713
|
"source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
|
|
2714
2714
|
},
|
|
@@ -2726,7 +2726,7 @@
|
|
|
2726
2726
|
},
|
|
2727
2727
|
"56": {
|
|
2728
2728
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/authwit/entrypoint/app.nr",
|
|
2729
|
-
"source": "use crate::{authwit::entrypoint::function_call::FunctionCall, context::PrivateContext};\nuse dep::protocol_types::{\n constants::
|
|
2729
|
+
"source": "use crate::{authwit::entrypoint::function_call::FunctionCall, context::PrivateContext};\nuse dep::protocol_types::{\n constants::DOM_SEP__SIGNATURE_PAYLOAD,\n hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize},\n};\nuse std::meta::derive;\n\nglobal ACCOUNT_MAX_CALLS: u32 = 5;\n\n// @dev: If you change the following struct you have to update:\n// - default_entrypoint.ts\n// - account_entrypoint.ts (specifically `getEntrypointAbi()`)\n// - default_multi_call_entrypoint.ts (specifically `getEntrypointAbi()`)\n// docs:start:app-payload-struct\n#[derive(Serialize)]\npub struct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n // A nonce that enables transaction cancellation. When the cancellable flag is enabled, this nonce is used to\n // compute a nullifier that is then emitted. This guarantees that we can cancel the transaction by using the same\n // nonce.\n pub tx_nonce: Field,\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(self.serialize(), DOM_SEP__SIGNATURE_PAYLOAD)\n }\n}\n\nimpl AppPayload {\n // Executes all private and public calls\n pub fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_calldata_hash(\n call.target_address,\n call.args_hash,\n call.is_static,\n call.hide_msg_sender,\n );\n } else {\n assert(\n !call.hide_msg_sender,\n \"Incompatible flag. `hide_msg_sender = true` is only available for public calls.\",\n );\n let _result = context.call_private_function_with_args_hash(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n );\n }\n }\n }\n }\n}\n"
|
|
2730
2730
|
},
|
|
2731
2731
|
"6": {
|
|
2732
2732
|
"path": "std/collections/bounded_vec.nr",
|
|
@@ -2750,7 +2750,7 @@
|
|
|
2750
2750
|
},
|
|
2751
2751
|
"79": {
|
|
2752
2752
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/hash.nr",
|
|
2753
|
-
"source": "use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n
|
|
2753
|
+
"source": "use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n DOM_SEP__FUNCTION_ARGS, DOM_SEP__MESSAGE_NULLIFIER, DOM_SEP__PUBLIC_BYTECODE,\n DOM_SEP__PUBLIC_CALLDATA, DOM_SEP__SECRET_HASH, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS,\n },\n hash::{poseidon2_hash_subarray, poseidon2_hash_with_separator, sha256_to_field},\n point::Point,\n traits::ToField,\n};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], DOM_SEP__SECRET_HASH)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], DOM_SEP__MESSAGE_NULLIFIER)\n}\n\n// Computes the hash of input arguments or return values for private functions, or for authwit creation.\npub fn hash_args<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, DOM_SEP__FUNCTION_ARGS)\n }\n}\n\n// Computes the hash of calldata for public functions.\npub fn hash_calldata_array<let N: u32>(calldata: [Field; N]) -> Field {\n poseidon2_hash_with_separator(calldata, DOM_SEP__PUBLIC_CALLDATA)\n}\n\n/**\n * Computes the public bytecode commitment for a contract class.\n * The commitment is `hash([separator, ...bytecode])` where bytecode omits the length prefix present\n * in `packed_bytecode`.\n *\n * @param packed_bytecode - The packed bytecode of the contract class. 0th word is the length in bytes.\n * packed_bytecode is mutable so that we can avoid copying the array to construct one starting with\n * separator instead of length.\n * @returns The public bytecode commitment.\n */\npub fn compute_public_bytecode_commitment(\n mut packed_public_bytecode: [Field; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS],\n) -> Field {\n // First field element contains the length of the bytecode\n let bytecode_length_in_bytes: u32 = packed_public_bytecode[0] as u32;\n let bytecode_length_in_fields: u32 =\n (bytecode_length_in_bytes / 31) + (bytecode_length_in_bytes % 31 != 0) as u32;\n // Don't allow empty public bytecode.\n // AVM doesn't handle execution of contracts that exist with empty bytecode.\n assert(bytecode_length_in_fields != 0);\n assert(bytecode_length_in_fields < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);\n\n // Packed_bytecode's 0th entry is the length. Replace it with separator before hashing.\n let separator = DOM_SEP__PUBLIC_BYTECODE.to_field();\n packed_public_bytecode[0] = separator;\n\n // `fields_to_hash` is the number of fields from the start of `packed_public_bytecode` that should be included in\n // the hash. Fields after this length are ignored.\n // +1 to account for the separator.\n let num_fields_to_hash = bytecode_length_in_fields + 1;\n\n poseidon2_hash_subarray(packed_public_bytecode, num_fields_to_hash)\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = [0; 100];\n for i in 0..100 {\n input[i] = i as Field;\n }\n let hash = hash_args(input);\n dep::std::println(hash);\n // Used in yarn-project/stdlib test snapshots:\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_calldata_hash() {\n let mut input = [0; 100];\n for i in 0..input.len() {\n input[i] = i as Field;\n }\n let hash = hash_calldata_array(input);\n // Used in cpp vm2 tests:\n assert(hash == 0x191383c9f8964afd3ea8879a03b7dda65d6724773966d18dcf80e452736fc1f3);\n}\n\n#[test]\nunconstrained fn public_bytecode_commitment() {\n let mut input = [0; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS];\n let len = 99;\n for i in 1..len + 1 {\n input[i] = i as Field;\n }\n input[0] = (len as Field) * 31;\n let hash = compute_public_bytecode_commitment(input);\n dep::std::println(hash);\n // Used in cpp vm2 tests:\n assert(hash == 0x16d621c3387156ef53754679e7b2c9be8f0bceeb44aa59a74991df3b0b42a0bf);\n}\n"
|
|
2754
2754
|
}
|
|
2755
2755
|
}
|
|
2756
2756
|
}
|