BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1PnoE...X3DT
FA2Ledger
operations (2)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
852
1376
 
1
parameter (or
2
            (or
3
              (or (or %admin (unit %confirm_admin) (address %set_admin))
4
                  (or %assets
5
                    (or
6
                      (pair %balance_of
7
                        (list %requests (pair (address %owner) (nat %token_id)))
8
                        (contract %callback (list (pair
9
                                                  (pair %request (address %owner)
10
                                                                 (nat %token_id))
11
                                                  (nat %balance)))))
12
                      (list %transfer (pair (address %from_)
13
                                           (list %txs (pair (address %to_)
14
                                                           (nat %token_id)
15
                                                           (nat %amount))))))
16
                    (list %update_operators (or
17
                                             (pair %add_operator (address %owner)
18
                                                                 (address %operator)
19
                                                                 (nat %token_id))
20
                                             (pair %remove_operator (address %owner)
21
                                                                    (address %operator)
22
                                                                    (nat %token_id))))))
23
              (or
24
                (list %authorized_transfer (pair (address %from_) (key %pk)
25
                                                (timestamp %expiry)
26
                                                (list %txs (pair (address %to_)
27
                                                                (nat %token_id)
28
                                                                (nat %amount)
29
                                                                (signature %sig)))))
30
                (list %burn_editions nat)))
31
            (or
32
              (or %minter
33
                (or
34
                  (list %mint_editions (pair (address %owner)
35
                                            (list %tokens (pair
36
                                                           (map %token_info string bytes)
37
                                                           (bytes %artwork_id)
38
                                                           (nat %edition)))))
39
                  (list %register_artworks (pair (string %title) (string %artist_name)
40
                                                (bytes %fingerprint)
41
                                                (nat %max_edition)
42
                                                (address %royalty_address))))
43
                (list %update_edition_metadata (pair (nat %token_id)
44
                                                    (map %token_info string bytes))))
45
              (or %trustee (address %add_trustee) (address %remove_trustee))));
46
storage (pair
47
          (pair
48
            (pair
49
              (pair (pair %admin (address %admin) (option %pending_admin address))
50
                    (map %artworks bytes
51
                                   (pair
52
                                     (pair
53
                                       (pair (string %artist_name) (bytes %fingerprint))
54
                                       (pair (nat %max_edition)
55
                                             (address %royalty_address)))
56
                                     (pair (string %title) (nat %token_start_id)))))
57
              (pair
58
                (pair %assets
59
                  (pair (big_map %ledger nat address)
60
                        (big_map %operators (pair address (pair address nat)) unit))
61
                  (big_map %token_metadata nat
62
                                           (pair (nat %token_id)
63
                                                 (map %token_info string bytes))))
64
                (bool %bridgable)))
65
            (pair (pair (bool %burnable) (nat %exhibition_max_edition))
66
                  (pair (string %exhibition_title) (nat %max_royalty_bps))))
67
          (pair
68
            (pair (big_map %metadata string bytes) (nat %secondary_sale_royalty_bps))
69
            (pair
70
              (big_map %token_attribute nat
71
                                        (pair (pair (bytes %artwork_id) (bool %burned))
72
                                              (nat %edition_number)))
73
              (pair %trustee (nat %max_trustee) (set %trustees address)))));
