;; stx-defi-szn-stx-mania
;; contractType: editions
(impl-trait 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.nft-trait.nft-trait)
(define-non-fungible-token stx-defi-szn-stx-mania uint)
;; Constants
(define-constant DEPLOYER tx-sender)
(define-constant COMM u1000)
(define-constant COMM-ADDR 'SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S)
(define-constant ERR-NO-MORE-NFTS u100)
(define-constant ERR-NOT-ENOUGH-PASSES u101)
(define-constant ERR-PUBLIC-SALE-DISABLED u102)
(define-constant ERR-CONTRACT-INITIALIZED u103)
(define-constant ERR-NOT-AUTHORIZED u104)
(define-constant ERR-INVALID-USER u105)
(define-constant ERR-LISTING u106)
(define-constant ERR-WRONG-COMMISSION u107)
(define-constant ERR-NOT-FOUND u108)
(define-constant ERR-PAUSED u109)
(define-constant ERR-MINT-LIMIT u110)
(define-constant ERR-METADATA-FROZEN u111)
(define-constant ERR-AIRDROP-CALLED u112)
(define-constant ERR-NO-MORE-MINTS u113)
(define-constant ERR-INVALID-PERCENTAGE u114)
(define-constant ERR-CONTRACT-LOCKED u115)
;; Internal variables
(define-data-var mint-limit uint u0)
(define-data-var last-id uint u1)
(define-data-var total-price uint u0)
(define-data-var artist-address principal 'SP3M33RCWQ62K930ACHRARHPDD83E8B20SH4MMFA9)
(define-data-var ipfs-root (string-ascii 80) "ipfs://ipfs/QmbuHh7wzVXSaudDywdMVHuW92o75NW5iRvcQTtgWFWtDM/")
(define-data-var mint-paused bool true)
(define-data-var premint-enabled bool false)
(define-data-var sale-enabled bool false)
(define-data-var metadata-frozen bool false)
(define-data-var airdrop-called bool false)
(define-data-var mint-cap uint u1)
(define-data-var locked bool false)
(define-map mints-per-user principal uint)
(define-map mint-passes principal uint)
(define-public (lock-contract)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set locked true)
(ok true)))
(define-public (claim)
(mint (list true)))
;; Mintpass Minting
(define-private (mint (orders (list 25 bool)))
(let
(
(passes (get-passes tx-sender))
)
(if (var-get premint-enabled)
(begin
(asserts! (>= passes (len orders)) (err ERR-NOT-ENOUGH-PASSES))
(map-set mint-passes tx-sender (- passes (len orders)))
(mint-many orders)
)
(begin
(asserts! (var-get sale-enabled) (err ERR-PUBLIC-SALE-DISABLED))
(mint-many orders)
)
)))
(define-private (mint-many (orders (list 25 bool )))
(let
(
(last-nft-id (var-get last-id))
(enabled (asserts! (or (is-eq (var-get mint-limit) u0) (<= last-nft-id (var-get mint-limit))) (err ERR-NO-MORE-NFTS)))
(art-addr (var-get artist-address))
(id-reached (fold mint-many-iter orders last-nft-id))
(price (* (var-get total-price) (- id-reached last-nft-id)))
(total-commission (/ (* price COMM) u10000))
(current-balance (get-balance tx-sender))
(total-artist (- price total-commission))
(capped (> (var-get mint-cap) u0))
(user-mints (get-mints tx-sender))
)
(asserts! (or (is-eq false (var-get mint-paused)) (is-eq tx-sender DEPLOYER)) (err ERR-PAUSED))
(asserts! (is-eq (var-get locked) false) (err ERR-CONTRACT-LOCKED))
(asserts! (or (not capped) (is-eq tx-sender DEPLOYER) (is-eq tx-sender art-addr) (>= (var-get mint-cap) (+ (len orders) user-mints))) (err ERR-NO-MORE-MINTS))
(map-set mints-per-user tx-sender (+ (len orders) user-mints))
(if (or (is-eq tx-sender art-addr) (is-eq tx-sender DEPLOYER) (is-eq (var-get total-price) u0000000))
(begin
(var-set last-id id-reached)
(map-set token-count tx-sender (+ current-balance (- id-reached last-nft-id)))
)
(begin
(var-set last-id id-reached)
(map-set token-count tx-sender (+ current-balance (- id-reached last-nft-id)))
(try! (stx-transfer? total-artist tx-sender (var-get artist-address)))
(try! (stx-transfer? total-commission tx-sender COMM-ADDR))
)
)
(ok id-reached)))
(define-private (mint-many-iter (ignore bool) (next-id uint))
(if (or (is-eq (var-get mint-limit) u0) (<= next-id (var-get mint-limit)))
(begin
(unwrap! (nft-mint? stx-defi-szn-stx-mania next-id tx-sender) next-id)
(+ next-id u1)
)
next-id))
(define-public (set-artist-address (address principal))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set artist-address address))))
(define-public (set-price (price uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set total-price price))))
(define-public (toggle-pause)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set mint-paused (not (var-get mint-paused))))))
(define-public (set-mint-limit (limit uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(asserts! (< limit (var-get mint-limit)) (err ERR-MINT-LIMIT))
(ok (var-set mint-limit limit))))
(define-public (burn (token-id uint))
(begin
(asserts! (is-owner token-id tx-sender) (err ERR-NOT-AUTHORIZED))
(asserts! (is-none (map-get? market token-id)) (err ERR-LISTING))
(nft-burn? stx-defi-szn-stx-mania token-id tx-sender)))
(define-private (is-owner (token-id uint) (user principal))
(is-eq user (unwrap! (nft-get-owner? stx-defi-szn-stx-mania token-id) false)))
(define-public (set-base-uri (new-base-uri (string-ascii 80)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(asserts! (not (var-get metadata-frozen)) (err ERR-METADATA-FROZEN))
(print { notification: "token-metadata-update", payload: { token-class: "nft", contract-id: (as-contract tx-sender) }})
(var-set ipfs-root new-base-uri)
(ok true)))
(define-public (freeze-metadata)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set metadata-frozen true)
(ok true)))
;; Non-custodial SIP-009 transfer function
(define-public (transfer (id uint) (sender principal) (recipient principal))
(begin
(asserts! (is-eq tx-sender sender) (err ERR-NOT-AUTHORIZED))
(asserts! (is-none (map-get? market id)) (err ERR-LISTING))
(trnsfr id sender recipient)))
;; read-only functions
(define-read-only (get-owner (token-id uint))
(ok (nft-get-owner? stx-defi-szn-stx-mania token-id)))
(define-read-only (get-last-token-id)
(ok (- (var-get last-id) u1)))
(define-read-only (get-token-uri (token-id uint))
(ok (some (var-get ipfs-root))))
(define-read-only (get-paused)
(ok (var-get mint-paused)))
(define-read-only (get-price)
(ok (var-get total-price)))
(define-read-only (get-artist-address)
(ok (var-get artist-address)))
(define-read-only (get-locked)
(ok (var-get locked)))
(define-read-only (get-mints (caller principal))
(default-to u0 (map-get? mints-per-user caller)))
(define-read-only (get-mint-limit)
(ok (var-get mint-limit)))
(define-data-var license-uri (string-ascii 80) "")
(define-data-var license-name (string-ascii 40) "")
(define-read-only (get-license-uri)
(ok (var-get license-uri)))
(define-read-only (get-license-name)
(ok (var-get license-name)))
(define-public (set-license-uri (uri (string-ascii 80)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set license-uri uri))))
(define-public (set-license-name (name (string-ascii 40)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set license-name name))))
;; Non-custodial marketplace extras
(use-trait commission-trait 'SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.commission)
(define-map token-count principal uint)
(define-map market uint {price: uint, commission: principal, royalty: uint})
(define-read-only (get-balance (account principal))
(default-to u0
(map-get? token-count account)))
(define-private (trnsfr (id uint) (sender principal) (recipient principal))
(match (nft-transfer? stx-defi-szn-stx-mania id sender recipient)
success
(let
((sender-balance (get-balance sender))
(recipient-balance (get-balance recipient)))
(map-set token-count
sender
(- sender-balance u1))
(map-set token-count
recipient
(+ recipient-balance u1))
(ok success))
error (err error)))
(define-private (is-sender-owner (id uint))
(let ((owner (unwrap! (nft-get-owner? stx-defi-szn-stx-mania id) false)))
(or (is-eq tx-sender owner) (is-eq contract-caller owner))))
(define-read-only (get-listing-in-ustx (id uint))
(map-get? market id))
(define-public (list-in-ustx (id uint) (price uint) (comm-trait <commission-trait>))
(let ((listing {price: price, commission: (contract-of comm-trait), royalty: (var-get royalty-percent)}))
(asserts! (is-sender-owner id) (err ERR-NOT-AUTHORIZED))
(map-set market id listing)
(print (merge listing {a: "list-in-ustx", id: id}))
(ok true)))
(define-public (unlist-in-ustx (id uint))
(begin
(asserts! (is-sender-owner id) (err ERR-NOT-AUTHORIZED))
(map-delete market id)
(print {a: "unlist-in-ustx", id: id})
(ok true)))
(define-public (buy-in-ustx (id uint) (comm-trait <commission-trait>))
(let ((owner (unwrap! (nft-get-owner? stx-defi-szn-stx-mania id) (err ERR-NOT-FOUND)))
(listing (unwrap! (map-get? market id) (err ERR-LISTING)))
(price (get price listing))
(royalty (get royalty listing)))
(asserts! (is-eq (contract-of comm-trait) (get commission listing)) (err ERR-WRONG-COMMISSION))
(try! (stx-transfer? price tx-sender owner))
(try! (pay-royalty price royalty))
(try! (contract-call? comm-trait pay id price))
(try! (trnsfr id owner tx-sender))
(map-delete market id)
(print {a: "buy-in-ustx", id: id})
(ok true)))
(define-data-var royalty-percent uint u500)
(define-read-only (get-royalty-percent)
(ok (var-get royalty-percent)))
(define-public (set-royalty-percent (royalty uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(asserts! (and (>= royalty u0) (<= royalty u1000)) (err ERR-INVALID-PERCENTAGE))
(ok (var-set royalty-percent royalty))))
(define-private (pay-royalty (price uint) (royalty uint))
(let (
(royalty-amount (/ (* price royalty) u10000))
)
(if (and (> royalty-amount u0) (not (is-eq tx-sender (var-get artist-address))))
(try! (stx-transfer? royalty-amount tx-sender (var-get artist-address)))
(print false)
)
(ok true)))
;; Extra functionality required for mintpass
(define-public (toggle-sale-state)
(let
(
;; (premint (not (var-get premint-enabled)))
(sale (not (var-get sale-enabled)))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set premint-enabled false)
(var-set sale-enabled sale)
(print { sale: sale })
(ok true)))
(define-public (enable-premint)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set premint-enabled true))))
(define-public (disable-premint)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set premint-enabled false))))
(define-read-only (get-passes (caller principal))
(default-to u0 (map-get? mint-passes caller)))
(define-read-only (get-premint-enabled)
(ok (var-get premint-enabled)))
(define-read-only (get-sale-enabled)
(ok (var-get sale-enabled)))
(define-public (clear-mintpasses (addresses (list 2000 principal)))
(let
(
(index-reached (fold clear-mintpasses-iter addresses u0))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(print {
total-mintpasses-cleared: index-reached,
})
(ok true)))
(define-public (add-mintpasses (addresses (list 2000 principal)))
(let
(
(index-reached (fold add-mintpasses-iter addresses u0))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(print {
total-mintpasses-added: index-reached,
})
(ok true)))
(define-private (clear-mintpasses-iter (address principal) (next-index uint))
(begin
(map-delete mint-passes address)
(+ next-index u1)))
(define-private (add-mintpasses-iter (address principal) (next-index uint))
(let
(
(mintpass-count (get-passes address))
)
(map-set mint-passes address (+ mintpass-count u1))
(+ next-index u1)))
(map-set mint-passes 'SP2Y1RH5YVYDXQB8Z0C4V92XA9CS9CZ8FFF6TAV1M u1)
(map-set mint-passes 'SP1MSGXM5E86A1DP7NXWF7CDHHKM58H0G2XARD8FA u1)
(map-set mint-passes 'SP1TG531NXGFDWNHM4VQ63TVAXP7VVJY3T8BQV5Q3 u1)
(map-set mint-passes 'SP3BP79RS8ET92NZMBP02YND2CT2VR04V23NY0V42 u1)
(map-set mint-passes 'SPBZJW265T87ZQ8KZQXN3SB0EGSP6ZKHY4HPTTVM u1)
(map-set mint-passes 'SP2QXBPJBCWMHR21GPSEE2NHNWJMMSRBNXJVD26TQ u1)
(map-set mint-passes 'SP21V538YE45SZTBJDHMNM2BTGV9WXHFGERWW8QN6 u1)
(map-set mint-passes 'SPX1ENT9ES9TTT4KCRYX7R2K48GG9AF5JT4N3PTM u1)
(map-set mint-passes 'SPRSVE4XS7KXX7VVX5SHTCYZSG7Y5DMP5CCPZ9W0 u1)
(map-set mint-passes 'SP1K9V4N2VSCXDJABQEFR56YV86QAGRKXTFSE8Y6J u1)
(map-set mint-passes 'SPM9QGZE8CH44D3V20XGSZ6D34EQ3J3S75K4ST7G u1)
(map-set mint-passes 'SP1TZYTWEVX0TMBJ2F1BWENXYN3YTWKKAGQFVRSGS u1)
(map-set mint-passes 'SP3WC7D9ZS2HC8GJ40X20QCSF7WGG5GQZK1KE7V7N u1)
(map-set mint-passes 'SPRXVPRRC4WVKSPTRWC7M4JKTMZ0D3W4HSVNBHCD u1)
(map-set mint-passes 'SPYP857NB9CKER14X07CPQ9Q73KW9E7EM25YM09M u1)
(map-set mint-passes 'SPHRFP8CXYHXVA5VJXQ82G19GHQP5X7PN33PVPE6 u1)
(map-set mint-passes 'SP2M53K8EWDJMHEFH1230DWP45F1SATM70JT8QVSE u1)
(map-set mint-passes 'SP24FSF9CCFC769N1G3KCGT2T7D8155A10N54T3PY u1)
(map-set mint-passes 'SP2CV9GE5Z6QTWNTDDC8N3JCSGMF1162B5CB19E4K u1)
(map-set mint-passes 'SP8WZE97Q418TWWCCGFSGE37H55JE2SFAEEPXANK u1)
(map-set mint-passes 'SP2580FS9M8XAQ6SYS93Q4ZC0MQKF8HATZ9YSMH2J u1)
(map-set mint-passes 'SP286PAYV3FXJTJ52CC9ECG0S2Q1P4HKQKDHT750J u1)
(map-set mint-passes 'SP8NAMVQ3ESW17D40NP9A6XC6Z6SD1QVJ11V26P3 u1)
(map-set mint-passes 'SP197XRN2Q16M2CMJK0BFC0TGK61STE0RZJMWG46Q u1)
(map-set mint-passes 'SP3SQQSR7MBCFGBX7PPSCTSVP8TEV1R6508GEWG4P u1)
(map-set mint-passes 'SPDAQH79WTHWD9Y6MBZ6Z1EWD33XE4540DRXX174 u1)
(map-set mint-passes 'SP157TJR753STGBC4TFNXPXF89G7ZT9MESC0980KP u1)
(map-set mint-passes 'SP4KAX63S61RW5GRVCSDKN3C7PX7V16V2M4E0KJZ u1)
(map-set mint-passes 'SP23KTHFC8EX9N3E8HXFCW6WR6TBD0TZQXGDRTSGC u1)
(map-set mint-passes 'SP2F8P2PA7AR5J2BCQNYST513SM9D4P092AGYJZR u1)
(map-set mint-passes 'SP14B6Y8P31VH8ECD4D54YP0152X4GBGXHJW9CW43 u1)
(map-set mint-passes 'SP1ZP5D3TZBCEYD5Y4AN7FHEAXZ0WSFF9WMASV28E u1)
(map-set mint-passes 'SP33G851FGBAD38GT7PGF5RTEZDNTH930PR55GCDG u1)
(map-set mint-passes 'SPNDZFGE7JYNC85QBN3ESYZG4PQ93JTTWNRV9WH u1)
(map-set mint-passes 'SP1KYKZ4487V5XXQHNM0B6M8RXFDX8CV35DJSPX43 u1)
(map-set mint-passes 'SPR0GEBN4HJC6G0KVG78CACW6A64122Z9DY9CZHS u1)
(map-set mint-passes 'SP3CZ07G0Y54YFNWFQVQ1WA9K3ZD07C9GDB4RKSZ5 u1)
(map-set mint-passes 'SPN5FPJJQ6CVAHV1C82QK9Q6315230VF4H2D6JBN u1)
(map-set mint-passes 'SP32VXHFKRVJR9CTVP7GE8S8Q8YFHZED8YN6P9E13 u1)
(map-set mint-passes 'SP1A0ZJMKH43KPCYC41ZGSD9146AQJT705D4127YZ u1)
(map-set mint-passes 'SPCETFX7D0MSPKS4FXJS54Y0GM51NQHE7GKJGMP3 u1)
(map-set mint-passes 'SP1Z6G9SS15AWYP8YP66SRDM4PGZHHEXDKCZK1Y6J u1)
(map-set mint-passes 'SPXB2SGAZEEKR6D8WZ5AVNDAJ6VY9G067S5257X u1)
(map-set mint-passes 'SP30HJZ9TQEXF7XMRNHVJ3RBGV27SRSJEJ1BRZD3E u1)
(map-set mint-passes 'SP2QEVE8PJCY3Y7AWB89GKDJCX53SSX07M0ZJA6D0 u1)
(map-set mint-passes 'SP6C6FDC0JYJY0Z4NJHGA4YF0VN5RJ6VX84ZCXXX u1)
(map-set mint-passes 'SP1T3H7CVZK3AXR1F1VZGR1XPXD1T5X8RNCMF57CD u1)
(map-set mint-passes 'SP1JB6RQMGP3Q33NG2ZBN17CJRAJXWJDPJ9SJZ7Q5 u1)
(map-set mint-passes 'SPN81965G1WZ1143K0KS4R553X9V1VWMDN3YXAYC u1)
(map-set mint-passes 'SP3B7B3XDEEKQPDETF6YVKMF3TKQ72KCG6PJP0XF2 u1)
(map-set mint-passes 'SP34A9Z7W5N7YC9JS7V3T6ECGSS4CVZRDR6NFHQHQ u1)
(map-set mint-passes 'SP2G6P95563NTC2GG219P455MEPQWX20B02X7ANRG u1)
(map-set mint-passes 'SPXRTE1VXRSWF0F872F1FVE42MQBX4H3TY658DSF u1)
(map-set mint-passes 'SP1XXXRE9T8553D3RH1J2HVX5G9FB9KSCGV4EFETK u1)
(map-set mint-passes 'SP33EBRAP8WCMRQ3HNS71WMR8RB2YTD9F1D6E2B09 u1)
(map-set mint-passes 'SPCGM9C01XEVV8YX10QBWESEBVB2PG4TFEDD1T4C u1)
(map-set mint-passes 'SP3TQ70DVG7P8BR98TC5HK1ZZDHZ9N7679GP1K12 u1)
(map-set mint-passes 'SP2H7EJ7RBBEZEZ18N0TJ6H3S4PAYQHV93KQZZYXW u1)
(map-set mint-passes 'SP26SP5X2XKKKVZMKZ6VAE9W70T2CDA7NN6TKKETZ u1)
(map-set mint-passes 'SP14PW4M1XM9NQPVWXXJPCYGZ8GCXGTVA93G9GC86 u1)
(map-set mint-passes 'SPC7JA2QPJGX0VDNM7K2HZJQJA1SDFYVZ1Q5D29J u1)
(map-set mint-passes 'SP3MQVH06YHAWH5HEZ09X6KAND0CKVWJ3PMDEZ2YQ u1)
(map-set mint-passes 'SP3NWMKXBK8V55Y8EBFHT4776K03TQ18JYHP1CTZ9 u1)
(map-set mint-passes 'SP2B6VTWDWA5A2YPRVFWKX0YAHZEE6JM9SN5CH63Z u1)
(map-set mint-passes 'SP1422TF5B7ABT8EZGN0PMFST0NJSSKXDKGSBW70R u1)
(map-set mint-passes 'SP324BQB7SKVE0MBWXE66B9D8CPHHEBBQ9PYHJHJ7 u1)
(map-set mint-passes 'SP2W7DJEQWZQPZST0CMKDQ0D8ER9B9G8J3G69J8P0 u1)
(map-set mint-passes 'SP15G9WBQSF7TVRWN2X4CTGA8HJVRKBETQ2DVWE98 u1)
(map-set mint-passes 'SP3RSCCZX8YVPKQM6WPQ5PBWRTQAM4TCMKVBP0A9B u1)
(map-set mint-passes 'SP1PD74JSYMD4FNYV1CHA149K8GZBR7TT17B2VZT1 u1)
(map-set mint-passes 'SP2AFS93R0SNHCHHFCH9X9CJTPSHFD1PNM75F6AWD u1)
(map-set mint-passes 'SP3G22B6A2W315KGJC9K0KZY7ZX0B9YYXQZ7H545J u1)
(map-set mint-passes 'SP3RE4AGQANYQC8C5FC14G4J5E5PG507MYF9S02MN u1)
(map-set mint-passes 'SPKWPE82A5YWGKXKZC3RFXDQ663F3FV7KHEBSH4V u1)
(map-set mint-passes 'SP3JW4T6YK9X9S87NVPAXA3CFMTKKFVCT785S9XFP u1)
(map-set mint-passes 'SP1S3NSA90T4BV94MXTWVWJH7P0F4CRBCYAKX3BRA u1)
(map-set mint-passes 'SP2P4DEJYJ7JTG370D2H93JA4WHVHTX5S6SY31C4C u1)
(map-set mint-passes 'SP1PCJV9888M9SNFCE5P7764SMQFVAV47287X3M0Y u1)
(map-set mint-passes 'SPT4DXEYMWKVWV4DHSRSEHGG2HD7A7XR7F9MPFZ2 u1)
(map-set mint-passes 'SP3AEFJS9ZPMMPJVRRGK6HGF73G0SXHXD7RTEJCQ7 u1)
(map-set mint-passes 'SP1KQHKSYA04CPXAGWKA5BYJBCVK231VAKENG75XF u1)
(map-set mint-passes 'SP20KMSDXYHMHXPXR9J6WB4QZAWK2TT5XKASYPAQQ u1)
(map-set mint-passes 'SP3BCD6KYJBY80TYB3X2KX36TXAR1A6TSBYS959HA u1)
(map-set mint-passes 'SP2V21C7YQHTK1HVBJA6X9XMHD1WGX3B8534F239V u1)
(map-set mint-passes 'SPKSAFT2DMAVH26MFTMDXHZVATMK04FPZ4HA8BNW u1)
(map-set mint-passes 'SPH20YE23ZCYSVGV69BJ1S90VBTGBEH5WZ35HQ0P u1)
(map-set mint-passes 'SPVP1VZ4RTEBYBC7GQXM5MVY8TGPS6A0RT9K20D3 u1)
(map-set mint-passes 'SP3HQAVNXH6QGB1KBDD5PHS2RW5C8SRKBNAHQNTYY u1)
(map-set mint-passes 'SP2B6EKNTAWDCHDR25YK7VM9789R4RQZQPVAABDC7 u1)
(map-set mint-passes 'SP2QM6F4WWTJEBZVZTGW8752P35JF1Q6X5MGBTNDY u1)
(map-set mint-passes 'SP2XVZSGXCC1MB9MGWRAKB4W1PZP6Y9TRH7PHZCRY u1)
(map-set mint-passes 'SP3QNBTGREWBFFJSB0M824BDV23M9E55CGZJJ4VQZ u1)
(map-set mint-passes 'SP2RZ6PF582DX4FG8PJEVH457WC2MJYCV499F00CP u1)
(map-set mint-passes 'SP3BTH43WTWDS560Q8V85SZKDGMG0Y9A527VYW28M u1)
(map-set mint-passes 'SP3QTD7VRDC69FW48WJ18YR8TJH2PECHV6ZJE3P33 u1)
(map-set mint-passes 'SP19JRV6RAXYJFF3HPD18PMA1209VEAN50J1FVZVA u1)
(map-set mint-passes 'SP3GKJ4X1G779RDQ64CXX0ZZZJGZC5YQ9DN3BHVZV u1)
(map-set mint-passes 'SPVTDVJWDAGBF75QNTV8P30VV15KCHXHVB1PY9EF u1)
(map-set mint-passes 'SP3SQT6K33QQ7AN1XWZZT1MSBCTPVECBA8MN0KAKT u1)
(map-set mint-passes 'SP1HSBJ939XMA9GE7MK54RH55K6Q1BT6QTC36AD0N u1)
(map-set mint-passes 'SP2RB01JG4TM50XNX5N1DNBECB0X60VFPDXMD5PVP u1)
(map-set mint-passes 'SP1GF6MJWWDGF8VGPSCE9V1GVJJ374D2SSDNHC1YQ u1)
(map-set mint-passes 'SP1S58KSNFN46NYVR7DKG6PSD0D7E061T6ZGJ07P9 u1)
(map-set mint-passes 'SP3JADSS3BGM8FPYAZYBX296CS8VPNP106KEE1145 u1)
(map-set mint-passes 'SP24088QVXSWK1NMEH7E1EQKM3TJTY6G2WB9PQTR6 u1)
(map-set mint-passes 'SP185GCH5FZAVJ6CZWBM3D0APN4WWJXVVCKP28AY9 u1)
(map-set mint-passes 'SP10T7A039T36H5141YMEGF52DGSXT942K6MR90W4 u1)
(map-set mint-passes 'SP2RBN57Y7B7ATYA5RK0VJRE6V47W9B5CWD4NNQT7 u1)
(map-set mint-passes 'SP195F7YJH4NRESHBBH9KH1F8HH20V8TFCJJBNDQD u1)
(map-set mint-passes 'SP3HCZVBM188R1YGXDV5MWXS7FXVKYK6XBTB6NG0V u1)
(map-set mint-passes 'SP3TDDAQ684MTE0WXGXRQQ4WQ2NEEN0HZW7P9NEK9 u1)
(map-set mint-passes 'SPRH9X15032ZBM8CBD41XXNY7V51246TY6NVQMT7 u1)
(map-set mint-passes 'SP2TTKD2C73SA2KR4TXKZ6PTKMPWBDX33517M7PV0 u1)
(map-set mint-passes 'SP2JTRR2HPN0XYMEPSKW7WBWMXQ9BRWFKC2KRKQD1 u1)
(map-set mint-passes 'SP1RDJD5YG8KBYRSDHJMN6JZ4KP995Y6N9HRW5G3C u1)
(map-set mint-passes 'SP21HT4REN0DNZ6SKHRW3CNX222CPYSQZNVJ18G7F u1)
(map-set mint-passes 'SPPZDQMJ22CBCEVGHJKXZWG9RXKR8VD49HQZ1D8A u1)
(map-set mint-passes 'SP2XKF5PBB3H5KPDK5ZHD2QCATWYG2ER9NVY9YC8K u1)
(map-set mint-passes 'SP4QJTPXRSCP93G1Q59R9TGW4P91S7JPEB27FQQ2 u1)
(map-set mint-passes 'SP3SK2Y9HQ17Y0V8VWCFJRSTAN7FF126TB5TBAN7J u1)
(map-set mint-passes 'SP1BBATPCVQT2JP56R1Q627SX7DCQPFK0RE7E9WMQ u1)
(map-set mint-passes 'SP313BVMGEV6PB417V8S42KVZ8A83YN2M48VNE4JC u1)
(map-set mint-passes 'SP3WAAYXPC6WZNEC7SHGR36D32RJPZVXRR1BG0QSY u1)
(map-set mint-passes 'SPYXM0DNMHBEWE1D7MV1ZY1PX4ZTZVGZWV116X44 u1)
(map-set mint-passes 'SP255VJWM8FZNZ5G8YBDW5JD0AN3FP60VSEBHCF81 u1)
(map-set mint-passes 'SP28SE46EM9CNEN82APN5NX00PPJDXGKBQ71YHAT4 u1)
(map-set mint-passes 'SP29V7APPV0WQ8YJKCRYW8J3A0TXTC4GM4MVTZ6T7 u1)
(map-set mint-passes 'SP3SAWYMSZJFP69N7ST996SNTSNESTFQCJVW6V8A4 u1)
(map-set mint-passes 'SPBNC6G9YVZPGDV90FYRDZ83QJ1V3X4SX9367XF3 u1)
(map-set mint-passes 'SP8EQE76QX11JDPAQRWRT5B96CCC9VAJMCGZYWKH u1)
(map-set mint-passes 'SP30WJ5S19XTZGBAV979A9CRZ3ERPQXAXQZCWYAG2 u1)
(map-set mint-passes 'SP2V1Y4DVY3AGQBADDVQBKPCQKBNDEBEZ7XBDWZEZ u1)
(map-set mint-passes 'SP16B1FAVXAGS6PBAT20CXPWEQ74XNDK0T02KT6KM u1)
(map-set mint-passes 'SPJH144XQV4YAJJTD5FMWN97N46F6PVP6B4R1KPE u1)
(map-set mint-passes 'SP38MFYXHS8MVCF4N79HA2MH864N8E05328VS8MRT u1)
(map-set mint-passes 'SP1BQPR680MBSPX36C8BGK8F9DMQYSVQ92KPYZ7Y4 u1)
(map-set mint-passes 'SP2RQR6KW5PHCKPPC477QH3E91A60MD86HNWEVQ71 u1)
(map-set mint-passes 'SP286PRYQESCHBRSBYJKGQRVRZQMP7FDD9XK7TT69 u1)
(map-set mint-passes 'SPQ8D04S5RJXCPGBRAHK97MNF86MQNX2D7E8J9XT u1)
(map-set mint-passes 'SP2SK6BCB04ND9VXGJ8QY99MSPXC4CTYSA6KA8BYK u1)
(map-set mint-passes 'SP2PHE666Y3TV9HREEB2PV4269QSBCSN5FEVDTWR u1)
(map-set mint-passes 'SP35R0QGSP3E50FNY231MQQA07MBS66SASRFY9FJC u1)
(map-set mint-passes 'SPRB47C8SCYSH0QCXQECWEKATBGV6FZAXCFSMJ9R u1)
(map-set mint-passes 'SP2B649SA78BS57GABH0CFMMJX25CQ4KQCEGRYT2 u1)
(map-set mint-passes 'SP1T2ZCYP9DP7ABAD095AJNV66QAGD735TF1PYW8G u1)
(map-set mint-passes 'SP1YCBB3S0TSEN19Y83040MT2NWYT4R5MMHAFVNXC u1)
(map-set mint-passes 'SP1ZPCT0VX0ED9KSMV1XT4W2WQYYTXATTGGRJ309C u1)
(map-set mint-passes 'SP3QY1862N2HP3A0MK9AKEJD06ZPYA3ABY5AD68KX u1)
(map-set mint-passes 'SPV9PEZHBCMER977NG4XAXR639685951Z7TXXAFX u1)
(map-set mint-passes 'SP2VSKQS3QG5REMP3SJHMT1AAT0AAK0B6RG9EGBR2 u1)
(map-set mint-passes 'SPK0JPFGHXPFRZRZER7G534GSJAVX09M7FAET1NF u1)
(map-set mint-passes 'SP1XZGTG27T1FJNHFK8NZMBTHZKPREP8TDYGB8MV0 u1)
(map-set mint-passes 'SP36TZ31KBYA66YCW60DTWHCF31PT56WRV5ZC6ZFG u1)
(map-set mint-passes 'SP1PN2P0YWG33KCD9NH6R4AEQ0AD6QWBSCEVQC2BR u1)
(map-set mint-passes 'SPSJHX0XZ9FKCV64THF8KTWHD2A87Q2VAF046GNX u1)
(map-set mint-passes 'SP3CGEEJA652KW2D2D5VZZY6SQN4P6PP42NC86N03 u1)
(map-set mint-passes 'SPFCNM5M9774F3ZXTWGQGVEG64XRQQY2XFESF86Z u1)
(map-set mint-passes 'SP37ZRDCVSF4A8P7F1GVFKSAFMM0QE2C2E3SJWNCG u1)
(map-set mint-passes 'SP3Z1VJF8Y92ESAQTY566SC1Y9GMEMZ0TZNMH2P07 u1)
(map-set mint-passes 'SP257C3DMTE0QVV452JC0WC0J3JVF77367KMH8WDH u1)
(map-set mint-passes 'SPTETYQFT9B9CK357K88PCF52TBZQ1WP9S3AR4S3 u1)
(map-set mint-passes 'SP3P8GFF3QH1ZQYHMAQ0777FT0Y89AWVDBH2K613A u1)
(map-set mint-passes 'SP2H7KT34XH74NA9Y79N4B0GZSANM3BE9A3KJHMNQ u1)
(map-set mint-passes 'SP2KTQZDJ2ENQRDVT1D8PKVN4XK6SVQTNSXGYC79Y u1)
(map-set mint-passes 'SP2GTCD99SBBQ4ZH62EXX9HZHD6Y5DP929RK7R7N2 u1)
(map-set mint-passes 'SP3523SRGTKBEB9C2CYPESM3XSQ8SRGJWT3EE8G2S u1)
(map-set mint-passes 'SPHRBC57NXSAGXGC30XMXF2D4AEHME36J900B8J0 u1)
(map-set mint-passes 'SP3M8KBDMF6V339XNFP8D593MCPX4YAW0VG8XWX9C u1)
(map-set mint-passes 'SPCXFP3VKTZ9NG2C26AAZARP3F3Q8E9GV3PVT7HD u1)
(map-set mint-passes 'SP2NMNZJP2W24W5210Q5ZRDTMV26M43NBTN3S0NHY u1)
(map-set mint-passes 'SP32ZVAYAJ545BSN5PR90HB6K9M952SM75D3Z3PKB u1)
(map-set mint-passes 'SP3TNH1CXW3G9V929AG7RA3PZ5CWP9BMH9AS7ZK7E u1)
(map-set mint-passes 'SP22YFNH4BYXM6QK3XN55JTJSRBHE99K5VPH8S4BR u1)
(map-set mint-passes 'SP2AB4F1DQDHMZ4Y73EYM8NZ1NZA7GTYP23R4YKZ6 u1)
(map-set mint-passes 'SP1ZT1XDPST0B9M424FJYQJJAAPP23M17BT3GVXT u1)
(map-set mint-passes 'SP1PQNRRD5SZFJZJZVZ5P8AFDWCZ00C1JR3NXRB58 u1)
(map-set mint-passes 'SP279VFH4J48E95T319NK0H3VA5EVP3XBQMMBQBZV u1)
(map-set mint-passes 'SP1TCCD2S10RA7W8KDEAG0H9B5KDW0JD679EAADSW u1)
(map-set mint-passes 'SP3PY2KBZXE2PBD532Z16VERQMAP04QZ3TXYDZRZ8 u1)
(map-set mint-passes 'SP1D5WN43924G7P7KT4KD78B2JEZ7EZSX90TPXCWB u1)
(map-set mint-passes 'SP2N0CKP37N6AXYE9G01N6TGA3CJ4SQKSP7QXCAV5 u1)
(map-set mint-passes 'SP2E8X9CKNHWJMPHQC8F58X41Z86DWP9BP2ACXKQ0 u1)
(map-set mint-passes 'SP3KJGB642P5DJD8JFEVMZZ1PJKMANV8G92RFXXSM u1)
(map-set mint-passes 'SP1HRT6MPNPS94QY4T818AW0QPS73ZF60DTGCP1V8 u1)
(map-set mint-passes 'SP1VS6A0R0SS63GSEPRE7F5FY2BATKG5262KFVWQ1 u1)
(map-set mint-passes 'SP3ZB8J8H8BR3RWVGW9HATT54TZ5MBV0MB89DKXZR u1)
(map-set mint-passes 'SP1MWVQ9PF33M6WF4ZTYPEJMTEDG8HZXQKPAFDFTG u1)
(map-set mint-passes 'SP3SEQY6BMR1KRYYCDQ1EW9MTJ97H3MJZERS1826M u1)
(map-set mint-passes 'SP3X0521AQ0WDYBHS2C1A2HVX5WY8195CJDM5VGHR u1)
(map-set mint-passes 'SPAYGCTZJ3HZGGKZF98QQGC1RMAD351G9YW8QFYM u1)
(map-set mint-passes 'SP46VX4JTEMV2GWAJ360NYSA66RF0H94DJYZMAYP u1)
(map-set mint-passes 'SP18JB6MM0R3SW93P5MAP6JGHJE4K41NG28T8GRPP u1)
(map-set mint-passes 'SP1WP3Y1M610DQWQN5GP9QZNE5WJT3GHE5K6HBYGZ u1)
(map-set mint-passes 'SP1P634TXA9GC4R5CYQFMR7VSNX98BPZE5FCXNKD6 u1)
(map-set mint-passes 'SP2VMM4B77S82N3RGJFRQ9C80KP03DAZRMRAWYEKZ u1)
(map-set mint-passes 'SP1D6E6431BS4Z8HWXYJ8NH1KZXH7QCJMGD7JHVWT u1)
(map-set mint-passes 'SP1BHK6M16PK6X3CEXBGXSG79YHZZJSTV5PEAT9M2 u1)
(map-set mint-passes 'SPT3KGKVQMZ6GSAHWA70VK9Q4QN7Q4BMKHR2TRNS u1)
(map-set mint-passes 'SPH08D52388Q1PZ98NNXEN18NMY8VNY7TH6S57YC u1)
(map-set mint-passes 'SP32479EMZ9BN2GJT70ZG7W0809ZX9EYXEAKEHRT2 u1)
(map-set mint-passes 'SPHVMSKDTBASH0EFD3CPVZQ2DTP36AFZ9TJ9NBB7 u1)
(map-set mint-passes 'SP13CKQBSWCQ3RPG775JXN9RHN7NC660RMEWFR5CV u1)
(map-set mint-passes 'SP3CVVD7P8M3K5ZDB8XWRGQX37XKXVSNWFV1V4Y2K u1)
(map-set mint-passes 'SP399YK5JQ3Z7WWYBSV6NRB89MSKV07WE9BGZTQRY u1)
(map-set mint-passes 'SP2V7K64E1N4ZKA6K575QVPC5R2RK9PY2WMG9HCKK u1)
(map-set mint-passes 'SP3TXT99NWGW8YRZ38FH9G7TQW22FA5EWJ2MKTPWZ u1)
(map-set mint-passes 'SP3VMANHCB3G8E00DREXD406B3SDWKB4R9GAFA6HA u1)
(map-set mint-passes 'SP1536TSFBZ7SYF8GEMY7D2WRJ7QWRKDMCTR9NDXJ u1)
(map-set mint-passes 'SP23J5PYB1PR9VAM0WKYQJKVJ0359FE1XH8QABZ87 u1)
(map-set mint-passes 'SP3QEWY11T6FNWZ5M0Z17X37D13SQYCVNJVAYTNR3 u1)
(map-set mint-passes 'SP3EQPAH0DNQW4FFN1KFWQJGT7WAGP27VB57Q4CTK u1)
(map-set mint-passes 'SP2M60P8PYSWEZ59MS2G21RPP9H75ZVBFZEHKCWJ6 u1)
(map-set mint-passes 'SP1JA2BJK7XJX65CCJKA4Y3JGCRVG4KPWEWR330KX u1)
(map-set mint-passes 'SPH0GT8AF76WB9VY8MM4PGY3Q5JTQNQ278RDW0H6 u1)
(map-set mint-passes 'SP355RMNS7XB9FAEF9CPQ7F36PXD94R40G1Y2NKEG u1)
(map-set mint-passes 'SP375J1N3DBY70S6XCB22KCHTMXVKBGMZWX70X5WS u1)
(map-set mint-passes 'SP1KCPAPTB79B8CE2QFFQ0PA23N2JPK04ZKVT96XD u1)
(map-set mint-passes 'SP3CN287XZC7DARA3A3C1FMVJV6C637HT1EDVXDB2 u1)
(map-set mint-passes 'SP15K80002Y583MGH37Z9WZJ237NKKPPFGX88EM30 u1)
(map-set mint-passes 'SP2N5HF4KKC26VZZY9ZK2XQBFSFD917WQWQ5EF6GY u1)
(map-set mint-passes 'SP127JH194R74RXKAR20WKH5N3W04HN2DE9906FH3 u1)
(map-set mint-passes 'SP24EQ89811K5GDRM1838PF3Y5WKYWFF0ZJPBJW29 u1)
(map-set mint-passes 'SPM02ZRDDZKQMA6GYQ46FN533EXJY2M22VK3Y32E u1)
(map-set mint-passes 'SP30BEPKKZ8A72H26HJXTG65M6Q5GSPVK9T8T2XJ8 u1)
(map-set mint-passes 'SPY5V836NH7DJ1WG8X5TCH2G0799XZK9JZYT5Q3K u1)
(map-set mint-passes 'SP1FFX5FWK8WPGJ3PH74S8947HVJJFWDJ582RG8JR u1)
(map-set mint-passes 'SP3RAC0Q8M4Z14VBC2ZKZAQQJWZRN5G87S7V1BRB u1)
(map-set mint-passes 'SP21ST5MTGH478AFW1CC38QJB9BJKWCS9NGZK741F u1)
(map-set mint-passes 'SP2ZGRQAC7QGSGJ56BFARBE74BZTMGP7W0X13A44Z u1)
(map-set mint-passes 'SP3YPQZV15Q0A073KZSJRN2ETR9P5Y4VH4HFJB0NX u1)
(map-set mint-passes 'SP26MW433VM7532QH5ZDHEHAHZ58GW8J15WBCJ5A5 u1)
(map-set mint-passes 'SP3GRNYW389SE36RTW6KMF54QZVG1AJP8XPMNSJ1X u1)
(map-set mint-passes 'SP3VJSS4WKRANDD2V2AG89JKBZ8WMSAQYYEF57NBG u1)
(map-set mint-passes 'SP167QD5PJM6XQW5REZ24ZCN8D489PA8JC5653TF9 u1)
(map-set mint-passes 'SPQ1XYW6299VGZMGPTKWGTM9T0CNS9M0J8M3VEB3 u1)
(map-set mint-passes 'SP3VBNDJ4BJKP8H8AGKHD70NG71Y05A2EHRB8V7RZ u1)
(map-set mint-passes 'SP3R8P1JR378HS2XXGACA32ZN09XKR5WRKQXCHNXC u1)
(map-set mint-passes 'SPSFDTQXTN62FM260RKA50PY4FKMHWBY7AGXAD86 u1)
(map-set mint-passes 'SP31QET820BNNS6HET0MGXMKWC6HF0D5V4YXDKFG2 u1)
(map-set mint-passes 'SPW0EYGS18VZJMK5TB1ZVM5T131ZB1P081556AG5 u1)
(map-set mint-passes 'SP11TSY6Q0ER893HNKZ44JZV78YTW1PNG2YCRHVQC u1)
(map-set mint-passes 'SP2SKES9NMWHH3WTAD2V5ZVY16ZJFMJ4JKFSQAVF1 u1)
(map-set mint-passes 'SP3HJYZ83M93Z8P945MNRC01RP52NBARVNGTSAZMJ u1)
(map-set mint-passes 'SP3S5KFWY5H8BERS2ZA2X4T5NEV66FCTTG6VZP4ZD u1)
(map-set mint-passes 'SPZ7QNX7RBXMK0T5A71F3T5EZY0733AQ9J742TXJ u1)
(map-set mint-passes 'SP2TXZ0CE51EERT61WKPRE9JKB06EVCS43G07B22J u1)
(map-set mint-passes 'SP47MER78CX86JKVJKCBYCQ3QJ9DTX46E35ZEZPD u1)
(map-set mint-passes 'SP1GFT1ZEYNY24NXGMQJMQ29VAH82EMHH92AQ3548 u1)
(map-set mint-passes 'SP2Z1SFQDBA9R1SFPZNG0MKY2REA0NRVYBRMCVHN7 u1)
(map-set mint-passes 'SP1HW31DD146A9WDRHBHPCMZ1W36AM6HB3RW9EFKE u1)
(map-set mint-passes 'SP14JPKZT1AGJWXHTVBPMVZQ11T7PGT0205DACDTB u1)
(map-set mint-passes 'SP5D4C4DM0TSXKFJJ49V05B59PQ4YB4QVJA8GD8T u1)
(map-set mint-passes 'SP2EX6YKM52T7GMCTJ8E2CTGMPVB4YBTJE5R0QZY5 u1)
(map-set mint-passes 'SP11DP40CNXHQZZCGKZNP5ECX9MY6VV7YVH4DQP06 u1)
(map-set mint-passes 'SP11F9RDXFPP8XCQ4V1QSE1E0CM3X2DQVEKB6WXT8 u1)
(map-set mint-passes 'SP21GTVTEEDQBBQSK6FPEG4G4XGQRJGJDQV41CAD u1)
(map-set mint-passes 'SP29JW7VHD4NYRDJH7V8GED3Z9W6K58ZVPR0C28C u1)
(map-set mint-passes 'SP3JFRVQD57EFHRMPBESH1HV2XQ3HP9ZX2PCK845B u1)
(map-set mint-passes 'SP5FB8G3MRSNN6FVDAB3GTJRWJA0E01S6AQX37YJ u1)
(map-set mint-passes 'SPXPR9RGQBTHX3J90GZM9GK4V77B9C0DHF5DG7KH u1)
(map-set mint-passes 'SP2VH5C759NFW2XJ5CNCG9H0BRP7X9FFD9S4MQ85B u1)
(map-set mint-passes 'SP8HE8Z3CYYRERBT1ZHBAX6S27MXAQ3K2JQSPE5T u1)
(map-set mint-passes 'SP285GSAS1350RS5C7GAXSDZG6ZGPJ89BFRJ9P1X3 u1)
(map-set mint-passes 'SPN3AV2KQ8HYFHGKC34SGVSS9TNMJXG56GXRSR70 u1)
(map-set mint-passes 'SP2H3TTG3MQK9CEF59S7VQ86H4FX9CH596ZXSE2EK u1)
(map-set mint-passes 'SP3178SS4Y1PH40020TEYEH0254ZZ4V3TDY2VBJ2E u1)
(map-set mint-passes 'SPKQHX9HQR9CSY9F18VS9XD63RNN4WVNQGVZDPPJ u1)
(map-set mint-passes 'SPT82NHYPCR6F9FHZY27AWHPE6PM5TS639WK3A2Y u1)
(map-set mint-passes 'SP27531VZ5G70JGHKA81VS6HWZB3K31HBKTKWFQP7 u1)
(map-set mint-passes 'SP3DVPJ2F5SYZJYFD7MRSFHAKTJ31JHDM5P6CX3CP u1)
(map-set mint-passes 'SP15D7423188QRHHVW4CK75GWZYMYDK25EZ633NNE u1)
(map-set mint-passes 'SP25CWS3QVK1QP1MKN8VDX70X64GBNNMCV758HCY3 u1)
(map-set mint-passes 'SP29GJY063S5HQJ8CPTW78PHE849W1GTVB8X0F8WW u1)
(map-set mint-passes 'SP2BPMB5SSERNCYKBCWBK65E2CZ01PSYK4BDZ5XC2 u1)
(map-set mint-passes 'SPTC950K46SE299PC2AKRV6WHFYKZF6VP5FGVH9B u1)
(map-set mint-passes 'SP2ASCC69GQPFWTCCEYXDYQEDN1AQ00Z6SFTQC392 u1)
(map-set mint-passes 'SP2MCCFPBKK56KV7DQQ6MWZQGFFFBNY5RA60R6G4M u1)
(map-set mint-passes 'SP2HT2689YMNZFA89GH8RVSAJVM47GWG9YS36R82V u1)
(map-set mint-passes 'SP14D0JZN9WABM1B6ZDDEFSWGHS3QWNKGCZ63APXX u1)
(map-set mint-passes 'SP2S0Y8EX2YV10Y3BK655GXW8Z5FG1B2VGRDT0C94 u1)
(map-set mint-passes 'SP37WET9FZZ0V3N87Q71897HK138VTSFDRWJ1NZS u1)
(map-set mint-passes 'SPQ9B3SYFV0AFYY96QN5ZJBNGCRRZCCMFHY0M34Z u1)
(map-set mint-passes 'SP298KDW189R0MNY3DZEBG46ESFBZXFZ65FAYVM3A u1)
(map-set mint-passes 'SP3FFNFR9W4WATP720EAZYP3J1M42TYVEZC3QSW7Y u1)
(map-set mint-passes 'SPNE7JS4B11TKZ7JVEE6596XTMS0DKW1CJQWASMT u1)
(map-set mint-passes 'SP35BVRNHS1D1TYMZ60MCAP22400K2G1DYSJ6M6FW u1)
(map-set mint-passes 'SP1CYCPFKGQPQNZGDNTH6K200AG61WCSW1BXM0XBP u1)
(map-set mint-passes 'SP3H257Q6S8W3NAJAEBRBPCCYF53YA377WKG3BZGK u1)
(map-set mint-passes 'SP1Q86QWNA350XYM0090ZPRC4TW5R7PH9531X51PF u1)
(map-set mint-passes 'SP1KX23AAP40SC286N4JXWSD3VTV5BARGKMCK730M u1)
(map-set mint-passes 'SPPARYP6M36XB8538KQ86TADYAWNVV8N104Q75GH u1)
(map-set mint-passes 'SP1V10M06M5R67B1NVD96WQ5GD71NH71WWRDWN6K9 u1)
(map-set mint-passes 'SP3HJPQMYJGB7E4JS34TA3G3PM0VW35363FH13T16 u1)
(map-set mint-passes 'SP15AKPSA55HG9SW6X0XX3PXGNB2QQPQPMW9R5SYS u1)
(map-set mint-passes 'SP05802QYQNF7N9T257M0ZVB4JNZB3Y4MR2V116G u1)
(map-set mint-passes 'SPD40DCPP9CMYNDWA6XHHB5AHB6YYTK93684H24C u1)
(map-set mint-passes 'SP2GCNGY2CGV9Z2B9SZXWPJ2DA4E0M2HKRYTZ8FAC u1)
(map-set mint-passes 'SPFWV4SD4CB6JX36FJKMTDZ8FHTJWR4R9KFNT2CE u1)
(map-set mint-passes 'SP3D4H8R2Y8RZM94WN3SMJQDRKQMRPQB308E6KCRW u1)
(map-set mint-passes 'SP2E6PF030A8RGS0Z24HS6N8EG66SFBT0PWMHX9S7 u1)
(map-set mint-passes 'SP27XQ0HSHZYXHMQ6ZQ76S4067F9WBQX0AV6CD994 u1)
(map-set mint-passes 'SP8SF5BQ1KPG56RM57NP9EG040T2ZGYYAS852WR0 u1)
(map-set mint-passes 'SP1Z7F0BP9APG6SGY9G9DZ7RSH1ZCW8HWBJ3MQWA3 u1)
(map-set mint-passes 'SPBWF76FHRNA9C1A6ZZ896B3XRRK5TGGW7X9A55A u1)
(map-set mint-passes 'SPYFXCY40KC5E60V5Z51JA27ETQ0M4XDFFD84AXF u1)
(map-set mint-passes 'SP3G5R09XPSYTCQ8JW12M2X16DTE7T2ZSZNBGA32Z u1)
(map-set mint-passes 'SPFXAEX7AM4P40XM36M5JBXENB0W3K5NBBZ1NRA6 u1)
(map-set mint-passes 'SPNAKYGSZW747J3AA5JF43VMSYREV22KTM4W5G79 u1)
(map-set mint-passes 'SP1EYT3DXJKB94030R1J6MEZP2QYCSTZN7ZGCKBKG u1)
(map-set mint-passes 'SP2D2HJJYSBKFQRVPSGGKVTSDWT5XE7MM74G99NVF u1)
(map-set mint-passes 'SP1NJ5VNTN4HB5EXA4RAZASJ4S0CWD72BEGYSRSMJ u1)
(map-set mint-passes 'SP1Y7JPA6M3GX2ASDH6NA097VQYT7VA8P4GVWFWSF u1)
(map-set mint-passes 'SP2CTPRWCECF3K8DMVRVJJ2TYFNZXZR26BCGNB7YA u1)
(map-set mint-passes 'SP3DYSKV87G6X8VXQ1E2C2TBED5NBK89K1NYAF3PS u1)
(map-set mint-passes 'SPJZ1C0AC0VMB3VM1AFSQASSS1D2JXDRPZ9Z17HT u1)
(map-set mint-passes 'SP1GVZKZVES911BNTZYWDHJ72HSXYMGAWJRZB7902 u1)
(map-set mint-passes 'SP26XS066PNXV9M28HP4EZVS7R36JWVGERW58H5KW u1)
(map-set mint-passes 'SP3GPV7YEVS2VNFYYXEJA4HWXA0HFX4SMFK9F12P7 u1)
(map-set mint-passes 'SP1KD2BS98HCAEZQB3A4AXNS2KNAFTXF2CTJBQWF6 u1)
(map-set mint-passes 'SP32AQBNXP2417J3W2VW77T07XSVC5ZXAGRHB5N2X u1)
(map-set mint-passes 'SP14QCYNFM1V9RQJJCMN619Z1BY0QF9VC6YA0NR3N u1)
(map-set mint-passes 'SP3RZK7VJ3VKZAEKNGE34ACG7FMX6CQXBKTTR7G6E u1)
(map-set mint-passes 'SP1QQ2R89BHPCDS7BN11G851ZV2A0XKBC387Y1FPA u1)
(map-set mint-passes 'SP2SB1V0MW1Y0XH71FRB0BGY8CZ91X85WG0CBRS40 u1)
(map-set mint-passes 'SPVSN3PG62Z4WTVC9Z59032164E2S0FRWVNFJ8PP u1)
(map-set mint-passes 'SP2KM83HWZWNMM0B20697PSG76CRRRHBNC1NTZDAE u1)
(map-set mint-passes 'SP3Q153X2W85JN7K05V1PPCY4MXMZ60BV3DX3P74 u1)
(map-set mint-passes 'SP2GFHGA854YEX2CRWHX3NMBV4PR2P69GVH8PYDGH u1)
(map-set mint-passes 'SP322MZH33TRF1KDD3746FMN29JVCEX4086RBSZQR u1)
(map-set mint-passes 'SP1BF4EVVHGA3NP0272SWTFG2HMNNVGEZ849SMJKV u1)
(map-set mint-passes 'SPA2ZFXWKSH8VW0WW4W2G0ZA9EXSJ7CMH9HDEJB7 u1)
(map-set mint-passes 'SP3M3HWWDYAX53ZEEE3DTZ9R4BTM4Q7HKT8YV7TWT u1)
(map-set mint-passes 'SP1D836JJYX8B0DN0PPM6E4GJYFX23EF11MJ809EZ u1)
(map-set mint-passes 'SP1KMAA7TPZ5AZZ4W67X74MJNFKMN576604CWNBQS u1)
(map-set mint-passes 'SP3NNW6ERCEH72ZNMHAS79QEBTTNRMFSP40AV65B8 u1)
(map-set mint-passes 'SP3ZT37W0M4FAQ5ZAMJTRA29X61HCR7MHKHWP1SRY u1)
(map-set mint-passes 'SP2ER6MWHMH2CZN7M8NB3YSGDD4RW63TJCR6RNRDJ u1)
(map-set mint-passes 'SP13Q56ZZ2XEAV0TWH7DE0Y47R0NGZVSVBQQQ0HGV u1)
(map-set mint-passes 'SP1521ME4EHYKK7K62SRP1DVWXJ7T7VFMFAG640AC u1)
(map-set mint-passes 'SP2W1SVB87R7XZ1Z3DS70PG6B40MZ732V9X4EM7CJ u1)
(map-set mint-passes 'SP1R87EXE2QND23KZSCN6Z7BPPVHB5NM6Y0X2XM9P u1)
(map-set mint-passes 'SPJR8KVS6GWE605ADXPJV3C74A9GJ2RAQGC264BB u1)
(map-set mint-passes 'SP18QG8A8943KY9S15M08AMAWWF58W9X1M90BRCSJ u1)
(map-set mint-passes 'SP3G3FGJ5FWYJMZZ839QS05BMXYSEHVM6NHBYFDXM u1)
(map-set mint-passes 'SP70S68PQ3FZ5N8ERJVXQQXWBWNTSCMFZWWFZXNR u1)
(map-set mint-passes 'SP3F2W2J9QPZPV3EWWEA09KWK61V6PTD006B911MG u1)