pub const COSTS_V2_CONTRACT: &'static str = ";; the .costs-2 contract\n\n;; Helper Functions\n\n;; Return a Cost Specification with just a runtime cost\n(define-private (runtime (r uint))\n    {\n        runtime: r,\n        write_length: u0,\n        write_count: u0,\n        read_count: u0,\n        read_length: u0,\n    })\n\n;; Linear cost-assessment function\n(define-private (linear (n uint) (a uint) (b uint))\n    (+ (* a n) b))\n\n;; LogN cost-assessment function\n(define-private (logn (n uint) (a uint) (b uint))\n    (+ (* a (log2 n)) b))\n\n;; NLogN cost-assessment function\n(define-private (nlogn (n uint) (a uint) (b uint))\n    (+ (* a (* n (log2 n))) b))\n\n\n;; Cost Functions\n(define-read-only (cost_analysis_type_annotate (n uint))\n    (runtime (linear n u1 u9)))\n\n(define-read-only (cost_analysis_type_check (n uint))\n    (runtime (linear n u113 u1)))\n\n(define-read-only (cost_analysis_type_lookup (n uint))\n    (runtime (linear n u1 u6)))\n\n(define-read-only (cost_analysis_visit (n uint))\n    (runtime u1))\n\n(define-read-only (cost_analysis_iterable_func (n uint))\n    (runtime (linear n u2 u14)))\n\n(define-read-only (cost_analysis_option_cons (n uint))\n    (runtime u6))\n\n(define-read-only (cost_analysis_option_check (n uint))\n    (runtime u3))\n\n(define-read-only (cost_analysis_bind_name (n uint))\n    (runtime (linear n u2 u176)))\n\n(define-read-only (cost_analysis_list_items_check (n uint))\n    (runtime (linear n u2 u4)))\n\n(define-read-only (cost_analysis_check_tuple_get (n uint))\n    (runtime (logn n u1 u2)))\n\n(define-read-only (cost_analysis_check_tuple_merge (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_check_tuple_cons (n uint))\n    (runtime (nlogn n u3 u5)))\n\n(define-read-only (cost_analysis_tuple_items_check (n uint))\n    (runtime (linear n u1 u59)))\n\n(define-read-only (cost_analysis_check_let (n uint))\n    (runtime (linear n u1 u12)))\n\n(define-read-only (cost_analysis_lookup_function (n uint))\n    (runtime u20))\n\n(define-read-only (cost_analysis_lookup_function_types (n uint))\n    (runtime (linear n u1 u28)))\n\n(define-read-only (cost_analysis_lookup_variable_const (n uint))\n    (runtime u15))\n\n(define-read-only (cost_analysis_lookup_variable_depth (n uint))\n    (runtime (nlogn n u1 u34)))\n\n(define-read-only (cost_ast_parse (n uint))\n    (runtime (linear n u172 u287441)))\n\n(define-read-only (cost_ast_cycle_detection (n uint))\n    (runtime (linear n u141 u72)))\n\n(define-read-only (cost_analysis_storage (n uint))\n    {\n        runtime: (linear n u2 u100),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_analysis_use_trait_entry (n uint))\n    {\n        runtime: (linear n u9 u723),\n        write_length: (linear n u1 u1),\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n\n(define-read-only (cost_analysis_get_function_entry (n uint))\n    {\n        runtime: (linear n u81 u1303),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n\n(define-read-only (cost_analysis_fetch_contract_entry (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_lookup_variable_depth (n uint))\n    (runtime (linear n u2 u14)))\n\n(define-read-only (cost_lookup_variable_size (n uint))\n    (runtime (linear n u2 u1)))\n\n(define-read-only (cost_lookup_function (n uint))\n    (runtime u16))\n\n(define-read-only (cost_bind_name (n uint))\n    (runtime u256))\n\n(define-read-only (cost_inner_type_check_cost (n uint))\n    (runtime (linear n u2 u9)))\n\n(define-read-only (cost_user_function_application (n uint))\n    (runtime (linear n u26 u140)))\n\n(define-read-only (cost_let (n uint))\n    (runtime (linear n u146 u862)))\n\n(define-read-only (cost_if (n uint))\n    (runtime u200))\n\n(define-read-only (cost_asserts (n uint))\n    (runtime u170))\n\n(define-read-only (cost_map (n uint))\n    (runtime (linear n u1210 u3314)))\n\n(define-read-only (cost_filter (n uint))\n    (runtime u460))\n\n(define-read-only (cost_len (n uint))\n    (runtime u486))\n\n(define-read-only (cost_element_at (n uint))\n    (runtime u619))\n\n(define-read-only (cost_index_of (n uint))\n    (runtime (linear n u1 u243)))\n\n(define-read-only (cost_fold (n uint))\n    (runtime u483))\n\n(define-read-only (cost_list_cons (n uint))\n    (runtime (linear n u14 u198)))\n\n(define-read-only (cost_type_parse_step (n uint))\n    (runtime u5))\n\n(define-read-only (cost_tuple_get (n uint))\n    (runtime (nlogn n u4 u1780)))\n\n(define-read-only (cost_tuple_merge (n uint))\n    (runtime (linear n u4 u646)))\n\n(define-read-only (cost_tuple_cons (n uint))\n    (runtime (nlogn n u11 u1101)))\n\n(define-read-only (cost_add (n uint))\n    (runtime (linear n u14 u157)))\n\n(define-read-only (cost_sub (n uint))\n    (runtime (linear n u14 u157)))\n\n(define-read-only (cost_mul (n uint))\n    (runtime (linear n u14 u157)))\n\n(define-read-only (cost_div (n uint))\n    (runtime (linear n u14 u157)))\n\n(define-read-only (cost_geq (n uint))\n    (runtime u170))\n\n(define-read-only (cost_leq (n uint))\n    (runtime u170))\n\n(define-read-only (cost_le (n uint))\n    (runtime u170))\n\n(define-read-only (cost_ge (n uint))\n    (runtime u170))\n\n(define-read-only (cost_int_cast (n uint))\n    (runtime u170))\n\n(define-read-only (cost_mod (n uint))\n    (runtime u170))\n\n(define-read-only (cost_pow (n uint))\n    (runtime u170))\n\n(define-read-only (cost_sqrti (n uint))\n    (runtime u170))\n\n(define-read-only (cost_log2 (n uint))\n    (runtime u170))\n\n(define-read-only (cost_xor (n uint))\n    (runtime u170))\n\n(define-read-only (cost_not (n uint))\n    (runtime u170))\n\n(define-read-only (cost_eq (n uint))\n    (runtime (linear n u7 u172)))\n\n(define-read-only (cost_begin (n uint))\n    (runtime u202))\n\n(define-read-only (cost_hash160 (n uint))\n    (runtime (linear n u1 u201)))\n\n(define-read-only (cost_sha256 (n uint))\n    (runtime (linear n u1 u100)))\n\n(define-read-only (cost_sha512 (n uint))\n    (runtime (linear n u1 u176)))\n\n(define-read-only (cost_sha512t256 (n uint))\n    (runtime (linear n u1 u188)))\n\n(define-read-only (cost_keccak256 (n uint))\n    (runtime (linear n u1 u221)))\n\n(define-read-only (cost_secp256k1recover (n uint))\n    (runtime u14344))\n\n(define-read-only (cost_secp256k1verify (n uint))\n    (runtime u13540))\n\n(define-read-only (cost_print (n uint))\n    (runtime (linear n u3 u1413)))\n\n(define-read-only (cost_some_cons (n uint))\n    (runtime u230))\n\n(define-read-only (cost_ok_cons (n uint))\n    (runtime u230))\n\n(define-read-only (cost_err_cons (n uint))\n    (runtime u230))\n\n(define-read-only (cost_default_to (n uint))\n    (runtime u287))\n\n(define-read-only (cost_unwrap_ret (n uint))\n    (runtime u339))\n\n(define-read-only (cost_unwrap_err_or_ret (n uint))\n    (runtime u339))\n\n(define-read-only (cost_is_okay (n uint))\n    (runtime u287))\n\n(define-read-only (cost_is_none (n uint))\n    (runtime u287))\n\n(define-read-only (cost_is_err (n uint))\n    (runtime u287))\n\n(define-read-only (cost_is_some (n uint))\n    (runtime u287))\n\n(define-read-only (cost_unwrap (n uint))\n    (runtime u287))\n\n(define-read-only (cost_unwrap_err (n uint))\n    (runtime u287))\n\n(define-read-only (cost_try_ret (n uint))\n    (runtime u287))\n\n(define-read-only (cost_match (n uint))\n    (runtime u287))\n\n(define-read-only (cost_or (n uint))\n    (runtime (linear n u3 u149)))\n\n(define-read-only (cost_and (n uint))\n    (runtime (linear n u3 u149)))\n\n(define-read-only (cost_append (n uint))\n    (runtime (linear n u71 u176)))\n\n(define-read-only (cost_concat (n uint))\n    (runtime (linear n u75 u244)))\n\n(define-read-only (cost_as_max_len (n uint))\n    (runtime u475))\n\n(define-read-only (cost_contract_call (n uint))\n    (runtime u153))\n\n(define-read-only (cost_contract_of (n uint))\n    (runtime u13400))\n\n(define-read-only (cost_principal_of (n uint))\n    (runtime u999))\n\n\n(define-read-only (cost_at_block (n uint))\n    {\n        runtime: u210,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_load_contract (n uint))\n    {\n        runtime: (linear n u1 u157),\n        write_length: u0,\n        write_count: u0,\n        ;; set to 3 because of the associated metadata loads\n        read_count: u3,\n        read_length: (linear n u1 u1)\n    })\n\n\n(define-read-only (cost_create_map (n uint))\n    {\n        runtime: (linear n u1 u1631),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u0,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_create_var (n uint))\n    {\n        runtime: (linear n u7 u2152),\n        write_length: (linear n u1 u1),\n        write_count: u2,\n        read_count: u0,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_create_nft (n uint))\n    {\n        runtime: (linear n u1 u1610),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u0,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_create_ft (n uint))\n    {\n        runtime: u1972,\n        write_length: u1,\n        write_count: u2,\n        read_count: u0,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_fetch_entry (n uint))\n    {\n        runtime: (linear n u1 u1539),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n\n(define-read-only (cost_set_entry (n uint))\n    {\n        runtime: (linear n u4 u2204),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u1,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_fetch_var (n uint))\n    {\n        runtime: (linear n u1 u543),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n\n(define-read-only (cost_set_var (n uint))\n    {\n        runtime: (linear n u5 u691),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u1,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_contract_storage (n uint))\n    {\n        runtime: (linear n u13 u7982),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u0,\n        read_length: u0\n    })\n\n\n(define-read-only (cost_block_info (n uint))\n    {\n        runtime: u6321,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_stx_balance (n uint))\n    {\n        runtime: u1385,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_stx_transfer (n uint))\n    {\n        runtime: u1430,\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_ft_mint (n uint))\n    {\n        runtime: u1645,\n        write_length: u1,\n        write_count: u2,\n        read_count: u2,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_ft_transfer (n uint))\n    {\n        runtime: u612,\n        write_length: u1,\n        write_count: u2,\n        read_count: u2,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_ft_balance (n uint))\n    {\n        runtime: u547,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_nft_mint (n uint))\n    {\n        runtime: (linear n u9 u795),\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_nft_transfer (n uint))\n    {\n        runtime: (linear n u9 u795),\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_nft_owner (n uint))\n    {\n        runtime: (linear n u9 u795),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_ft_get_supply (n uint))\n    {\n        runtime: u483,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_ft_burn (n uint))\n    {\n        runtime: u612,\n        write_length: u1,\n        write_count: u2,\n        read_count: u2,\n        read_length: u1\n    })\n\n\n(define-read-only (cost_nft_burn (n uint))\n    {\n        runtime: (linear n u9 u795),\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n\n(define-read-only (poison_microblock (n uint))\n    {\n        runtime: u29568,\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n";