74
code { LAMBDA
75
         (pair address (option address))
76
         unit
77
         { CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_AN_ADMIN" ; FAILWITH } { UNIT } } ;
78
       PUSH string "FA2_TOKEN_UNDEFINED" ;
79
       PUSH string "FA2_INSUFFICIENT_BALANCE" ;
80
       PUSH string "FA2_NOT_OWNER" ;
81
       LAMBDA
82
         (pair nat (big_map nat (pair nat (map string bytes))))
83
         unit
84
         { UNPAIR ;
85
           MEM ;
86
           NOT ;
87
           IF { PUSH string "TOKEN_METADATA_NOT_FOUND" ; FAILWITH } { UNIT } } ;
88
       DIG 5 ;
89
       UNPAIR ;
90
       IF_LEFT
91
         { IF_LEFT
92
             { DIG 2 ;
93
               DROP ;
94
               IF_LEFT
95
                 { DIG 2 ;
96
                   DIG 3 ;
97
                   DIG 4 ;
98
                   DROP 3 ;
99
                   SWAP ;
100
                   DUP ;
101
                   DUG 2 ;
102
                   CAR ;
103
                   CAR ;
104
                   CAR ;
105
                   CAR ;
106
                   SWAP ;
107
                   IF_LEFT
108
                     { DIG 3 ;
109
                       DROP 2 ;
110
                       CDR ;
111
                       IF_NONE
112
                         { PUSH string "NO_PENDING_ADMIN" ; FAILWITH }
113
                         { SENDER ;
114
                           COMPARE ;
115
                           EQ ;
116
                           IF
117
                             { NONE address ; SENDER ; PAIR }
118
                             { PUSH string "NOT_A_PENDING_ADMIN" ; FAILWITH } } ;
119
                       NIL operation ;
120
                       PAIR }
121
                     { SWAP ; DUP ; DUG 2 ; DIG 4 ; SWAP ; EXEC ; DROP ; SOME ; SWAP ; CAR ; PAIR ; NIL operation ; PAIR } ;
122
                   UNPAIR ;
123
                   DUP 3 ;
124
                   CDR ;
125
                   DUP 4 ;
126
                   CAR ;
127
                   CDR ;
128
                   DUP 5 ;
129
                   CAR ;
130
                   CAR ;
131
                   CDR ;
132
                   DIG 5 ;
133
                   CAR ;
134
                   CAR ;
135
                   CAR ;
136
                   CDR ;
137
                   DIG 5 ;
138
                   PAIR ;
139
                   PAIR ;
140
                   PAIR ;
141
                   PAIR ;
142
                   SWAP ;
143
                   PAIR }
144
                 { DIG 5 ;
145
                   DROP ;
146
                   SWAP ;
147
                   DUP ;
148
                   DUG 2 ;
149
                   CAR ;
150
                   CAR ;
151
                   CDR ;
152
                   CAR ;
153
                   SWAP ;
154
                   IF_LEFT
155
                     { DIG 3 ;
156
                       DROP ;
157
                       IF_LEFT
158
                         { DIG 3 ;
159
                           DROP ;
160
                           DUP ;
161
                           CAR ;
162
                           MAP { DUP 3 ;
163
                                 CAR ;
164
                                 CAR ;
165
                                 SWAP ;
166
                                 DUP ;
167
                                 DUG 2 ;
168
                                 CDR ;
169
                                 GET ;
170
                                 IF_NONE
171
                                   { DROP ; DUP 4 ; FAILWITH }
172
                                   { SWAP ;
173
                                     DUP ;
174
                                     DUG 2 ;
175
                                     CAR ;
176
                                     SWAP ;
177
                                     COMPARE ;
178
                                     EQ ;
179
                                     IF { PUSH nat 1 } { PUSH nat 0 } ;
180
                                     SWAP ;
181
                                     PAIR } } ;
182
                           DIG 4 ;
183
                           DROP ;
184
                           SWAP ;
185
                           CDR ;
186
                           PUSH mutez 0 ;
187
                           DIG 2 ;
188
                           TRANSFER_TOKENS ;
189
                           SWAP ;
190
                           NIL operation ;
191
                           DIG 2 ;
192
                           CONS ;
193
                           PAIR }
194
                         { SWAP ;
195
                           DUP ;
196
                           DUG 2 ;
197
                           CAR ;
198
                           CAR ;
199
                           SWAP ;
200
                           ITER { DUP ;
201
                                  DUG 2 ;
202
                                  CDR ;
203
                                  ITER { SWAP ;
204
                                         PUSH nat 0 ;
205
                                         DUP 3 ;
206
                                         GET 4 ;
207
                                         COMPARE ;
208
                                         EQ ;
209
                                         IF
210
                                           { SWAP ; DROP }
211
                                           { PUSH nat 1 ;
212
                                             DUP 3 ;
213
                                             GET 4 ;
214
                                             COMPARE ;
215
                                             NEQ ;
216
                                             IF
217
                                               { DROP 2 ; DUP 4 ; FAILWITH }
218
                                               { DUP ;
219
                                                 DUP 3 ;
220
                                                 GET 3 ;
221
                                                 GET ;
222
                                                 IF_NONE
223
                                                   { DROP 2 ; DUP 5 ; FAILWITH }
224
                                                   { DUP 4 ;
225
                                                     CAR ;
226
                                                     SWAP ;
227
                                                     DUP ;
228
                                                     DUG 2 ;
229
                                                     COMPARE ;
230
                                                     NEQ ;
231
                                                     IF
232
                                                       { DROP 3 ; DUP 4 ; FAILWITH }
233
                                                       { DUP 5 ;
234
                                                         CAR ;
235
                                                         CDR ;
236
                                                         DUP 4 ;
237
                                                         GET 3 ;
238
                                                         PAIR ;
239
                                                         SENDER ;
240
                                                         DUG 2 ;
241
                                                         UNPAIR ;
242
                                                         DUP 4 ;
243
                                                         DUP 4 ;
244
                                                         COMPARE ;
245
                                                         EQ ;
246
                                                         IF
247
                                                           { DROP 4 ; UNIT }
248
                                                           { DIG 3 ;
249
                                                             PAIR ;
250
                                                             DIG 2 ;
251
                                                             PAIR ;
252
                                                             MEM ;
253
                                                             IF
254
                                                               { UNIT }
255
                                                               { PUSH string "FA2_NOT_OPERATOR" ;
256
                                                                 FAILWITH } } ;
257
                                                         DROP ;
258
                                                         SWAP ;
259
                                                         DUP ;
260
                                                         DUG 2 ;
261
                                                         CAR ;
262
                                                         SOME ;
263
                                                         DIG 2 ;
264
                                                         GET 3 ;
265
                                                         UPDATE } } } } } ;
266
                                  SWAP ;
267
                                  DROP } ;
268
                           DIG 3 ;
269
                           DIG 4 ;
270
                           DROP 2 ;
271
                           SWAP ;
272
                           DUP ;
273
                           DUG 2 ;
274
                           CDR ;
275
                           DIG 2 ;
276
                           CAR ;
277
                           CDR ;
278
                           DIG 2 ;
279
                           PAIR ;
280
                           PAIR ;
281
                           NIL operation ;
282
                           PAIR } }
283
                     { DIG 4 ;
284
                       DIG 5 ;
285
                       DROP 2 ;
286
                       SENDER ;
287
                       DUP 3 ;
288
                       CAR ;
289
                       CDR ;
290
                       DIG 2 ;
291
                       ITER { SWAP ;
292
                              DUP 3 ;
293
                              DUP 3 ;
294
                              IF_LEFT {} {} ;
295
                              CAR ;
296
                              COMPARE ;
297
                              EQ ;
298
                              IF {} { DUP 6 ; FAILWITH } ;
299
                              SWAP ;
300
                              IF_LEFT
301
                                { SWAP ;
302
                                  UNIT ;
303
                                  SOME ;
304
                                  DUP 3 ;
305
                                  GET 4 ;
306
                                  DUP 4 ;
307
                                  GET 3 ;
308
                                  PAIR ;
309
                                  DIG 3 ;
310
                                  CAR ;
311
                                  PAIR ;
312
                                  UPDATE }
313
                                { DUP ;
314
                                  DUG 2 ;
315
                                  GET 4 ;
316
                                  DUP 3 ;
317
                                  GET 3 ;
318
                                  PAIR ;
319
                                  DIG 2 ;
320
                                  CAR ;
321
                                  PAIR ;
322
                                  NONE unit ;
323
                                  SWAP ;
324
                                  UPDATE } } ;
325
                       SWAP ;
326
                       DIG 4 ;
327
                       DROP 2 ;
328
                       SWAP ;
329
                       DUP ;
330
                       DUG 2 ;
331
                       CDR ;
332
                       SWAP ;
333
                       DIG 2 ;
334
                       CAR ;
335
                       CAR ;
336
                       PAIR ;
337
                       PAIR ;
338
                       NIL operation ;
339
                       PAIR } ;
340
                   UNPAIR ;
341
                   DUP 3 ;
342
                   CDR ;
343
                   DUP 4 ;
344
                   CAR ;
345
                   CDR ;
346
                   DUP 5 ;
347
                   CAR ;
348
                   CAR ;
349
                   CDR ;
350
                   CDR ;
351
                   DIG 4 ;
352
                   PAIR ;
353
                   DIG 4 ;
354
                   CAR ;
355
                   CAR ;
356
                   CAR ;
357
                   PAIR ;
358
                   PAIR ;
359
                   PAIR ;
360
                   SWAP ;
361
                   PAIR } }
362
             { IF_LEFT
363
                 { DIG 2 ;
364
                   DIG 3 ;
365
                   DROP 2 ;
366
                   SWAP ;
367
                   DUP ;
368
                   DUG 2 ;
369
                   CDR ;
370
                   CDR ;
371
                   CDR ;
372
                   CDR ;
373
                   SENDER ;
374
                   MEM ;
375
                   NOT ;
376
                   IF
377
                     { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; DIG 5 ; SWAP ; EXEC ; DROP ; UNIT }
378
                     { DIG 4 ; DROP ; UNIT } ;
379
                   DROP ;
380
                   SWAP ;
381
                   DUP ;
382
                   DUG 2 ;
383
                   CAR ;
384
                   CAR ;
385
                   CDR ;
386
                   CAR ;
387
                   DUP ;
388
                   CAR ;
389
                   CAR ;
390
                   DIG 2 ;
391
                   ITER { DUP ;
392
                          DUG 2 ;
393
                          GET 3 ;
394
                          HASH_KEY ;
395
                          IMPLICIT_ACCOUNT ;
396
                          DUP 3 ;
397
                          CAR ;
398
                          SWAP ;
399
                          ADDRESS ;
400
                          COMPARE ;
401
                          NEQ ;
402
                          IF
403
                            { PUSH string "FA2_PUBLICKEY_ADDRESS_MISMATCH" ; FAILWITH }
404
                            {} ;
405
                          SWAP ;
406
                          DUP ;
407
                          DUG 2 ;
408
                          GET 5 ;
409
                          NOW ;
410
                          COMPARE ;
411
                          GT ;
412
                          IF { PUSH string "FA2_EXPIRED_TIMESTAMP" ; FAILWITH } {} ;
413
                          SWAP ;
414
                          DUP ;
415
                          DUG 2 ;
416
                          GET 5 ;
417
                          PACK ;
418
                          SWAP ;
419
                          DUP 3 ;
420
                          GET 6 ;
421
                          ITER { SWAP ;
422
                                 PUSH nat 0 ;
423
                                 DUP 3 ;
424
                                 GET 5 ;
425
                                 COMPARE ;
426
                                 EQ ;
427
                                 IF
428
                                   { SWAP ; DROP }
429
                                   { PUSH nat 1 ;
430
                                     DUP 3 ;
431
                                     GET 5 ;
432
                                     COMPARE ;
433
                                     NEQ ;
434
                                     IF
435
                                       { DROP 2 ; DUP 5 ; FAILWITH }
436
                                       { DUP ;
437
                                         DUP 3 ;
438
                                         GET 3 ;
439
                                         GET ;
440
                                         IF_NONE
441
                                           { DROP 2 ; DUP 6 ; FAILWITH }
442
                                           { DUP 5 ;
443
                                             CAR ;
444
                                             SWAP ;
445
                                             COMPARE ;
446
                                             NEQ ;
447
                                             IF
448
                                               { DROP 2 ; DUP 5 ; FAILWITH }
449
                                               { SELF_ADDRESS ;
450
                                                 PACK ;
451
                                                 DUP 3 ;
452
                                                 CAR ;
453
                                                 PACK ;
454
                                                 DUP 4 ;
455
                                                 GET 3 ;
456
                                                 PACK ;
457
                                                 SWAP ;
458
                                                 CONCAT ;
459
                                                 SWAP ;
460
                                                 CONCAT ;
461
                                                 DUP 4 ;
462
                                                 CONCAT ;
463
                                                 PUSH bytes 0x54657a6f73205369676e6564204d6573736167653a ;
464
                                                 CONCAT ;
465
                                                 PACK ;
466
                                                 PUSH bool False ;
467
                                                 SWAP ;
468
                                                 DUP 4 ;
469
                                                 GET 6 ;
470
                                                 DUP 7 ;
471
                                                 GET 3 ;
472
                                                 CHECK_SIGNATURE ;
473
                                                 COMPARE ;
474
                                                 EQ ;
475
                                                 IF
476
                                                   { PUSH string "FA2_INVALID_SIGNATURE" ;
477
                                                     FAILWITH }
478
                                                   {} ;
479
                                                 SWAP ;
480
                                                 DUP ;
481
                                                 DUG 2 ;
482
                                                 CAR ;
483
                                                 SOME ;
484
                                                 DIG 2 ;
485
                                                 GET 3 ;
486
                                                 UPDATE } } } } } ;
487
                          SWAP ;
488
                          DIG 2 ;
489
                          DROP 2 } ;
490
                   DIG 3 ;
491
                   DIG 4 ;
492
                   DROP 2 ;
493
                   DUP 3 ;
494
                   CDR ;
495
                   DUP 4 ;
496
                   CAR ;
497
                   CDR ;
498
                   DUP 5 ;
499
                   CAR ;
500
                   CAR ;
501
                   CDR ;
502
                   CDR ;
503
                   DUP 5 ;
504
                   CDR ;
505
                   DIG 5 ;
506
                   CAR ;
507
                   CDR ;
508
                   DIG 5 ;
509
                   PAIR ;
510
                   PAIR ;
511
                   PAIR ;
512
                   DIG 3 ;
513
                   CAR ;
514
                   CAR ;
515
                   CAR ;
516
                   PAIR ;
517
                   PAIR ;
518
                   PAIR ;
519
                   NIL operation ;
520
                   PAIR }
521
                 { DIG 4 ;
522
                   DIG 6 ;
523
                   DROP 2 ;
524
                   SWAP ;
525
                   DUP ;
526
                   DUG 2 ;
527
                   CAR ;
528
                   CDR ;
529
                   CAR ;
530
                   CAR ;
531
                   NOT ;
532
                   IF { PUSH string "TOKEN_NOT_BURNABLE" ; FAILWITH } {} ;
533
                   SWAP ;
534
                   DUP ;
535
                   DUG 2 ;
536
                   CAR ;
537
                   CAR ;
538
                   CDR ;
539
                   CAR ;
540
                   DUP ;
541
                   CDR ;
542
                   DUP 4 ;
543
                   CDR ;
544
                   CDR ;
545
                   CAR ;
546
                   DUP 3 ;
547
                   CAR ;
548
                   CAR ;
549
                   PAIR ;
550
                   PAIR ;
551
                   DIG 2 ;
552
                   ITER { SWAP ;
553
                          DUP ;
554
                          CDR ;
555
                          DUP 3 ;
556
                          PAIR ;
557
                          DUP 6 ;
558
                          SWAP ;
559
                          EXEC ;
560
                          DROP ;
561
                          DUP ;
562
                          CAR ;
563
                          CAR ;
564
                          DUP 3 ;
565
                          GET ;
566
                          IF_NONE
567
                            { DROP 2 ; DUP 5 ; FAILWITH }
568
                            { SENDER ;
569
                              SWAP ;
570
                              COMPARE ;
571
                              NEQ ;
572
                              IF { DUP 6 ; FAILWITH } {} ;
573
                              DUP ;
574
                              CAR ;
575
                              CDR ;
576
                              DUP 3 ;
577
                              GET ;
578
                              IF_NONE
579
                                { DROP 2 ;
580
                                  PUSH string "TOKEN_ATTRIBUTE_NOT_FOUND" ;
581
                                  FAILWITH }
582
                                { SWAP ;
583
                                  DUP ;
584
                                  DUG 2 ;
585
                                  CDR ;
586
                                  DUP 4 ;
587
                                  NONE (pair nat (map string bytes)) ;
588
                                  SWAP ;
589
                                  UPDATE ;
590
                                  DUP 3 ;
591
                                  CAR ;
592
                                  CDR ;
593
                                  DUP 3 ;
594
                                  CDR ;
595
                                  PUSH bool True ;
596
                                  DIG 4 ;
597
                                  CAR ;
598
                                  CAR ;
599
                                  PAIR ;
600
                                  PAIR ;
601
                                  SOME ;
602
                                  DUP 5 ;
603
                                  UPDATE ;
604
                                  DIG 2 ;
605
                                  CAR ;
606
                                  CAR ;
607
                                  DIG 3 ;
608
                                  NONE address ;
609
                                  SWAP ;
610
                                  UPDATE ;
611
                                  PAIR ;
612
                                  PAIR } } } ;
613
                   DIG 3 ;
614
                   DIG 4 ;
615
                   DIG 5 ;
616
                   DROP 3 ;
617
                   DUP 3 ;
618
                   CDR ;
619
                   DUP 4 ;
620
                   CAR ;
621
                   CDR ;
622
                   DUP 5 ;
623
                   CAR ;
624
                   CAR ;
625
                   CDR ;
626
                   CDR ;
627
                   DUP 4 ;
628
                   CDR ;
629
                   DIG 5 ;
630
                   CAR ;
631
                   CDR ;
632
                   DUP 6 ;
633
                   CAR ;
634
                   CAR ;
635
                   PAIR ;
636
                   PAIR ;
637
                   PAIR ;
638
                   DIG 4 ;
639
                   CAR ;
640
                   CAR ;
641
                   CAR ;
642
                   PAIR ;
643
                   PAIR ;
644
                   PAIR ;
645
                   DUP ;
646
                   CDR ;
647
                   CDR ;
648
                   CDR ;
649
                   DIG 2 ;
650
                   CAR ;
651
                   CDR ;
652
                   PAIR ;
653
                   SWAP ;
654
                   DUP ;
655
                   DUG 2 ;
656
                   CDR ;
657
                   CAR ;
658
                   PAIR ;
659
                   SWAP ;
660
                   CAR ;
661
                   PAIR ;
662
                   NIL operation ;
663
                   PAIR } } }
664
         { DIG 3 ;
665
           DIG 4 ;
666
           DIG 5 ;
667
           DROP 3 ;
668
           IF_LEFT
669
             { SWAP ;
670
               DUP ;
671
               DUG 2 ;
672
               CDR ;
673
               CDR ;
674
               CDR ;
675
               CDR ;
676
               SENDER ;
677
               MEM ;
678
               NOT ;
679
               IF
680
                 { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; DIG 4 ; SWAP ; EXEC ; DROP ; UNIT }
681
                 { DIG 3 ; DROP ; UNIT } ;
682
               DROP ;
683
               SWAP ;
684
               DUP ;
685
               DUG 2 ;
686
               CAR ;
687
               CAR ;
688
               CDR ;
689
               CAR ;
690
               DUP 3 ;
691
               CDR ;
692
               CDR ;
693
               CAR ;
694
               DUP 4 ;
695
               CAR ;
696
               CAR ;
697
               CAR ;
698
               CDR ;
699
               DIG 3 ;
700
               IF_LEFT
701
                 { DIG 5 ;
702
                   DROP ;
703
                   IF_LEFT
704
                     { DUP 4 ;
705
                       CDR ;
706
                       DIG 3 ;
707
                       DUP 5 ;
708
                       CAR ;
709
                       CAR ;
710
                       PAIR ;
711
                       PAIR ;
712
                       SWAP ;
713
                       ITER { DUP ;
714
                              DUG 2 ;
715
                              CDR ;
716
                              ITER { SWAP ;
717
                                     DUP 4 ;
718
                                     DUP 3 ;
719
                                     GET 3 ;
720
                                     GET ;
721
                                     IF_NONE
722
                                       { DROP 2 ;
723
                                         PUSH string "ARTWORK_NOT_FOUND" ;
724
                                         FAILWITH }
725
                                       { DUP ;
726
                                         CAR ;
727
                                         CDR ;
728
                                         CAR ;
729
                                         DUP 4 ;
730
                                         GET 4 ;
731
                                         COMPARE ;
732
                                         GT ;
733
                                         IF
734
                                           { PUSH string "EDITION_NUMBER_EXCEEDS_MAX_EDITION_LIMITS" ;
735
                                             FAILWITH }
736
                                           {} ;
737
                                         DUP 3 ;
738
                                         GET 4 ;
739
                                         SWAP ;
740
                                         CDR ;
741
                                         CDR ;
742
                                         ADD ;
743
                                         SWAP ;
744
                                         DUP ;
745
                                         DUG 2 ;
746
                                         CAR ;
747
                                         CAR ;
748
                                         SWAP ;
749
                                         DUP ;
750
                                         DUG 2 ;
751
                                         MEM ;
752
                                         IF
753
                                           { PUSH string "TOKEN_HAS_ALREADY_ISSUED" ;
754
                                             FAILWITH }
755
                                           {} ;
756
                                         SWAP ;
757
                                         DUP ;
758
                                         DUG 2 ;
759
                                         CDR ;
760
                                         SWAP ;
761
                                         DUP ;
762
                                         DUG 2 ;
763
                                         MEM ;
764
                                         IF
765
                                           { PUSH string "TOKEN_METADATA_HAS_ALREADY_REGISTERED" ;
766
                                             FAILWITH }
767
                                           {} ;
768
                                         SWAP ;
769
                                         DUP ;
770
                                         DUG 2 ;
771
                                         CAR ;
772
                                         CDR ;
773
                                         SWAP ;
774
                                         DUP ;
775
                                         DUG 2 ;
776
                                         MEM ;
777
                                         IF
778
                                           { PUSH string "TOKEN_ATTRIBUTE_HAS_ALREADY_REGISTERED" ;
779
                                             FAILWITH }
780
                                           {} ;
781
                                         SWAP ;
782
                                         DUP ;
783
                                         DUG 2 ;
784
                                         CDR ;
785
                                         DUP 4 ;
786
                                         CAR ;
787
                                         DUP 3 ;
788
                                         PAIR ;
789
                                         DUP 3 ;
790
                                         SWAP ;
791
                                         SOME ;
792
                                         SWAP ;
793
                                         UPDATE ;
794
                                         DUP 3 ;
795
                                         CAR ;
796
                                         CDR ;
797
                                         DUP 5 ;
798
                                         GET 4 ;
799
                                         PUSH bool False ;
800
                                         DIG 6 ;
801
                                         GET 3 ;
802
                                         PAIR ;
803
                                         PAIR ;
804
                                         DUP 4 ;
805
                                         SWAP ;
806
                                         SOME ;
807
                                         SWAP ;
808
                                         UPDATE ;
809
                                         DIG 3 ;
810
                                         CAR ;
811
                                         CAR ;
812
                                         DUP 5 ;
813
                                         CAR ;
814
                                         DIG 4 ;
815
                                         SWAP ;
816
                                         SOME ;
817
                                         SWAP ;
818
                                         UPDATE ;
819
                                         PAIR ;
820
                                         PAIR } } ;
821
                              SWAP ;
822
                              DROP } ;
823
                       DUP ;
824
                       CAR ;
825
                       CDR ;
826
                       DUG 2 ;
827
                       DUP ;
828
                       DUG 3 ;
829
                       CDR ;
830
                       DIG 4 ;
831
                       CAR ;
832
                       CDR ;
833
                       DIG 4 ;
834
                       CAR ;
835
                       CAR ;
836
                       PAIR ;
837
                       PAIR ;
838
                       PAIR ;
839
                       PAIR }
840
                     { ITER { SWAP ;
841
                              DUP 5 ;
842
                              CAR ;
843
                              CDR ;
844
                              CAR ;
845
                              CDR ;
846
                              DUP 3 ;
847
                              GET 7 ;
848
                              COMPARE ;
849
                              GT ;
850
                              IF
851
                                { PUSH string "ARTWORK_MAX_EDITION_EXCEEDS_EXHIBITION_MAX_EDITION" ;
852
                                  FAILWITH }
853
                                {} ;
854
                              SWAP ;
855
                              DUP ;
856
                              DUG 2 ;
857
                              GET 5 ;
858
                              KECCAK ;
859
                              SWAP ;
860
                              DUP ;
861
                              DUG 2 ;
862
                              SWAP ;
863
                              DUP ;
864
                              DUG 2 ;
865
                              MEM ;
866
                              IF
867
                                { DROP 3 ; PUSH string "USED_ARTWORK_ID" ; FAILWITH }
868
                                { PUSH nat 0 ;
869
                                  PUSH nat 0 ;
870
                                  DUP 3 ;
871
                                  PAIR ;
872
                                  PAIR ;
873
                                  { LEFT nat ;
874
                                    LOOP_LEFT { UNPAIR ;
875
                                                UNPAIR ;
876
                                                PUSH nat 0 ;
877
                                                SWAP ;
878
                                                DUP ;
879
                                                DUG 2 ;
880
                                                SIZE ;
881
                                                COMPARE ;
882
                                                EQ ;
883
                                                IF
884
                                                  { DROP 3 ;
885
                                                    PUSH string "BYTES_LENGTH_ZERO" ;
886
                                                    FAILWITH }
887
                                                  { DUP ;
888
                                                    SIZE ;
889
                                                    DUP 3 ;
890
                                                    COMPARE ;
891
                                                    LT ;
892
                                                    IF
893
                                                      { DUP ;
894
                                                        PUSH nat 1 ;
895
                                                        DUP 4 ;
896
                                                        SLICE ;
897
                                                        IF_NONE
898
                                                          { PUSH string "SLICE" ;
899
                                                            FAILWITH }
900
                                                          {} ;
901
                                                        EMPTY_MAP bytes nat ;
902
                                                        PUSH nat 255 ;
903
                                                        SOME ;
904
                                                        PUSH bytes 0xff ;
905
                                                        UPDATE ;
906
                                                        PUSH nat 254 ;
907
                                                        SOME ;
908
                                                        PUSH bytes 0xfe ;
909
                                                        UPDATE ;
910
                                                        PUSH nat 253 ;
911
                                                        SOME ;
912
                                                        PUSH bytes 0xfd ;
913
                                                        UPDATE ;
914
                                                        PUSH nat 252 ;
915
                                                        SOME ;
916
                                                        PUSH bytes 0xfc ;
917
                                                        UPDATE ;
918
                                                        PUSH nat 251 ;
919
                                                        SOME ;
920
                                                        PUSH bytes 0xfb ;
921
                                                        UPDATE ;
922
                                                        PUSH nat 250 ;
923
                                                        SOME ;
924
                                                        PUSH bytes 0xfa ;
925
                                                        UPDATE ;
926
                                                        PUSH nat 249 ;
927
                                                        SOME ;
928
                                                        PUSH bytes 0xf9 ;
929
                                                        UPDATE ;
930
                                                        PUSH nat 248 ;
931
                                                        SOME ;
932
                                                        PUSH bytes 0xf8 ;
933
                                                        UPDATE ;
934
                                                        PUSH nat 247 ;
935
                                                        SOME ;
936
                                                        PUSH bytes 0xf7 ;
937
                                                        UPDATE ;
938
                                                        PUSH nat 246 ;
939
                                                        SOME ;
940
                                                        PUSH bytes 0xf6 ;
941
                                                        UPDATE ;
942
                                                        PUSH nat 245 ;
943
                                                        SOME ;
944
                                                        PUSH bytes 0xf5 ;
945
                                                        UPDATE ;
946
                                                        PUSH nat 244 ;
947
                                                        SOME ;
948
                                                        PUSH bytes 0xf4 ;
949
                                                        UPDATE ;
950
                                                        PUSH nat 243 ;
951
                                                        SOME ;
952
                                                        PUSH bytes 0xf3 ;
953
                                                        UPDATE ;
954
                                                        PUSH nat 242 ;
955
                                                        SOME ;
956
                                                        PUSH bytes 0xf2 ;
957
                                                        UPDATE ;
958
                                                        PUSH nat 241 ;
959
                                                        SOME ;
960
                                                        PUSH bytes 0xf1 ;
961
                                                        UPDATE ;
962
                                                        PUSH nat 240 ;
963
                                                        SOME ;
964
                                                        PUSH bytes 0xf0 ;
965
                                                        UPDATE ;
966
                                                        PUSH nat 239 ;
967
                                                        SOME ;
968
                                                        PUSH bytes 0xef ;
969
                                                        UPDATE ;
970
                                                        PUSH nat 238 ;
971
                                                        SOME ;
972
                                                        PUSH bytes 0xee ;
973
                                                        UPDATE ;
974
                                                        PUSH nat 237 ;
975
                                                        SOME ;
976
                                                        PUSH bytes 0xed ;
977
                                                        UPDATE ;
978
                                                        PUSH nat 236 ;
979
                                                        SOME ;
980
                                                        PUSH bytes 0xec ;
981
                                                        UPDATE ;
982
                                                        PUSH nat 235 ;
983
                                                        SOME ;
984
                                                        PUSH bytes 0xeb ;
985
                                                        UPDATE ;
986
                                                        PUSH nat 234 ;
987
                                                        SOME ;
988
                                                        PUSH bytes 0xea ;
989
                                                        UPDATE ;
990
                                                        PUSH nat 233 ;
991
                                                        SOME ;
992
                                                        PUSH bytes 0xe9 ;
993
                                                        UPDATE ;
994
                                                        PUSH nat 232 ;
995
                                                        SOME ;
996
                                                        PUSH bytes 0xe8 ;
997
                                                        UPDATE ;
998
                                                        PUSH nat 231 ;
999
                                                        SOME ;
1000
                                                        PUSH bytes 0xe7 ;
1001
                                                        UPDATE ;
1002
                                                        PUSH nat 230 ;
1003
                                                        SOME ;
1004
                                                        PUSH bytes 0xe6 ;
1005
                                                        UPDATE ;
1006
                                                        PUSH nat 229 ;
1007
                                                        SOME ;
1008
                                                        PUSH bytes 0xe5 ;
1009
                                                        UPDATE ;
1010
                                                        PUSH nat 228 ;
1011
                                                        SOME ;
1012
                                                        PUSH bytes 0xe4 ;
1013
                                                        UPDATE ;
1014
                                                        PUSH nat 227 ;
1015
                                                        SOME ;
1016
                                                        PUSH bytes 0xe3 ;
1017
                                                        UPDATE ;
1018
                                                        PUSH nat 226 ;
1019
                                                        SOME ;
1020
                                                        PUSH bytes 0xe2 ;
1021
                                                        UPDATE ;
1022
                                                        PUSH nat 225 ;
1023
                                                        SOME ;
1024
                                                        PUSH bytes 0xe1 ;
1025
                                                        UPDATE ;
1026
                                                        PUSH nat 224 ;
1027
                                                        SOME ;
1028
                                                        PUSH bytes 0xe0 ;
1029
                                                        UPDATE ;
1030
                                                        PUSH nat 223 ;
1031
                                                        SOME ;
1032
                                                        PUSH bytes 0xdf ;
1033
                                                        UPDATE ;
1034
                                                        PUSH nat 222 ;
1035
                                                        SOME ;
1036
                                                        PUSH bytes 0xde ;
1037
                                                        UPDATE ;
1038
                                                        PUSH nat 221 ;
1039
                                                        SOME ;
1040
                                                        PUSH bytes 0xdd ;
1041
                                                        UPDATE ;
1042
                                                        PUSH nat 220 ;
1043
                                                        SOME ;
1044
                                                        PUSH bytes 0xdc ;
1045
                                                        UPDATE ;
1046
                                                        PUSH nat 219 ;
1047
                                                        SOME ;
1048
                                                        PUSH bytes 0xdb ;
1049
                                                        UPDATE ;
1050
                                                        PUSH nat 218 ;
1051
                                                        SOME ;
1052
                                                        PUSH bytes 0xda ;
1053
                                                        UPDATE ;
1054
                                                        PUSH nat 217 ;
1055
                                                        SOME ;
1056
                                                        PUSH bytes 0xd9 ;
1057
                                                        UPDATE ;
1058
                                                        PUSH nat 216 ;
1059
                                                        SOME ;
1060
                                                        PUSH bytes 0xd8 ;
1061
                                                        UPDATE ;
1062
                                                        PUSH nat 215 ;
1063
                                                        SOME ;
1064
                                                        PUSH bytes 0xd7 ;
1065
                                                        UPDATE ;
1066
                                                        PUSH nat 214 ;
1067
                                                        SOME ;
1068
                                                        PUSH bytes 0xd6 ;
1069
                                                        UPDATE ;
1070
                                                        PUSH nat 213 ;
1071
                                                        SOME ;
1072
                                                        PUSH bytes 0xd5 ;
1073
                                                        UPDATE ;
1074
                                                        PUSH nat 212 ;
1075
                                                        SOME ;
1076
                                                        PUSH bytes 0xd4 ;
1077
                                                        UPDATE ;
1078
                                                        PUSH nat 211 ;
1079
                                                        SOME ;
1080
                                                        PUSH bytes 0xd3 ;
1081
                                                        UPDATE ;
1082
                                                        PUSH nat 210 ;
1083
                                                        SOME ;
1084
                                                        PUSH bytes 0xd2 ;
1085
                                                        UPDATE ;
1086
                                                        PUSH nat 209 ;
1087
                                                        SOME ;
1088
                                                        PUSH bytes 0xd1 ;
1089
                                                        UPDATE ;
1090
                                                        PUSH nat 208 ;
1091
                                                        SOME ;
1092
                                                        PUSH bytes 0xd0 ;
1093
                                                        UPDATE ;
1094
                                                        PUSH nat 207 ;
1095
                                                        SOME ;
1096
                                                        PUSH bytes 0xcf ;
1097
                                                        UPDATE ;
1098
                                                        PUSH nat 206 ;
1099
                                                        SOME ;
1100
                                                        PUSH bytes 0xce ;
1101
                                                        UPDATE ;
1102
                                                        PUSH nat 205 ;
1103
                                                        SOME ;
1104
                                                        PUSH bytes 0xcd ;
1105
                                                        UPDATE ;
1106
                                                        PUSH nat 204 ;
1107
                                                        SOME ;
1108
                                                        PUSH bytes 0xcc ;
1109
                                                        UPDATE ;
1110
                                                        PUSH nat 203 ;
1111
                                                        SOME ;
1112
                                                        PUSH bytes 0xcb ;
1113
                                                        UPDATE ;
1114
                                                        PUSH nat 202 ;
1115
                                                        SOME ;
1116
                                                        PUSH bytes 0xca ;
1117
                                                        UPDATE ;
1118
                                                        PUSH nat 201 ;
1119
                                                        SOME ;
1120
                                                        PUSH bytes 0xc9 ;
1121
                                                        UPDATE ;
1122
                                                        PUSH nat 200 ;
1123
                                                        SOME ;
1124
                                                        PUSH bytes 0xc8 ;
1125
                                                        UPDATE ;
1126
                                                        PUSH nat 199 ;
1127
                                                        SOME ;
1128
                                                        PUSH bytes 0xc7 ;
1129
                                                        UPDATE ;
1130
                                                        PUSH nat 198 ;
1131
                                                        SOME ;
1132
                                                        PUSH bytes 0xc6 ;
1133
                                                        UPDATE ;
1134
                                                        PUSH nat 197 ;
1135
                                                        SOME ;
1136
                                                        PUSH bytes 0xc5 ;
1137
                                                        UPDATE ;
1138
                                                        PUSH nat 196 ;
1139
                                                        SOME ;
1140
                                                        PUSH bytes 0xc4 ;
1141
                                                        UPDATE ;
1142
                                                        PUSH nat 195 ;
1143
                                                        SOME ;
1144
                                                        PUSH bytes 0xc3 ;
1145
                                                        UPDATE ;
1146
                                                        PUSH nat 194 ;
1147
                                                        SOME ;
1148
                                                        PUSH bytes 0xc2 ;
1149
                                                        UPDATE ;
1150
                                                        PUSH nat 193 ;
1151
                                                        SOME ;
1152
                                                        PUSH bytes 0xc1 ;
1153
                                                        UPDATE ;
1154
                                                        PUSH nat 192 ;
1155
                                                        SOME ;
1156
                                                        PUSH bytes 0xc0 ;
1157
                                                        UPDATE ;
1158
                                                        PUSH nat 191 ;
1159
                                                        SOME ;
1160
                                                        PUSH bytes 0xbf ;
1161
                                                        UPDATE ;
1162
                                                        PUSH nat 190 ;
1163
                                                        SOME ;
1164
                                                        PUSH bytes 0xbe ;
1165
                                                        UPDATE ;
1166
                                                        PUSH nat 189 ;
1167
                                                        SOME ;
1168
                                                        PUSH bytes 0xbd ;
1169
                                                        UPDATE ;
1170
                                                        PUSH nat 188 ;
1171
                                                        SOME ;
1172
                                                        PUSH bytes 0xbc ;
1173
                                                        UPDATE ;
1174
                                                        PUSH nat 187 ;
1175
                                                        SOME ;
1176
                                                        PUSH bytes 0xbb ;
1177
                                                        UPDATE ;
1178
                                                        PUSH nat 186 ;
1179
                                                        SOME ;
1180
                                                        PUSH bytes 0xba ;
1181
                                                        UPDATE ;
1182
                                                        PUSH nat 185 ;
1183
                                                        SOME ;
1184
                                                        PUSH bytes 0xb9 ;
1185
                                                        UPDATE ;
1186
                                                        PUSH nat 184 ;
1187
                                                        SOME ;
1188
                                                        PUSH bytes 0xb8 ;
1189
                                                        UPDATE ;
1190
                                                        PUSH nat 183 ;
1191
                                                        SOME ;
1192
                                                        PUSH bytes 0xb7 ;
1193
                                                        UPDATE ;
1194
                                                        PUSH nat 182 ;
1195
                                                        SOME ;
1196
                                                        PUSH bytes 0xb6 ;
1197
                                                        UPDATE ;
1198
                                                        PUSH nat 181 ;
1199
                                                        SOME ;
1200
                                                        PUSH bytes 0xb5 ;
1201
                                                        UPDATE ;
1202
                                                        PUSH nat 180 ;
1203
                                                        SOME ;
1204
                                                        PUSH bytes 0xb4 ;
1205
                                                        UPDATE ;
1206
                                                        PUSH nat 179 ;
1207
                                                        SOME ;
1208
                                                        PUSH bytes 0xb3 ;
1209
                                                        UPDATE ;
1210
                                                        PUSH nat 178 ;
1211
                                                        SOME ;
1212
                                                        PUSH bytes 0xb2 ;
1213
                                                        UPDATE ;
1214
                                                        PUSH nat 177 ;
1215
                                                        SOME ;
1216
                                                        PUSH bytes 0xb1 ;
1217
                                                        UPDATE ;
1218
                                                        PUSH nat 176 ;
1219
                                                        SOME ;
1220
                                                        PUSH bytes 0xb0 ;
1221
                                                        UPDATE ;
1222
                                                        PUSH nat 175 ;
1223
                                                        SOME ;
1224
                                                        PUSH bytes 0xaf ;
1225
                                                        UPDATE ;
1226
                                                        PUSH nat 174 ;
1227
                                                        SOME ;
1228
                                                        PUSH bytes 0xae ;
1229
                                                        UPDATE ;
1230
                                                        PUSH nat 173 ;
1231
                                                        SOME ;
1232
                                                        PUSH bytes 0xad ;
1233
                                                        UPDATE ;
1234
                                                        PUSH nat 172 ;
1235
                                                        SOME ;
1236
                                                        PUSH bytes 0xac ;
1237
                                                        UPDATE ;
1238
                                                        PUSH nat 171 ;
1239
                                                        SOME ;
1240
                                                        PUSH bytes 0xab ;
1241
                                                        UPDATE ;
1242
                                                        PUSH nat 170 ;
1243
                                                        SOME ;
1244
                                                        PUSH bytes 0xaa ;
1245
                                                        UPDATE ;
1246
                                                        PUSH nat 169 ;
1247
                                                        SOME ;
1248
                                                        PUSH bytes 0xa9 ;
1249
                                                        UPDATE ;
1250
                                                        PUSH nat 168 ;
1251
                                                        SOME ;
1252
                                                        PUSH bytes 0xa8 ;
1253
                                                        UPDATE ;
1254
                                                        PUSH nat 167 ;
1255
                                                        SOME ;
1256
                                                        PUSH bytes 0xa7 ;
1257
                                                        UPDATE ;
1258
                                                        PUSH nat 166 ;
1259
                                                        SOME ;
1260
                                                        PUSH bytes 0xa6 ;
1261
                                                        UPDATE ;
1262
                                                        PUSH nat 165 ;
1263
                                                        SOME ;
1264
                                                        PUSH bytes 0xa5 ;
1265
                                                        UPDATE ;
1266
                                                        PUSH nat 164 ;
1267
                                                        SOME ;
1268
                                                        PUSH bytes 0xa4 ;
1269
                                                        UPDATE ;
1270
                                                        PUSH nat 163 ;
1271
                                                        SOME ;
1272
                                                        PUSH bytes 0xa3 ;
1273
                                                        UPDATE ;
1274
                                                        PUSH nat 162 ;
1275
                                                        SOME ;
1276
                                                        PUSH bytes 0xa2 ;
1277
                                                        UPDATE ;
1278
                                                        PUSH nat 161 ;
1279
                                                        SOME ;
1280
                                                        PUSH bytes 0xa1 ;
1281
                                                        UPDATE ;
1282
                                                        PUSH nat 160 ;
1283
                                                        SOME ;
1284
                                                        PUSH bytes 0xa0 ;
1285
                                                        UPDATE ;
1286
                                                        PUSH nat 159 ;
1287
                                                        SOME ;
1288
                                                        PUSH bytes 0x9f ;
1289
                                                        UPDATE ;
1290
                                                        PUSH nat 158 ;
1291
                                                        SOME ;
1292
                                                        PUSH bytes 0x9e ;
1293
                                                        UPDATE ;
1294
                                                        PUSH nat 157 ;
1295
                                                        SOME ;
1296
                                                        PUSH bytes 0x9d ;
1297
                                                        UPDATE ;
1298
                                                        PUSH nat 156 ;
1299
                                                        SOME ;
1300
                                                        PUSH bytes 0x9c ;
1301
                                                        UPDATE ;
1302
                                                        PUSH nat 155 ;
1303
                                                        SOME ;
1304
                                                        PUSH bytes 0x9b ;
1305
                                                        UPDATE ;
1306
                                                        PUSH nat 154 ;
1307
                                                        SOME ;
1308
                                                        PUSH bytes 0x9a ;
1309
                                                        UPDATE ;
1310
                                                        PUSH nat 153 ;
1311
                                                        SOME ;
1312
                                                        PUSH bytes 0x99 ;
1313
                                                        UPDATE ;
1314
                                                        PUSH nat 152 ;
1315
                                                        SOME ;
1316
                                                        PUSH bytes 0x98 ;
1317
                                                        UPDATE ;
1318
                                                        PUSH nat 151 ;
1319
                                                        SOME ;
1320
                                                        PUSH bytes 0x97 ;
1321
                                                        UPDATE ;
1322
                                                        PUSH nat 150 ;
1323
                                                        SOME ;
1324
                                                        PUSH bytes 0x96 ;
1325
                                                        UPDATE ;
1326
                                                        PUSH nat 149 ;
1327
                                                        SOME ;
1328
                                                        PUSH bytes 0x95 ;
1329
                                                        UPDATE ;
1330
                                                        PUSH nat 148 ;
1331
                                                        SOME ;
1332
                                                        PUSH bytes 0x94 ;
1333
                                                        UPDATE ;
1334
                                                        PUSH nat 147 ;
1335
                                                        SOME ;
1336
                                                        PUSH bytes 0x93 ;
1337
                                                        UPDATE ;
1338
                                                        PUSH nat 146 ;
1339
                                                        SOME ;
1340
                                                        PUSH bytes 0x92 ;
1341
                                                        UPDATE ;
1342
                                                        PUSH nat 145 ;
1343
                                                        SOME ;
1344
                                                        PUSH bytes 0x91 ;
1345
                                                        UPDATE ;
1346
                                                        PUSH nat 144 ;
1347
                                                        SOME ;
1348
                                                        PUSH bytes 0x90 ;
1349
                                                        UPDATE ;
1350
                                                        PUSH nat 143 ;
1351
                                                        SOME ;
1352
                                                        PUSH bytes 0x8f ;
1353
                                                        UPDATE ;
1354
                                                        PUSH nat 142 ;
1355
                                                        SOME ;
1356
                                                        PUSH bytes 0x8e ;
1357
                                                        UPDATE ;
1358
                                                        PUSH nat 141 ;
1359
                                                        SOME ;
1360
                                                        PUSH bytes 0x8d ;
1361
                                                        UPDATE ;
1362
                                                        PUSH nat 140 ;
1363
                                                        SOME ;
1364
                                                        PUSH bytes 0x8c ;
1365
                                                        UPDATE ;
1366
                                                        PUSH nat 139 ;
1367
                                                        SOME ;
1368
                                                        PUSH bytes 0x8b ;
1369
                                                        UPDATE ;
1370
                                                        PUSH nat 138 ;
1371
                                                        SOME ;
1372
                                                        PUSH bytes 0x8a ;
1373
                                                        UPDATE ;
1374
                                                        PUSH nat 137 ;
1375
                                                        SOME ;
1376
                                                        PUSH bytes 0x89 ;
1377
                                                        UPDATE ;
1378
                                                        PUSH nat 136 ;
1379
                                                        SOME ;
1380
                                                        PUSH bytes 0x88 ;
1381
                                                        UPDATE ;
1382
                                                        PUSH nat 135 ;
1383
                                                        SOME ;
1384
                                                        PUSH bytes 0x87 ;
1385
                                                        UPDATE ;
1386
                                                        PUSH nat 134 ;
1387
                                                        SOME ;
1388
                                                        PUSH bytes 0x86 ;
1389
                                                        UPDATE ;
1390
                                                        PUSH nat 133 ;
1391
                                                        SOME ;
1392
                                                        PUSH bytes 0x85 ;
1393
                                                        UPDATE ;
1394
                                                        PUSH nat 132 ;
1395
                                                        SOME ;
1396
                                                        PUSH bytes 0x84 ;
1397
                                                        UPDATE ;
1398
                                                        PUSH nat 131 ;
1399
                                                        SOME ;
1400
                                                        PUSH bytes 0x83 ;
1401
                                                        UPDATE ;
1402
                                                        PUSH nat 130 ;
1403
                                                        SOME ;
1404
                                                        PUSH bytes 0x82 ;
1405
                                                        UPDATE ;
1406
                                                        PUSH nat 129 ;
1407
                                                        SOME ;
1408
                                                        PUSH bytes 0x81 ;
1409
                                                        UPDATE ;
1410
                                                        PUSH nat 128 ;
1411
                                                        SOME ;
1412
                                                        PUSH bytes 0x80 ;
1413
                                                        UPDATE ;
1414
                                                        PUSH nat 127 ;
1415
                                                        SOME ;
1416
                                                        PUSH bytes 0x7f ;
1417
                                                        UPDATE ;
1418
                                                        PUSH nat 126 ;
1419
                                                        SOME ;
1420
                                                        PUSH bytes 0x7e ;
1421
                                                        UPDATE ;
1422
                                                        PUSH nat 125 ;
1423
                                                        SOME ;
1424
                                                        PUSH bytes 0x7d ;
1425
                                                        UPDATE ;
1426
                                                        PUSH nat 124 ;
1427
                                                        SOME ;
1428
                                                        PUSH bytes 0x7c ;
1429
                                                        UPDATE ;
1430
                                                        PUSH nat 123 ;
1431
                                                        SOME ;
1432
                                                        PUSH bytes 0x7b ;
1433
                                                        UPDATE ;
1434
                                                        PUSH nat 122 ;
1435
                                                        SOME ;
1436
                                                        PUSH bytes 0x7a ;
1437
                                                        UPDATE ;
1438
                                                        PUSH nat 121 ;
1439
                                                        SOME ;
1440
                                                        PUSH bytes 0x79 ;
1441
                                                        UPDATE ;
1442
                                                        PUSH nat 120 ;
1443
                                                        SOME ;
1444
                                                        PUSH bytes 0x78 ;
1445
                                                        UPDATE ;
1446
                                                        PUSH nat 119 ;
1447
                                                        SOME ;
1448
                                                        PUSH bytes 0x77 ;
1449
                                                        UPDATE ;
1450
                                                        PUSH nat 118 ;
1451
                                                        SOME ;
1452
                                                        PUSH bytes 0x76 ;
1453
                                                        UPDATE ;
1454
                                                        PUSH nat 117 ;
1455
                                                        SOME ;
1456
                                                        PUSH bytes 0x75 ;
1457
                                                        UPDATE ;
1458
                                                        PUSH nat 116 ;
1459
                                                        SOME ;
1460
                                                        PUSH bytes 0x74 ;
1461
                                                        UPDATE ;
1462
                                                        PUSH nat 115 ;
1463
                                                        SOME ;
1464
                                                        PUSH bytes 0x73 ;
1465
                                                        UPDATE ;
1466
                                                        PUSH nat 114 ;
1467
                                                        SOME ;
1468
                                                        PUSH bytes 0x72 ;
1469
                                                        UPDATE ;
1470
                                                        PUSH nat 113 ;
1471
                                                        SOME ;
1472
                                                        PUSH bytes 0x71 ;
1473
                                                        UPDATE ;
1474
                                                        PUSH nat 112 ;
1475
                                                        SOME ;
1476
                                                        PUSH bytes 0x70 ;
1477
                                                        UPDATE ;
1478
                                                        PUSH nat 111 ;
1479
                                                        SOME ;
1480
                                                        PUSH bytes 0x6f ;
1481
                                                        UPDATE ;
1482
                                                        PUSH nat 110 ;
1483
                                                        SOME ;
1484
                                                        PUSH bytes 0x6e ;
1485
                                                        UPDATE ;
1486
                                                        PUSH nat 109 ;
1487
                                                        SOME ;
1488
                                                        PUSH bytes 0x6d ;
1489
                                                        UPDATE ;
1490
                                                        PUSH nat 108 ;
1491
                                                        SOME ;
1492
                                                        PUSH bytes 0x6c ;
1493
                                                        UPDATE ;
1494
                                                        PUSH nat 107 ;
1495
                                                        SOME ;
1496
                                                        PUSH bytes 0x6b ;
1497
                                                        UPDATE ;
1498
                                                        PUSH nat 106 ;
1499
                                                        SOME ;
1500
                                                        PUSH bytes 0x6a ;
1501
                                                        UPDATE ;
1502
                                                        PUSH nat 105 ;
1503
                                                        SOME ;
1504
                                                        PUSH bytes 0x69 ;
1505
                                                        UPDATE ;
1506
                                                        PUSH nat 104 ;
1507
                                                        SOME ;
1508
                                                        PUSH bytes 0x68 ;
1509
                                                        UPDATE ;
1510
                                                        PUSH nat 103 ;
1511
                                                        SOME ;
1512
                                                        PUSH bytes 0x67 ;
1513
                                                        UPDATE ;
1514
                                                        PUSH nat 102 ;
1515
                                                        SOME ;
1516
                                                        PUSH bytes 0x66 ;
1517
                                                        UPDATE ;
1518
                                                        PUSH nat 101 ;
1519
                                                        SOME ;
1520
                                                        PUSH bytes 0x65 ;
1521
                                                        UPDATE ;
1522
                                                        PUSH nat 100 ;
1523
                                                        SOME ;
1524
                                                        PUSH bytes 0x64 ;
1525
                                                        UPDATE ;
1526
                                                        PUSH nat 99 ;
1527
                                                        SOME ;
1528
                                                        PUSH bytes 0x63 ;
1529
                                                        UPDATE ;
1530
                                                        PUSH nat 98 ;
1531
                                                        SOME ;
1532
                                                        PUSH bytes 0x62 ;
1533
                                                        UPDATE ;
1534
                                                        PUSH nat 97 ;
1535
                                                        SOME ;
1536
                                                        PUSH bytes 0x61 ;
1537
                                                        UPDATE ;
1538
                                                        PUSH nat 96 ;
1539
                                                        SOME ;
1540
                                                        PUSH bytes 0x60 ;
1541
                                                        UPDATE ;
1542
                                                        PUSH nat 95 ;
1543
                                                        SOME ;
1544
                                                        PUSH bytes 0x5f ;
1545
                                                        UPDATE ;
1546
                                                        PUSH nat 94 ;
1547
                                                        SOME ;
1548
                                                        PUSH bytes 0x5e ;
1549
                                                        UPDATE ;
1550
                                                        PUSH nat 93 ;
1551
                                                        SOME ;
1552
                                                        PUSH bytes 0x5d ;
1553
                                                        UPDATE ;
1554
                                                        PUSH nat 92 ;
1555
                                                        SOME ;
1556
                                                        PUSH bytes 0x5c ;
1557
                                                        UPDATE ;
1558
                                                        PUSH nat 91 ;
1559
                                                        SOME ;
1560
                                                        PUSH bytes 0x5b ;
1561
                                                        UPDATE ;
1562
                                                        PUSH nat 90 ;
1563
                                                        SOME ;
1564
                                                        PUSH bytes 0x5a ;
1565
                                                        UPDATE ;
1566
                                                        PUSH nat 89 ;
1567
                                                        SOME ;
1568
                                                        PUSH bytes 0x59 ;
1569
                                                        UPDATE ;
1570
                                                        PUSH nat 88 ;
1571
                                                        SOME ;
1572
                                                        PUSH bytes 0x58 ;
1573
                                                        UPDATE ;
1574
                                                        PUSH nat 87 ;
1575
                                                        SOME ;
1576
                                                        PUSH bytes 0x57 ;
1577
                                                        UPDATE ;
1578
                                                        PUSH nat 86 ;
1579
                                                        SOME ;
1580
                                                        PUSH bytes 0x56 ;
1581
                                                        UPDATE ;
1582
                                                        PUSH nat 85 ;
1583
                                                        SOME ;
1584
                                                        PUSH bytes 0x55 ;
1585
                                                        UPDATE ;
1586
                                                        PUSH nat 84 ;
1587
                                                        SOME ;
1588
                                                        PUSH bytes 0x54 ;
1589
                                                        UPDATE ;
1590
                                                        PUSH nat 83 ;
1591
                                                        SOME ;
1592
                                                        PUSH bytes 0x53 ;
1593
                                                        UPDATE ;
1594
                                                        PUSH nat 82 ;
1595
                                                        SOME ;
1596
                                                        PUSH bytes 0x52 ;
1597
                                                        UPDATE ;
1598
                                                        PUSH nat 81 ;
1599
                                                        SOME ;
1600
                                                        PUSH bytes 0x51 ;
1601
                                                        UPDATE ;
1602
                                                        PUSH nat 80 ;
1603
                                                        SOME ;
1604
                                                        PUSH bytes 0x50 ;
1605
                                                        UPDATE ;
1606
                                                        PUSH nat 79 ;
1607
                                                        SOME ;
1608
                                                        PUSH bytes 0x4f ;
1609
                                                        UPDATE ;
1610
                                                        PUSH nat 78 ;
1611
                                                        SOME ;
1612
                                                        PUSH bytes 0x4e ;
1613
                                                        UPDATE ;
1614
                                                        PUSH nat 77 ;
1615
                                                        SOME ;
1616
                                                        PUSH bytes 0x4d ;
1617
                                                        UPDATE ;
1618
                                                        PUSH nat 76 ;
1619
                                                        SOME ;
1620
                                                        PUSH bytes 0x4c ;
1621
                                                        UPDATE ;
1622
                                                        PUSH nat 75 ;
1623
                                                        SOME ;
1624
                                                        PUSH bytes 0x4b ;
1625
                                                        UPDATE ;
1626
                                                        PUSH nat 74 ;
1627
                                                        SOME ;
1628
                                                        PUSH bytes 0x4a ;
1629
                                                        UPDATE ;
1630
                                                        PUSH nat 73 ;
1631
                                                        SOME ;
1632
                                                        PUSH bytes 0x49 ;
1633
                                                        UPDATE ;
1634
                                                        PUSH nat 72 ;
1635
                                                        SOME ;
1636
                                                        PUSH bytes 0x48 ;
1637
                                                        UPDATE ;
1638
                                                        PUSH nat 71 ;
1639
                                                        SOME ;
1640
                                                        PUSH bytes 0x47 ;
1641
                                                        UPDATE ;
1642
                                                        PUSH nat 70 ;
1643
                                                        SOME ;
1644
                                                        PUSH bytes 0x46 ;
1645
                                                        UPDATE ;
1646
                                                        PUSH nat 69 ;
1647
                                                        SOME ;
1648
                                                        PUSH bytes 0x45 ;
1649
                                                        UPDATE ;
1650
                                                        PUSH nat 68 ;
1651
                                                        SOME ;
1652
                                                        PUSH bytes 0x44 ;
1653
                                                        UPDATE ;
1654
                                                        PUSH nat 67 ;
1655
                                                        SOME ;
1656
                                                        PUSH bytes 0x43 ;
1657
                                                        UPDATE ;
1658
                                                        PUSH nat 66 ;
1659
                                                        SOME ;
1660
                                                        PUSH bytes 0x42 ;
1661
                                                        UPDATE ;
1662
                                                        PUSH nat 65 ;
1663
                                                        SOME ;
1664
                                                        PUSH bytes 0x41 ;
1665
                                                        UPDATE ;
1666
                                                        PUSH nat 64 ;
1667
                                                        SOME ;
1668
                                                        PUSH bytes 0x40 ;
1669
                                                        UPDATE ;
1670
                                                        PUSH nat 63 ;
1671
                                                        SOME ;
1672
                                                        PUSH bytes 0x3f ;
1673
                                                        UPDATE ;
1674
                                                        PUSH nat 62 ;
1675
                                                        SOME ;
1676
                                                        PUSH bytes 0x3e ;
1677
                                                        UPDATE ;
1678
                                                        PUSH nat 61 ;
1679
                                                        SOME ;
1680
                                                        PUSH bytes 0x3d ;
1681
                                                        UPDATE ;
1682
                                                        PUSH nat 60 ;
1683
                                                        SOME ;
1684
                                                        PUSH bytes 0x3c ;
1685
                                                        UPDATE ;
1686
                                                        PUSH nat 59 ;
1687
                                                        SOME ;
1688
                                                        PUSH bytes 0x3b ;
1689
                                                        UPDATE ;
1690
                                                        PUSH nat 58 ;
1691
                                                        SOME ;
1692
                                                        PUSH bytes 0x3a ;
1693
                                                        UPDATE ;
1694
                                                        PUSH nat 57 ;
1695
                                                        SOME ;
1696
                                                        PUSH bytes 0x39 ;
1697
                                                        UPDATE ;
1698
                                                        PUSH nat 56 ;
1699
                                                        SOME ;
1700
                                                        PUSH bytes 0x38 ;
1701
                                                        UPDATE ;
1702
                                                        PUSH nat 55 ;
1703
                                                        SOME ;
1704
                                                        PUSH bytes 0x37 ;
1705
                                                        UPDATE ;
1706
                                                        PUSH nat 54 ;
1707
                                                        SOME ;
1708
                                                        PUSH bytes 0x36 ;
1709
                                                        UPDATE ;
1710
                                                        PUSH nat 53 ;
1711
                                                        SOME ;
1712
                                                        PUSH bytes 0x35 ;
1713
                                                        UPDATE ;
1714
                                                        PUSH nat 52 ;
1715
                                                        SOME ;
1716
                                                        PUSH bytes 0x34 ;
1717
                                                        UPDATE ;
1718
                                                        PUSH nat 51 ;
1719
                                                        SOME ;
1720
                                                        PUSH bytes 0x33 ;
1721
                                                        UPDATE ;
1722
                                                        PUSH nat 50 ;
1723
                                                        SOME ;
1724
                                                        PUSH bytes 0x32 ;
1725
                                                        UPDATE ;
1726
                                                        PUSH nat 49 ;
1727
                                                        SOME ;
1728
                                                        PUSH bytes 0x31 ;
1729
                                                        UPDATE ;
1730
                                                        PUSH nat 48 ;
1731
                                                        SOME ;
1732
                                                        PUSH bytes 0x30 ;
1733
                                                        UPDATE ;
1734
                                                        PUSH nat 47 ;
1735
                                                        SOME ;
1736
                                                        PUSH bytes 0x2f ;
1737
                                                        UPDATE ;
1738
                                                        PUSH nat 46 ;
1739
                                                        SOME ;
1740
                                                        PUSH bytes 0x2e ;
1741
                                                        UPDATE ;
1742
                                                        PUSH nat 45 ;
1743
                                                        SOME ;
1744
                                                        PUSH bytes 0x2d ;
1745
                                                        UPDATE ;
1746
                                                        PUSH nat 44 ;
1747
                                                        SOME ;
1748
                                                        PUSH bytes 0x2c ;
1749
                                                        UPDATE ;
1750
                                                        PUSH nat 43 ;
1751
                                                        SOME ;
1752
                                                        PUSH bytes 0x2b ;
1753
                                                        UPDATE ;
1754
                                                        PUSH nat 42 ;
1755
                                                        SOME ;
1756
                                                        PUSH bytes 0x2a ;
1757
                                                        UPDATE ;
1758
                                                        PUSH nat 41 ;
1759
                                                        SOME ;
1760
                                                        PUSH bytes 0x29 ;
1761
                                                        UPDATE ;
1762
                                                        PUSH nat 40 ;
1763
                                                        SOME ;
1764
                                                        PUSH bytes 0x28 ;
1765
                                                        UPDATE ;
1766
                                                        PUSH nat 39 ;
1767
                                                        SOME ;
1768
                                                        PUSH bytes 0x27 ;
1769
                                                        UPDATE ;
1770
                                                        PUSH nat 38 ;
1771
                                                        SOME ;
1772
                                                        PUSH bytes 0x26 ;
1773
                                                        UPDATE ;
1774
                                                        PUSH nat 37 ;
1775
                                                        SOME ;
1776
                                                        PUSH bytes 0x25 ;
1777
                                                        UPDATE ;
1778
                                                        PUSH nat 36 ;
1779
                                                        SOME ;
1780
                                                        PUSH bytes 0x24 ;
1781
                                                        UPDATE ;
1782
                                                        PUSH nat 35 ;
1783
                                                        SOME ;
1784
                                                        PUSH bytes 0x23 ;
1785
                                                        UPDATE ;
1786
                                                        PUSH nat 34 ;
1787
                                                        SOME ;
1788
                                                        PUSH bytes 0x22 ;
1789
                                                        UPDATE ;
1790
                                                        PUSH nat 33 ;
1791
                                                        SOME ;
1792
                                                        PUSH bytes 0x21 ;
1793
                                                        UPDATE ;
1794
                                                        PUSH nat 32 ;
1795
                                                        SOME ;
1796
                                                        PUSH bytes 0x20 ;
1797
                                                        UPDATE ;
1798
                                                        PUSH nat 31 ;
1799
                                                        SOME ;
1800
                                                        PUSH bytes 0x1f ;
1801
                                                        UPDATE ;
1802
                                                        PUSH nat 30 ;
1803
                                                        SOME ;
1804
                                                        PUSH bytes 0x1e ;
1805
                                                        UPDATE ;
1806
                                                        PUSH nat 29 ;
1807
                                                        SOME ;
1808
                                                        PUSH bytes 0x1d ;
1809
                                                        UPDATE ;
1810
                                                        PUSH nat 28 ;
1811
                                                        SOME ;
1812
                                                        PUSH bytes 0x1c ;
1813
                                                        UPDATE ;
1814
                                                        PUSH nat 27 ;
1815
                                                        SOME ;
1816
                                                        PUSH bytes 0x1b ;
1817
                                                        UPDATE ;
1818
                                                        PUSH nat 26 ;
1819
                                                        SOME ;
1820
                                                        PUSH bytes 0x1a ;
1821
                                                        UPDATE ;
1822
                                                        PUSH nat 25 ;
1823
                                                        SOME ;
1824
                                                        PUSH bytes 0x19 ;
1825
                                                        UPDATE ;
1826
                                                        PUSH nat 24 ;
1827
                                                        SOME ;
1828
                                                        PUSH bytes 0x18 ;
1829
                                                        UPDATE ;
1830
                                                        PUSH nat 23 ;
1831
                                                        SOME ;
1832
                                                        PUSH bytes 0x17 ;
1833
                                                        UPDATE ;
1834
                                                        PUSH nat 22 ;
1835
                                                        SOME ;
1836
                                                        PUSH bytes 0x16 ;
1837
                                                        UPDATE ;
1838
                                                        PUSH nat 21 ;
1839
                                                        SOME ;
1840
                                                        PUSH bytes 0x15 ;
1841
                                                        UPDATE ;
1842
                                                        PUSH nat 20 ;
1843
                                                        SOME ;
1844
                                                        PUSH bytes 0x14 ;
1845
                                                        UPDATE ;
1846
                                                        PUSH nat 19 ;
1847
                                                        SOME ;
1848
                                                        PUSH bytes 0x13 ;
1849
                                                        UPDATE ;
1850
                                                        PUSH nat 18 ;
1851
                                                        SOME ;
1852
                                                        PUSH bytes 0x12 ;
1853
                                                        UPDATE ;
1854
                                                        PUSH nat 17 ;
1855
                                                        SOME ;
1856
                                                        PUSH bytes 0x11 ;
1857
                                                        UPDATE ;
1858
                                                        PUSH nat 16 ;
1859
                                                        SOME ;
1860
                                                        PUSH bytes 0x10 ;
1861
                                                        UPDATE ;
1862
                                                        PUSH nat 15 ;
1863
                                                        SOME ;
1864
                                                        PUSH bytes 0x0f ;
1865
                                                        UPDATE ;
1866
                                                        PUSH nat 14 ;
1867
                                                        SOME ;
1868
                                                        PUSH bytes 0x0e ;
1869
                                                        UPDATE ;
1870
                                                        PUSH nat 13 ;
1871
                                                        SOME ;
1872
                                                        PUSH bytes 0x0d ;
1873
                                                        UPDATE ;
1874
                                                        PUSH nat 12 ;
1875
                                                        SOME ;
1876
                                                        PUSH bytes 0x0c ;
1877
                                                        UPDATE ;
1878
                                                        PUSH nat 11 ;
1879
                                                        SOME ;
1880
                                                        PUSH bytes 0x0b ;
1881
                                                        UPDATE ;
1882
                                                        PUSH nat 10 ;
1883
                                                        SOME ;
1884
                                                        PUSH bytes 0x0a ;
1885
                                                        UPDATE ;
1886
                                                        PUSH nat 9 ;
1887
                                                        SOME ;
1888
                                                        PUSH bytes 0x09 ;
1889
                                                        UPDATE ;
1890
                                                        PUSH nat 8 ;
1891
                                                        SOME ;
1892
                                                        PUSH bytes 0x08 ;
1893
                                                        UPDATE ;
1894
                                                        PUSH nat 7 ;
1895
                                                        SOME ;
1896
                                                        PUSH bytes 0x07 ;
1897
                                                        UPDATE ;
1898
                                                        PUSH nat 6 ;
1899
                                                        SOME ;
1900
                                                        PUSH bytes 0x06 ;
1901
                                                        UPDATE ;
1902
                                                        PUSH nat 5 ;
1903
                                                        SOME ;
1904
                                                        PUSH bytes 0x05 ;
1905
                                                        UPDATE ;
1906
                                                        PUSH nat 4 ;
1907
                                                        SOME ;
1908
                                                        PUSH bytes 0x04 ;
1909
                                                        UPDATE ;
1910
                                                        PUSH nat 3 ;
1911
                                                        SOME ;
1912
                                                        PUSH bytes 0x03 ;
1913
                                                        UPDATE ;
1914
                                                        PUSH nat 2 ;
1915
                                                        SOME ;
1916
                                                        PUSH bytes 0x02 ;
1917
                                                        UPDATE ;
1918
                                                        PUSH nat 1 ;
1919
                                                        SOME ;
1920
                                                        PUSH bytes 0x01 ;
1921
                                                        UPDATE ;
1922
                                                        PUSH nat 0 ;
1923
                                                        SOME ;
1924
                                                        PUSH bytes 0x00 ;
1925
                                                        UPDATE ;
1926
                                                        SWAP ;
1927
                                                        GET ;
1928
                                                        IF_NONE
1929
                                                          { DROP 3 ;
1930
                                                            PUSH string "UNDEFINED_BYTES_IN_MAP" ;
1931
                                                            FAILWITH }
1932
                                                          { PUSH nat 256 ;
1933
                                                            DIG 4 ;
1934
                                                            MUL ;
1935
                                                            ADD ;
1936
                                                            PUSH nat 1 ;
1937
                                                            DIG 3 ;
1938
                                                            ADD ;
1939
                                                            DIG 2 ;
1940
                                                            PAIR ;
1941
                                                            PAIR ;
1942
                                                            LEFT nat } }
1943
                                                      { DROP 2 ;
1944
                                                        RIGHT (pair (pair bytes nat) nat) } } } } ;
1945
                                  DIG 2 ;
1946
                                  SWAP ;
1947
                                  DUP 4 ;
1948
                                  CAR ;
1949
                                  PAIR ;
1950
                                  DUP 4 ;
1951
                                  GET 8 ;
1952
                                  DUP 5 ;
1953
                                  GET 7 ;
1954
                                  PAIR ;
1955
                                  DUP 5 ;
1956
                                  GET 5 ;
1957
                                  DIG 5 ;
1958
                                  GET 3 ;
1959
                                  PAIR ;
1960
                                  PAIR ;
1961
                                  PAIR ;
1962
                                  DIG 2 ;
1963
                                  SWAP ;
1964
                                  SOME ;
1965
                                  SWAP ;
1966
                                  UPDATE } } ;
1967
                       DIG 2 ;
1968
                       PAIR ;
1969
                       PAIR } }
1970
                 { DUP 4 ;
1971
                   CDR ;
1972
                   SWAP ;
1973
                   ITER { SWAP ;
1974
                          DUP ;
1975
                          DUP 3 ;
1976
                          CAR ;
1977
                          PAIR ;
1978
                          DUP 8 ;
1979
                          SWAP ;
1980
                          EXEC ;
1981
                          DROP ;
1982
                          SWAP ;
1983
                          DUP ;
1984
                          DUG 2 ;
1985
                          SOME ;
1986
                          DIG 2 ;
1987
                          CAR ;
1988
                          UPDATE } ;
1989
                   DIG 5 ;
1990
                   DROP ;
1991
                   DIG 3 ;
1992
                   CAR ;
1993
                   PAIR ;
1994
                   PAIR ;
1995
                   PAIR } ;
1996
               UNPAIR ;
1997
               UNPAIR ;
1998
               DUP 4 ;
1999
               CDR ;
2000
               DUP 5 ;
2001
               CAR ;
2002
               CDR ;
2003
               DUP 6 ;
2004
               CAR ;
2005
               CAR ;
2006
               CDR ;
2007
               CDR ;
2008
               DIG 3 ;
2009
               PAIR ;
2010
               DIG 5 ;
2011
               CAR ;
2012
               CAR ;
2013
               CAR ;
2014
               PAIR ;
2015
               PAIR ;
2016
               PAIR ;
2017
               DUP ;
2018
               CDR ;
2019
               SWAP ;
2020
               DUP ;
2021
               DUG 2 ;
2022
               CAR ;
2023
               CDR ;
2024
               DUP 3 ;
2025
               CAR ;
2026
               CAR ;
2027
               CDR ;
2028
               DIG 4 ;
2029
               DIG 4 ;
2030
               CAR ;
2031
               CAR ;
2032
               CAR ;
2033
               CAR ;
2034
               PAIR ;
2035
               PAIR ;
2036
               PAIR ;
2037
               PAIR ;
2038
               DUP ;
2039
               CDR ;
2040
               CDR ;
2041
               CDR ;
2042
               DIG 2 ;
2043
               PAIR ;
2044
               SWAP ;
2045
               DUP ;
2046
               DUG 2 ;
2047
               CDR ;
2048
               CAR ;
2049
               PAIR ;
2050
               SWAP ;
2051
               CAR ;
2052
               PAIR ;
2053
               NIL operation ;
2054
               PAIR }
2055
             { DIG 2 ;
2056
               DROP ;
2057
               SWAP ;
2058
               DUP ;
2059
               DUG 2 ;
2060
               CAR ;
2061
               CAR ;
2062
               CAR ;
2063
               CAR ;
2064
               DIG 3 ;
2065
               SWAP ;
2066
               EXEC ;
2067
               DROP ;
2068
               SWAP ;
2069
               DUP ;
2070
               DUG 2 ;
2071
               CDR ;
2072
               CDR ;
2073
               CDR ;
2074
               SWAP ;
2075
               IF_LEFT
2076
                 { SWAP ;
2077
                   DUP ;
2078
                   DUG 2 ;
2079
                   CAR ;
2080
                   DUP 3 ;
2081
                   CDR ;
2082
                   SIZE ;
2083
                   COMPARE ;
2084
                   GE ;
2085
                   IF { PUSH string "FF_OVER_MAX_TRUSTEE_AMOUNT" ; FAILWITH } {} ;
2086
                   SWAP ;
2087
                   DUP ;
2088
                   DUG 2 ;
2089
                   CDR ;
2090
                   SWAP ;
2091
                   DUP ;
2092
                   DUG 2 ;
2093
                   MEM ;
2094
                   IF { PUSH string "FF_TRUSTEE_ALREADY_EXIST" ; FAILWITH } {} ;
2095
                   SWAP ;
2096
                   DUP ;
2097
                   DUG 2 ;
2098
                   CDR ;
2099
                   SWAP ;
2100
                   PUSH bool True ;
2101
                   SWAP ;
2102
                   UPDATE ;
2103
                   SWAP ;
2104
                   CAR ;
2105
                   PAIR }
2106
                 { SWAP ;
2107
                   DUP ;
2108
                   DUG 2 ;
2109
                   CDR ;
2110
                   SWAP ;
2111
                   DUP ;
2112
                   DUG 2 ;
2113
                   MEM ;
2114
                   NOT ;
2115
                   IF { PUSH string "FF_NOT_TRUSTEE" ; FAILWITH } {} ;
2116
                   SWAP ;
2117
                   DUP ;
2118
                   DUG 2 ;
2119
                   CDR ;
2120
                   SWAP ;
2121
                   PUSH bool False ;
2122
                   SWAP ;
2123
                   UPDATE ;
2124
                   SWAP ;
2125
                   CAR ;
2126
                   PAIR } ;
2127
               SWAP ;
2128
               DUP ;
2129
               DUG 2 ;
2130
               CDR ;
2131
               CDR ;
2132
               CAR ;
2133
               PAIR ;
2134
               SWAP ;
2135
               DUP ;
2136
               DUG 2 ;
2137
               CDR ;
2138
               CAR ;
2139
               PAIR ;
2140
               SWAP ;
2141
               CAR ;
2142
               PAIR ;
2143
               NIL operation ;
2144
               PAIR } } }