PageSourceSearch

https://assaultforward.us/collections/frontpage/products/conus-flag-pin

html assaultforward.us collected 2026-10-08 09:05:55 UTC 261,811 bytes, 3,846 lines download raw bytes

1<!doctype html>
2<!--[if IE 9]> <html class="ie9 no-js" lang="en"> <![endif]-->
3<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
4<head>
5  
6 <meta name="google-site-verification" content="2H1JvVXr7E4KdbofXvKXOfOWULvQSrcFdifdIV47rKY" />
7
8  
9  
10  <meta charset="utf-8">
11  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12  <meta name="viewport" content="width=device-width,initial-scale=1">
13  <meta name="theme-color" content="#3ca6ed">
14  <link rel="canonical" href="https://assaultforward.us/products/conus-flag-pin"><link rel="shortcut icon" href="//assaultforward.us/cdn/shop/files/favicon-32x32_32x32.png?v=1613738280" type="image/png"><title>CONUS Flag Pin | Shop from Assault Forward</title><meta name="description" content="The Continental U.S., or CONUS, is the 48 connected states. Military assignments are often referred to as either CONUS or OCONUS. For those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount."><!-- /snippets/social-meta-tags.liquid -->
15
16
17
18
19<meta property="og:site_name" content="Assault Forward">
20<meta property="og:url" content="https://assaultforward.us/products/conus-flag-pin">
21<meta property="og:title" content="CONUS Flag Pin">
22<meta property="og:type" content="product">
23<meta property="og:description" content="The Continental U.S., or CONUS, is the 48 connected states. Military assignments are often referred to as either CONUS or OCONUS. For those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount.">
24
25  <meta property="og:price:amount" content="15.99">
26  <meta property="og:price:currency" content="USD">
27
28<meta property="og:image" content="http://assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_1200x1200.jpg?v=1689345199"><meta property="og:image" content="http://assaultforward.us/cdn/shop/products/LOWRES_3J0A1972_1200x1200.jpg?v=1689345193"><meta property="og:image" content="http://assaultforward.us/cdn/shop/products/e695594a-4ef2-4454-9a3e-af0982455be0_1200x1200.png?v=1689345193">
29<meta property="og:image:secure_url" content="https://assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_1200x1200.jpg?v=1689345199"><meta property="og:image:secure_url" content="https://assaultforward.us/cdn/shop/products/LOWRES_3J0A1972_1200x1200.jpg?v=1689345193"><meta property="og:image:secure_url" content="https://assaultforward.us/cdn/shop/products/e695594a-4ef2-4454-9a3e-af0982455be0_1200x1200.png?v=1689345193">
30
31
32  <meta name="twitter:site" content="@AssaultFWD">
33
34<meta name="twitter:card" content="summary_large_image">
35<meta name="twitter:title" content="CONUS Flag Pin">
36<meta name="twitter:description" content="The Continental U.S., or CONUS, is the 48 connected states. Military assignments are often referred to as either CONUS or OCONUS. For those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount.">
37
38
39  <link href="//assaultforward.us/cdn/shop/t/1/assets/theme.scss.css?v=13099404203621791241762785214" rel="stylesheet" type="text/css" media="all" />
40
41  
41<script>
42    var theme = {
43      strings: {
44        addToCart: "Add to cart",
45        soldOut: "Sold out",
46        unavailable: "Unavailable",
47        regularPrice: "Regular price",
48        sale: "Sale",
49        showMore: "Show More",
50        showLess: "Show Less",
51        addressError: "Error looking up that address",
52        addressNoResults: "No results for that address",
53        addressQueryLimit: "You have exceeded the Google API usage limit. Consider upgrading to a \u003ca href=\"https:\/\/developers.google.com\/maps\/premium\/usage-limits\"\u003ePremium Plan\u003c\/a\u003e.",
54        authError: "There was a problem authenticating your Google Maps account.",
55        newWindow: "Opens in a new window.",
56        external: "Opens external website.",
57        newWindowExternal: "Opens external website in a new window."
58      },
59      moneyFormat: "${{amount}}"
60    }
61
62    document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
63  </script>
63
64
65  <!--[if (lte IE 9) ]>
65<script src="//assaultforward.us/cdn/shop/t/1/assets/match-media.min.js?v=22265819453975888031542515226" type="text/javascript"></script>
65<![endif]--><!--[if (gt IE 9)|!(IE)]><!-->
65<script src="//assaultforward.us/cdn/shop/t/1/assets/lazysizes.js?v=68441465964607740661542515226" async="async"></script>
65<!--<![endif]-->
66  <!--[if lte IE 9]>
66<script src="//assaultforward.us/cdn/shop/t/1/assets/lazysizes.min.js?v=732"></script>
66<![endif]-->
67
68  <!--[if (gt IE 9)|!(IE)]><!-->
68<script src="//assaultforward.us/cdn/shop/t/1/assets/vendor.js?v=121857302354663160541542515227" defer="defer"></script>
68<!--<![endif]-->
69  <!--[if lte IE 9]>
69<script src="//assaultforward.us/cdn/shop/t/1/assets/vendor.js?v=121857302354663160541542515227"></script>
69<![endif]-->
70
71  <!--[if (gt IE 9)|!(IE)]><!-->
71<script src="//assaultforward.us/cdn/shop/t/1/assets/theme.js?v=12513799077045517171639149874" defer="defer"></script>
71<!--<![endif]-->
72  <!--[if lte IE 9]>
72<script src="//assaultforward.us/cdn/shop/t/1/assets/theme.js?v=12513799077045517171639149874"></script>
72<![endif]-->
73
74  
74<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
74<meta name="google-site-verification" content="1vIMj1HklMTk-TSxn56WeDMnxRDM2xkYshRPUr-Rwnk">
75<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/2621898852/digital_wallets/dialog">
76<meta id="in-context-paypal-metadata" data-shop-id="2621898852" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
77<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/34645166358682:1?ucp/version=2026-08-25&amp;context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" type="application/json+oembed" href="https://assaultforward.us/products/conus-flag-pin.oembed">
78<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
78
79<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
80<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=2621898852" crossorigin="anonymous"></script>
vendor: 1 bytes, line 80
80
81<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":2621898852,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/2621898852","merchantName":"Assault Forward","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"Assault Forward","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 81
81
82<script id="shopify-features" type="application/json">{"accessToken":"64eaa727759463a87fe232a86bac4cb6","betas":["rich-media-storefront-analytics"],"domain":"assaultforward.us","predictiveSearch":true,"shopId":2621898852,"locale":"en"}</script>
vendor: 1 bytes, line 82
82
83<script>var Shopify = Shopify || {};
84Shopify.shop = "assault-forward.myshopify.com";
85Shopify.locale = "en";
86Shopify.currency = {"active":"USD","rate":"1.0"};
87Shopify.country = "US";
88Shopify.theme = {"name":"Assault Forward 2019","id":34141732964,"schema_name":"Debut","schema_version":"10.0.1","theme_store_id":796,"role":"main"};
89Shopify.theme.handle = "null";
90Shopify.theme.style = {"id":null,"handle":null};
91Shopify.cdnHost = "assaultforward.us/cdn";
92Shopify.routes = Shopify.routes || {};
93Shopify.routes.root = "/";
94Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
95Shopify.SignInWithShop = Shopify.SignInWithShop || {};
96Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
97Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 97
97
98<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 98
98
99<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 99
99
100<script>
101  window.ShopifyPay = window.ShopifyPay || {};
102  window.ShopifyPay.apiHost = "shop.app\/pay";
103  window.ShopifyPay.redirectState = null;
104</script>
vendor: 1 bytes, line 104
104
105<script>
106  window.Shopify = window.Shopify || {};
107  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
108  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
109  window.Shopify.SignInWithShop.eligible = true;
110</script>
vendor: 1 bytes, line 110
110
111<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 111
111
112<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 112
112
113<script type="module">
114  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
115
116  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
117
118</script>
vendor: 1 bytes, line 118
118
119<script>
120  window.Shopify = window.Shopify || {};
121  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
122  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
123</script>
vendor: 1 bytes, line 123
123
124<script id="__st">var __st={"a":2621898852,"offset":-14400,"reqid":"84634c6a-6854-4733-8232-75d4d60a3776-1791450354","pageurl":"assaultforward.us\/collections\/frontpage\/products\/conus-flag-pin","u":"1496f7a6f301","p":"product","rtyp":"product","rid":5321970122906};</script>
vendor: 1 bytes, line 124
124
125<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 125
125
126<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 126
126
127<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//assaultforward.us/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 127
127
128<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//assaultforward.us/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
128<script crossorigin="anonymous" defer="defer" src="//assaultforward.us/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 128
128
129<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 129
129
130<script>
131  window.Shopify = window.Shopify || {};
132  window.Shopify.MCP = window.Shopify.MCP || {};
133  window.Shopify.MCP.enabled = true;
134  window.Shopify.MCP.shop = "assault-forward.myshopify.com";
135  window.Shopify.MCP.mcpEndpoint = "https:\/\/assaultforward.us\/api\/mcp";
136  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
137</script>
vendor: 1 bytes, line 137
137
138<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/assaultforward.us\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
139</script>
vendor: 1 bytes, line 139
139
140<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://assaultforward.us/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
141</script>
vendor: 1 bytes, line 141
141
142<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
143  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
144</script>
vendor: 1 bytes, line 144
144
145<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
146</script>
146
147<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://assaultforward.us/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
148<style id="shopify-accelerated-checkout-cart">
149        #shopify-buyer-consent {
150  margin-top: 1em;
151  display: inline-block;
152  width: 100%;
153}
154
155#shopify-buyer-consent.hidden {
156  display: none;
157}
158
159#shopify-subscription-policy-button {
160  background: none;
161  border: none;
162  padding: 0;
163  text-decoration: underline;
164  font-size: inherit;
165  cursor: pointer;
166}
167
168#shopify-subscription-policy-button::before {
169  box-shadow: none;
170}
171
172      </style>
173
174<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
174
175
176  
176<script>window.BOLD = window.BOLD || {};
177    window.BOLD.common = window.BOLD.common || {};
178    window.BOLD.common.Shopify = window.BOLD.common.Shopify || {};
179
180    window.BOLD.common.Shopify.shop = {
181        domain: 'assaultforward.us',
182        permanent_domain: 'assault-forward.myshopify.com',
183        url: 'https://assaultforward.us',
184        secure_url: 'https://assaultforward.us',
185        money_format: "${{amount}}",
186        currency: "USD"
187    };
188
189    window.BOLD.common.Shopify.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0};
190    window.BOLD.common.template = 'product';window.BOLD.common.Shopify.formatMoney = function(money, format) {
191        function n(t, e) {
192            return "undefined" == typeof t ? e : t
193        }
194        function r(t, e, r, i) {
195            if (e = n(e, 2),
196            r = n(r, ","),
197            i = n(i, "."),
198            isNaN(t) || null == t)
199                return 0;
200            t = (t / 100).toFixed(e);
201            var o = t.split(".")
202              , a = o[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + r)
203              , s = o[1] ? i + o[1] : "";
204            return a + s
205        }
206        "string" == typeof money && (money = money.replace(".", ""));
207        var i = ""
208          , o = /\{\{\s*(\w+)\s*\}\}/
209          , a = format || window.BOLD.common.Shopify.shop.money_format || window.Shopify.money_format || "$ {{ amount }}";
210        switch (a.match(o)[1]) {
211            case "amount":
212                i = r(money, 2);
213                break;
214            case "amount_no_decimals":
215                i = r(money, 0);
216                break;
217            case "amount_with_comma_separator":
218                i = r(money, 2, ".", ",");
219                break;
220            case "amount_no_decimals_with_comma_separator":
221                i = r(money, 0, ".", ",");
222                break;
223            case "amount_with_space_separator":
224                i = r(money, 2, ".", " ");
225                break;
226            case "amount_no_decimals_with_space_separator":
227                i = r(money, 0, ".", " ");
228                break;
229        }
230        return a.replace(o, i);
231    };
232
233    window.BOLD.common.Shopify.saveProduct = function (handle, product) {
234        if (typeof handle === 'string' && typeof window.BOLD.common.Shopify.products[handle] === 'undefined') {
235            if (typeof product === 'number') {
236                window.BOLD.common.Shopify.handles[product] = handle;
237                product = { id: product };
238            }
239            window.BOLD.common.Shopify.products[handle] = product;
240        }
241    };
242
243	window.BOLD.common.Shopify.saveVariant = function (variant_id, variant) {
244		if (typeof variant_id === 'number' && typeof window.BOLD.common.Shopify.variants[variant_id] === 'undefined') {
245			window.BOLD.common.Shopify.variants[variant_id] = variant;
246		}
247	};window.BOLD.common.Shopify.products = window.BOLD.common.Shopify.products || {};
248    window.BOLD.common.Shopify.variants = window.BOLD.common.Shopify.variants || {};
249    window.BOLD.common.Shopify.handles = window.BOLD.common.Shopify.handles || {};window.BOLD.common.Shopify.handle = "conus-flag-pin"
250window.BOLD.common.Shopify.saveProduct("conus-flag-pin", 5321970122906);window.BOLD.common.Shopify.saveVariant(34645166358682, {product_id: 5321970122906, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(34645166391450, {product_id: 5321970122906, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(34645166424218, {product_id: 5321970122906, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717802061978, {product_id: 5321970122906, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("conus-flag-pin", 5321970122906);window.BOLD.common.Shopify.saveVariant(34645166358682, {product_id: 5321970122906, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(34645166391450, {product_id: 5321970122906, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(34645166424218, {product_id: 5321970122906, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717802061978, {product_id: 5321970122906, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("american-flag-lapel-pin-rwb-1-3-or-5-pins", 3598640709732);window.BOLD.common.Shopify.saveVariant(27840044990564, {product_id: 3598640709732, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(43269667029236, {product_id: 3598640709732, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(43269667062004, {product_id: 3598640709732, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717765001370, {product_id: 3598640709732, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("american-flag-lapel-pin-magnetic-backing", 8213755560180);window.BOLD.common.Shopify.saveVariant(44182648717556, {product_id: 8213755560180, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44182648783092, {product_id: 8213755560180, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44182648815860, {product_id: 8213755560180, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44182648848628, {product_id: 8213755560180, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("american-flag-cufflinks", 5621112733850);window.BOLD.common.Shopify.saveVariant(35730189353114, {product_id: 5621112733850, price: 4999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("american-flag-full-set-lapel-pin-tie-clip-cuff-links", 5621157003418);window.BOLD.common.Shopify.saveVariant(35730444484762, {product_id: 5621157003418, price: 7499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("subdued-tactical-american-flag-lapel-pin", 2005974777956);window.BOLD.common.Shopify.saveVariant(18730542727268, {product_id: 2005974777956, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(27359428706404, {product_id: 2005974777956, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(27359428739172, {product_id: 2005974777956, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717721190554, {product_id: 2005974777956, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("assault-forward-american-flag-lapel-pin", 2005926969444);window.BOLD.common.Shopify.saveVariant(18730227990628, {product_id: 2005926969444, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(27347617185892, {product_id: 2005926969444, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(27347617218660, {product_id: 2005926969444, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717679280282, {product_id: 2005926969444, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("american-flag-tieclip", 5621135638682);window.BOLD.common.Shopify.saveVariant(35730323112090, {product_id: 5621135638682, price: 2499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("stealth-mode-blacked-out-american-flag-lapel-pin", 7720502755572);window.BOLD.common.Shopify.saveVariant(42922499932404, {product_id: 7720502755572, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(42922477551860, {product_id: 7720502755572, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(42922477584628, {product_id: 7720502755572, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(42922477617396, {product_id: 7720502755572, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("tactical-ripstop-hat", 3564409847908);window.BOLD.common.Shopify.saveVariant(27659484823652, {product_id: 3564409847908, price: 2499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("texas-flag-pin-state-collection", 8154903740660);window.BOLD.common.Shopify.saveVariant(44021839266036, {product_id: 8154903740660, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44021839331572, {product_id: 8154903740660, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44021839364340, {product_id: 8154903740660, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44021839298804, {product_id: 8154903740660, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("maryland-flag-pin-state-collection", 8073282027764);window.BOLD.common.Shopify.saveVariant(43870468899060, {product_id: 8073282027764, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(43870468931828, {product_id: 8073282027764, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(43870468964596, {product_id: 8073282027764, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(43870468866292, {product_id: 8073282027764, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("donate-a-pin-to-a-transitioning-veteran", 3237115265124);window.BOLD.common.Shopify.saveVariant(26336958644324, {product_id: 3237115265124, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("subdued-american-flag-cuff-links-tie-bar-and-lapel-pin-set-set-discount", 3479934468196);window.BOLD.common.Shopify.saveVariant(27153140220004, {product_id: 3479934468196, price: 7499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("thin-green-line-lapel-pin", 6134411755714);window.BOLD.common.Shopify.saveVariant(37812835549378, {product_id: 6134411755714, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37812835614914, {product_id: 6134411755714, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37812835647682, {product_id: 6134411755714, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37812835582146, {product_id: 6134411755714, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("thin-red-line-1-3-or-5-pins", 4290967240804);window.BOLD.common.Shopify.saveVariant(30907156365412, {product_id: 4290967240804, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(30907156430948, {product_id: 4290967240804, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(30907156496484, {product_id: 4290967240804, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717819297946, {product_id: 4290967240804, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("thin-blue-line-1-3-or-5-pins", 4290961735780);
250window.BOLD.common.Shopify.saveVariant(30907081261156, {product_id: 4290961735780, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(30907081293924, {product_id: 4290961735780, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(30907081326692, {product_id: 4290961735780, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(36717792657562, {product_id: 4290961735780, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("cuff-links", 2005799075940);window.BOLD.common.Shopify.saveVariant(18729326379108, {product_id: 2005799075940, price: 4999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("subdued-tactical-american-flag-tie-bar", 2005861793892);window.BOLD.common.Shopify.saveVariant(18729801547876, {product_id: 2005861793892, price: 2499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("veteran-american-flag-lapel-pin", 8333332840692);window.BOLD.common.Shopify.saveVariant(44511707857140, {product_id: 8333332840692, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44511707889908, {product_id: 8333332840692, price: 4499, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44511707922676, {product_id: 8333332840692, price: 6999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(44511707955444, {product_id: 8333332840692, price: 1999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("assault-forward-usa-made-socks", 6618927399106);window.BOLD.common.Shopify.saveVariant(39604026343618, {product_id: 6618927399106, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(39604026376386, {product_id: 6618927399106, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(39604026409154, {product_id: 6618927399106, price: 1599, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("edc-bottle-opener", 6544954523842);window.BOLD.common.Shopify.saveVariant(39309263798466, {product_id: 6544954523842, price: 499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("american-flag-sticker", 5391724904602);window.BOLD.common.Shopify.saveVariant(37589216133314, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37589216166082, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37589216198850, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37589216297154, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37589216231618, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37589216264386, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(37589216329922, {product_id: 5391724904602, price: 299, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(43597895827700, {product_id: 5391724904602, price: 1499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("assault-forward-logo-magnet", 2006013116516);window.BOLD.common.Shopify.saveVariant(18730813751396, {product_id: 2006013116516, price: 499, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("usa-made-linen-pocket-square", 6939654750402);window.BOLD.common.Shopify.saveVariant(40681663037634, {product_id: 6939654750402, price: 2999, group_id: 'null'});window.BOLD.common.Shopify.saveProduct("usa-made-silk-tie", 6939627913410);window.BOLD.common.Shopify.saveVariant(40681596289218, {product_id: 6939627913410, price: 4999, group_id: 'null'});window.BOLD.common.Shopify.saveVariant(40681596321986, {product_id: 6939627913410, price: 4999, group_id: 'null'});window.BOLD.common.Shopify.metafields = window.BOLD.common.Shopify.metafields || {};window.BOLD.common.Shopify.metafields["bold_rp"] = {};</script>
250
251
252<script src="https://bundles.boldapps.net/js/bundles.js" type="text/javascript"></script>
252
253<link href="//assaultforward.us/cdn/shop/t/1/assets/bold-bundles.css?v=133114224592595970581560967663" rel="stylesheet" type="text/css" media="all" />
254
255<!-- Global site tag (gtag.js) - Google Ads: 758397425 -->
vendor: 64 bytes, lines 255-256
255
256<script async src="https://www.googletagmanager.com/gtag/js?id=
256AW-758397425
vendor: 12 bytes, line 256
256"></script>
257<script>
258  
vendor: 133 bytes, lines 258-261
258window.dataLayer = window.dataLayer || [];
259  function gtag(){dataLayer.push(arguments);}
260  gtag('js', new Date());
261  gtag('config', '
261AW-758397425
vendor: 4 bytes, line 261
261');
262</script>
262
263  
264<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
265<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 2621898852,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 265
265
266<script>
267  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
268</script>
vendor: 1 bytes, line 268
268
269<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
269).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 2621898852,storefrontBaseUrl: "https://assaultforward.us",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://assaultforward.us/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"487588084","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"AW-758397425\\\",\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"AW-758397425\\\/JrhZCPzoy_sCEPHz0OkC\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-758397425\\\/SCPeCPnoy_sCEPHz0OkC\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-758397425\\\/AnciCPvny_sCEPHz0OkC\\\",\\\"MC-M6NVZC5CWQ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-758397425\\\/XlXKCPjny_sCEPHz0OkC\\\",\\\"MC-M6NVZC5CWQ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-758397425\\\/z_XyCPXny_sCEPHz0OkC\\\",\\\"MC-M6NVZC5CWQ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"AW-758397425\\\/svOKCP_oy_sCEPHz0OkC\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-758397425\\\/Kp
269dLCP7ny_sCEPHz0OkC\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"80904436","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Assault Forward","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"assault-forward.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/assaultforward.us"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":15.99,"currencyCode":"USD"},"product":{"title":"CONUS Flag Pin","vendor":"Assault Forward","id":"5321970122906","untranslatedTitle":"CONUS Flag Pin","url":"\/products\/conus-flag-pin","type":"Pins"},"id":"34645166358682","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"},{"price":{"amount":44.99,"currencyCode":"USD"},"product":{"title":"CONUS Flag Pin","vendor":"Assault Forward","id":"5321970122906","untranslatedTitle":"CONUS Flag Pin","url":"\/products\/conus-flag-pin","type":"Pins"},"id":"34645166391450","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"sku":"","title":"3 - Pack","untranslatedTitle":"3 - Pack"},{"price":{"amount":69.99,"currencyCode":"USD"},"product":{"title":"CONUS Flag Pin","vendor":"Assault Forward","id":"5321970122906","untranslatedTitle":"CONUS Flag Pin","url":"\/products\/conus-flag-pin","type":"Pins"},"id":"34645166424218","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"sku":"","title":"5 - Pack","untranslatedTitle":"5 - Pack"},{"price":{"amount":19.99,"currencyCode":"USD"},"product":{"title":"CONUS Flag Pin","vendor":"Assault Forward","id":"5321970122906","untranslatedTitle":"CONUS Flag Pin","url":"\/products\/conus-flag-pin","type":"Pins"},"id":"36717802061978","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"sku":"","title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","untranslatedTitle":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)"}],"products":[{"id":"5321970122906","handle":"conus-flag-pin","isCollective":null,"title":"CONUS Flag Pin","type":"Pins","untranslatedTitle":"CONUS Flag Pin","url":"\/products\/conus-flag-pin","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"34645166358682","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"},{"id":"34645166391450","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"price":{"amount":44.99,"currencyCode":"USD"},"sku":"","title":"3 - Pack","untranslatedTitle":"3 - Pack"},{"id":"34645166424218","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"price":{"amount":69.99,"currencyCode":"USD"},"sku":"","title":"5 - Pack","untranslatedTitle":"5 - Pack"},{"id":"36717802061978","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"price":{"amount":19.99,"currencyCode":"USD"},"sku":"","title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","untranslatedTitle":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)"}]}
269,{"id":"3598640709732","handle":"american-flag-lapel-pin-rwb-1-3-or-5-pins","isCollective":null,"title":"American Flag Lapel Pin","type":"Pins","untranslatedTitle":"American Flag Lapel Pin","url":"\/products\/american-flag-lapel-pin-rwb-1-3-or-5-pins","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"43269667029236","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AFProductswithMadeinUSA_8.13.20.jpg?v=1597372841"},"price":{"amount":44.99,"currencyCode":"USD"},"sku":"","title":"3 Pins","untranslatedTitle":"3 Pins"}]},{"id":"8213755560180","handle":"american-flag-lapel-pin-magnetic-backing","isCollective":null,"title":"American Flag Lapel Pin - Magnetic Backing","type":"Pins","untranslatedTitle":"American Flag Lapel Pin - Magnetic Backing","url":"\/products\/american-flag-lapel-pin-magnetic-backing","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"44182648717556","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/AmericanFlagMagneticBackingLapelPinAF-6.jpg?v=1696969160"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"5621112733850","handle":"american-flag-cufflinks","isCollective":null,"title":"American Flag Cufflinks","type":"Accessories","untranslatedTitle":"American Flag Cufflinks","url":"\/products\/american-flag-cufflinks","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"35730189353114","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoAug13_44331PM.jpg?v=1689344512"},"price":{"amount":49.99,"currencyCode":"USD"},"sku":"850026975000","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"5621157003418","handle":"american-flag-full-set-lapel-pin-tie-clip-cuff-links","isCollective":null,"title":"American Flag Set (Lapel Pin, Cufflinks, Tie Clip)","type":"Accessories","untranslatedTitle":"American Flag Set (Lapel Pin, Cufflinks, Tie Clip)","url":"\/products\/american-flag-full-set-lapel-pin-tie-clip-cuff-links","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"35730444484762","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoAug13_45436PM_b48604f8-2ed5-40c6-b462-47de016696f1.jpg?v=1689344832"},"price":{"amount":74.99,"currencyCode":"USD"},"sku":"","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"2005974777956","handle":"subdued-tactical-american-flag-lapel-pin","isCollective":null,"title":"Subdued American Flag Lapel Pin","type":"Pins","untranslatedTitle":"Subdued American Flag Lapel Pin","url":"\/products\/subdued-tactical-american-flag-lapel-pin","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"18730542727268","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AF_Forward_Facing_Lapel_Pin_with_USA_6.26.19_5db8873c-0ed3-4078-beb7-80286e673439.png?v=1611608051"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"860000272377","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"2005926969444","handle":"assault-forward-american-flag-lapel-pin","isCollective":null,"title":"Assault Forward Reverse Subdued American Flag Lapel Pin","type":"Pins","untranslatedTitle":"Assault Forward Reverse Subdued American Flag Lapel Pin","url":"\/products\/assault-forward-american-flag-lapel-pin","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"27347617185892","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/AFAssaultForwardFlagLapelPinwithUSALogo_3.27.19_391d7726-a2ba-4411-8f2e-e3355e8dba29.jpg?v=1689344333"},"price":{"amount":44.99,"currencyCode":"USD"},"sku":"02","title":"3 Pins","untranslatedTitle":"3 Pins"}]},{"id":"5621135638682","handle":"american-flag-tieclip","isCollective":null,"title":"American Flag Tie-Clip","type":"Accessories","untranslatedTitle":"American Flag Tie-Clip","url":"\/products\/american-flag-tieclip","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"35730323112090","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoAug13_42530PM.jpg?v=1689344556"},"price":{"amount":24.99,"currencyCode":"USD"},"sku":"","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"7720502755572","handle":"stealth-mode-blacked-out-american-flag-lapel-pin","isCollective":null,"title":"Stealth Mode - Blacked Out American Flag Lapel Pin","type":"Accessories","untranslatedTitle":"Stealth Mode - Blacked Out American Flag Lapel Pin","url":"\/products\/stealth-mode-blacked-out-american-flag-lapel-pin","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"42922477617396","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/StealthModeBlackAmericanFlag-2.jpg?v=1677726404"},"price":{"amount":19.99,"currencyCode":"USD"},"sku":"","title":"Combo Pack (Lapel Pin - Sticker - Magnet)","untranslatedTitle":"Combo Pack (Lapel Pin - Sticker - Magnet)"}]},{"id":"3564409847908","handle":"tactical-ripstop-hat","isCollective":null,"title":"USA Made Tactical Ripstop Hat","type":"Soft Goods","untranslatedTitle":"USA Made Tactical Ripstop Hat","url":"\/products\/tactical-ripstop-hat","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"27659484823652","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/IMG_6024.jpg?v=1689345083"},"price":{"amount":24.99,"currencyCode":"USD"},"sku":"860000272353","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"8154903740660","handle":"texas-flag-pin-state-collection","isCollective":null,"title":"Texas Flag Pin - State Collection","type":"Pins","untranslatedTitle":"Texas Flag Pin - State Collection","url":"\/products\/texas-flag-pin-state-collection","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"44021839266036","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/TexasFlagPinAssaultForward.jpg?v=1687199175"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"8073282027764","handle":"maryland-flag-pin-state-collection","isCollective":null,"title":"Maryland Flag Pin  - State Collection","type":"Pins","untranslatedTitle":"Maryland Flag Pin  - State Collection","url":"\/products\/maryland-flag-pin-state-collection","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"43870468899060","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/2023-04-0720.46.35.jpg?v=1680958817"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"3237115265124","handle":"donate-a-pin-to-a-transitioning-veteran","isCollective":null,"title":"Donate a Pin to a Veteran","type":"Pins","untranslatedTitle":"Donate a Pin to a Veteran","url":"\/products\/donate-a-pin-to-a-transitioning-veteran","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"26336958644324","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AF_donate_civilian_suit_5.27.19_USA.jpg?v=1558970702"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"3479934468196","handle":"subdued-american-flag-cuff-links-tie-bar-and-lapel-pin-set-set-discount","
269isCollective":null,"title":"Subdued American Flag Set (Lapel Pin, CuffLinks, Tie Clip)","type":"Accessories","untranslatedTitle":"Subdued American Flag Set (Lapel Pin, CuffLinks, Tie Clip)","url":"\/products\/subdued-american-flag-cuff-links-tie-bar-and-lapel-pin-set-set-discount","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"27153140220004","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/AssaultForwardFullSet_5.14.19_MadeinUSA_b27db423-f263-40e6-a42b-f29a2cb9f031.jpg?v=1689344382"},"price":{"amount":74.99,"currencyCode":"USD"},"sku":"860000272360","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"6134411755714","handle":"thin-green-line-lapel-pin","isCollective":null,"title":"Thin Green Line Lapel Pin","type":"Pins","untranslatedTitle":"Thin Green Line Lapel Pin","url":"\/products\/thin-green-line-lapel-pin","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"37812835549378","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AFProductswithMadeinUSA_8.13.20_cbbb896e-0d12-4bb5-8580-25239f252d72.jpg?v=1608393782"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"4290967240804","handle":"thin-red-line-1-3-or-5-pins","isCollective":null,"title":"Thin Red Line Lapel Pin","type":"Pins","untranslatedTitle":"Thin Red Line Lapel Pin","url":"\/products\/thin-red-line-1-3-or-5-pins","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"30907156365412","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/Photo_Oct_19__8_10_38_AM.jpg?v=1571518179"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"4290961735780","handle":"thin-blue-line-1-3-or-5-pins","isCollective":null,"title":"Thin Blue Line Lapel Pin","type":"Pins","untranslatedTitle":"Thin Blue Line Lapel Pin","url":"\/products\/thin-blue-line-1-3-or-5-pins","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"30907081261156","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/Slide7.jpg?v=1611608092"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"2005799075940","handle":"cuff-links","isCollective":null,"title":"Subdued American Flag Cufflinks","type":"Accessories","untranslatedTitle":"Subdued American Flag Cufflinks","url":"\/products\/cuff-links","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"18729326379108","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AF_cufflinks_5.27.19_with_Made_in_USA.jpg?v=1611608022"},"price":{"amount":49.99,"currencyCode":"USD"},"sku":"860000272384","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"2005861793892","handle":"subdued-tactical-american-flag-tie-bar","isCollective":null,"title":"Subdued American Flag Tie Clip","type":"Accessories","untranslatedTitle":"Subdued American Flag Tie Clip","url":"\/products\/subdued-tactical-american-flag-tie-bar","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"18729801547876","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AF_Forward_Facing_Tie_Clip_with_USA_6.26.19.png?v=1561599388"},"price":{"amount":24.99,"currencyCode":"USD"},"sku":"06","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"8333332840692","handle":"veteran-american-flag-lapel-pin","isCollective":null,"title":"VETERAN American Flag Lapel Pin","type":"Pins","untranslatedTitle":"VETERAN American Flag Lapel Pin","url":"\/products\/veteran-american-flag-lapel-pin","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"44511707857140","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/files\/VeteranAmericanFlagLapelPinAssaultForward-Front.jpg?v=1706461504"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"1 Pin","untranslatedTitle":"1 Pin"}]},{"id":"6618927399106","handle":"assault-forward-usa-made-socks","isCollective":null,"title":"USA Made Super Patriot Socks","type":"Soft Goods","untranslatedTitle":"USA Made Super Patriot Socks","url":"\/products\/assault-forward-usa-made-socks","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"39604026376386","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoMar31_93807PM_1.jpg?v=1617309040"},"price":{"amount":15.99,"currencyCode":"USD"},"sku":"","title":"Red-White-Blue \/ XL","untranslatedTitle":"Red-White-Blue \/ XL"}]},{"id":"6544954523842","handle":"edc-bottle-opener","isCollective":null,"title":"EDC Bottle Opener","type":"Other","untranslatedTitle":"EDC Bottle Opener","url":"\/products\/edc-bottle-opener","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"39309263798466","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/Photo_Feb_28__11_11_52_PM.jpg?v=1617309398"},"price":{"amount":4.99,"currencyCode":"USD"},"sku":"","title":"Default Title","untranslatedTitle":"Default Title"}]}
269,{"id":"5391724904602","handle":"american-flag-sticker","isCollective":null,"title":"Stickers","type":"Other","untranslatedTitle":"Stickers","url":"\/products\/american-flag-sticker","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"37589216133314","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/UnitedStatesFlag.png?v=1669129130"},"price":{"amount":2.99,"currencyCode":"USD"},"sku":"","title":"American Flag","untranslatedTitle":"American Flag"}]},{"id":"2006013116516","handle":"assault-forward-logo-magnet","isCollective":null,"title":"Assault Forward Magnet","type":"Other","untranslatedTitle":"Assault Forward Magnet","url":"\/products\/assault-forward-logo-magnet","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"18730813751396","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/AF_Logo_Magnet_with_USA_6.26.19_4dac9d5c-7282-488a-958c-1fcbc65eae25.png?v=1597552384"},"price":{"amount":4.99,"currencyCode":"USD"},"sku":"09","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"6939654750402","handle":"usa-made-linen-pocket-square","isCollective":null,"title":"USA Made Linen Pocket Square","type":"Accessories","untranslatedTitle":"USA Made Linen Pocket Square","url":"\/products\/usa-made-linen-pocket-square","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"40681663037634","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/IMG_7932.jpg?v=1629715285"},"price":{"amount":29.99,"currencyCode":"USD"},"sku":"","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"6939627913410","handle":"usa-made-silk-tie","isCollective":null,"title":"American Made Silk Tie","type":"Accessories","untranslatedTitle":"American Made Silk Tie","url":"\/products\/usa-made-silk-tie","vendor":"Assault Forward","remoteShopId":null,"variants":[{"id":"40681596289218","image":{"src":"\/\/assaultforward.us\/cdn\/shop\/products\/IMG_7894.jpg?v=1629715623"},"price":{"amount":49.99,"currencyCode":"USD"},"sku":"","title":"Blue","untranslatedTitle":"Blue"}]}],"purchasingCompany":null},},"https://assaultforward.us/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"34141732964","themeStoreId":"796","themePublished":"true","eventMetadataId":"e4cea764-9c02-4dc0-93cf-5b7eca4ba8a0","pageType":"product","resourceId":"5321970122906","shopId":"2621898852","storefrontBaseUrl":"https:\/\/assaultforward.us","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":15.99,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"CONUS Flag Pin\",\"vendor\":\"Assault Forward\",\"id\":\"5321970122906\",\"untranslatedTitle\":\"CONUS Flag Pin\",\"url\":\"\/products\/conus-flag-pin\",\"type\":\"Pins\"},\"id\":\"34645166358682\",\"image\":{\"src\":\"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199\"},\"sku\":\"\",\"title\":\"1 Pin\",\"untranslatedTitle\":\"1 Pin\"}}]]"});})();</script>
269<script>
270  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
271  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
272  window.ShopifyAnalytics.meta.currency = 'USD';
273  var meta = {"product":{"id":5321970122906,"gid":"gid:\/\/shopify\/Product\/5321970122906","vendor":"Assault Forward","type":"Pins","handle":"conus-flag-pin","variants":[{"id":34645166358682,"price":1599,"name":"CONUS Flag Pin - 1 Pin","public_title":"1 Pin","sku":""},{"id":34645166391450,"price":4499,"name":"CONUS Flag Pin - 3 - Pack","public_title":"3 - Pack","sku":""},{"id":34645166424218,"price":6999,"name":"CONUS Flag Pin - 5 - Pack","public_title":"5 - Pack","sku":""},{"id":36717802061978,"price":1999,"name":"CONUS Flag Pin - Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","public_title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","sku":""}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":5321970122906,"requestId":"84634c6a-6854-4733-8232-75d4d60a3776-1791450354"}};
274  for (var attr in meta) {
275    window.ShopifyAnalytics.meta[attr] = meta[attr];
276  }
277</script>
vendor: 1 bytes, line 277
277
278<script class="analytics">
279  (function () {
280    var customDocumentWrite = function(content) {
281      var jquery = null;
282
283      if (window.jQuery) {
284        jquery = window.jQuery;
285      } else if (window.Checkout && window.Checkout.$) {
286        jquery = window.Checkout.$;
287      }
288
289      if (jquery) {
290        jquery('body').append(content);
291      }
292    };
293
294    var hasLoggedConversion = function(token) {
295      if (token) {
296        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
297      }
298      return false;
299    }
300
301    var setCookieIfConversion = function(token) {
302      if (token) {
303        var twoMonthsFromNow = new Date(Date.now());
304        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
305
306        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
307      }
308    }
309
310    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
311    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
312    if (trekkie.integrations) {
313      return;
314    }
315    trekkie.methods = [
316      'identify',
317      'page',
318      'ready',
319      'track',
320      'trackForm',
321      'trackLink'
322    ];
323    trekkie.factory = function(method) {
324      return function() {
325        var args = Array.prototype.slice.call(arguments);
326        args.unshift(method);
327        trekkie.push(args);
328        if (method == 'track' || method == 'page') {
329          var pageUrl;
330          try {
331            pageUrl = window.location.href;
332          } catch (e) {}
333          var pageReferrer;
334          try {
335            pageReferrer = document.referrer;
336          } catch (e) {}
337          try {
338            if (window.__TREKKIE_SHIM_QUEUE == null) {
339              window.__TREKKIE_SHIM_QUEUE = [];
340            }
341            window.__TREKKIE_SHIM_QUEUE.push({
342              from: 'trekkie-stub',
343              method: method,
344              args: args.slice(1),
345              pageContext: {
346                url: pageUrl,
347                referrer: pageReferrer
348              }
349            });
350          } catch (e) {
351            // no-op
352          }
353        }
354        return trekkie;
355      };
356    };
357    for (var i = 0; i < trekkie.methods.length; i++) {
358      var key = trekkie.methods[i];
359      trekkie[key] = trekkie.factory(key);
360    }
361    trekkie.load = function(config) {
362      trekkie.config = config || {};
363      trekkie.config.initialDocumentCookie = document.cookie;
364      var first = document.getElementsByTagName('script')[0];
365var script = document.createElement('script');
366script.type = 'text/javascript';
367script.onerror = function(e) {
368  var scriptFallback = document.createElement('script');
369  scriptFallback.type = 'text/javascript';
370  scriptFallback.onerror = function(error) {
371          var Monorail = {
372      produce: function produce(monorailDomain, schemaId, payload) {
373        var currentMs = new Date().getTime();
374        var event = {
375          schema_id: schemaId,
376          payload: payload,
377          metadata: {
378            event_created_at_ms: currentMs,
379            event_sent_at_ms: currentMs
380          }
381        };
382        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
383      },
384      sendRequest: function sendRequest(endpointUrl, payload) {
385        // Try the sendBeacon API
386        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
387          var blobData = new window.Blob([payload], {
388            type: 'text/plain'
389          });
390
391          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
392            return true;
393          } // sendBeacon was not successful
394
395        } // XHR beacon
396
397        var xhr = new XMLHttpRequest();
398
399        try {
400          xhr.open('POST', endpointUrl);
401          xhr.setRequestHeader('Content-Type', 'text/plain');
402          xhr.send(payload);
403        } catch (e) {
404          console.log(e);
405        }
406
407        return false;
408      },
409      isIos12: function isIos12() {
410        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
411      }
412    };
413    Monorail.produce('monorail-edge.shopifysvc.com',
414      'trekkie_storefront_load_errors/1.1',
415      {shop_id: 2621898852,
416      theme_id: 34141732964,
417      app_name: "storefront",
418      context_url: window.location.href,
419      source_url: "//assaultforward.us/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
420
421  };
422  scriptFallback.async = true;
423  scriptFallback.src = '//assaultforward.us/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
424  first.parentNode.insertBefore(scriptFallback, first);
425};
426script.async = true;
427script.src = '//assaultforward.us/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
428first.parentNode.insertBefore(script, first);
429
430    };
431    trekkie.load(
432      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":2621898852,"isMerchantRequest":null,"themeId":34141732964,"themeCityHash":"6461439313626312543","contentLanguage":"en","currency":"USD","eventMetadataId":"e4cea764-9c02-4dc0-93cf-5b7eca4ba8a0"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
433    );
434
435    var loaded = false;
436    trekkie.ready(function() {
437      if (loaded) return;
438      loaded = true;
439
440      window.ShopifyAnalytics.lib = window.trekkie;
441
442      var originalDocumentWrite = document.write;
443      document.write = customDocumentWrite;
444      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
445      document.write = originalDocumentWrite;
446
447      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
448      var token = match? match[1]: undefined;
449      if (!hasLoggedConversion(token)) {
450        setCookieIfConversion(token);
451        window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":34645166358682,"productId":5321970122906,"productGid":"gid:\/\/shopify\/Product\/5321970122906","name":"CONUS Flag Pin - 1 Pin","price":"15.99","sku":"","brand":"Assault Forward","variant":"1 Pin","category":"Pins","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true});
452      }
453    });
454
455    window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":5321970122906,"requestId":"84634c6a-6854-4733-8232-75d4d60a3776-1791450354","shopifyEmitted":true});
456
457    var eventsListenerScript = document.createElement('script');
458    eventsListenerScript.async = true;
459    eventsListenerScript.src = "//assaultforward.us/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
460    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
461})();</script>
461
462  
462<script>
463  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
464    window.ga = function ga() {
465      (window.ga.q = window.ga.q || []).push(arguments);
466      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
467        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
468      }
469      console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
470    };
471    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
472      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
473    }
474  }
475</script>
vendor: 1 bytes, line 475
475
476<script
477  defer
478  src="https://assaultforward.us/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.0.min.js"
479  data-application="storefront-renderer"
480  data-shop-id="2621898852"
481  data-render-region="gcp-us-central1"
482  data-page-type="product"
483  data-theme-instance-id="34141732964"
484  data-theme-name="Debut"
485  data-theme-version="10.0.1"
486  data-monorail-region="shop_domain"
487  data-resource-timing-sampling-rate="10"
488  data-shs="true"
489  data-shs-beacon="true"
490  data-shs-export-with-fetch="true"
491  data-shs-logs-sample-rate="1"
492  data-shs-beacon-endpoint="https://assaultforward.us/api/collect"
493></script>
493
494<meta name="shopify-y" content="403cc98b-da5e-45fa-a885-ab266f2d23f2" data-expiration="1823007954000"><meta name="shopify-s" content="0f021a09-a798-4742-b755-da84472fdfb6" data-expiration="1791452154000"><meta name="new-cookie-storage-activated" content="t">
495</head>
496
497<body class="template-product">
498
499  <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a>
500
501  <div id="SearchDrawer" class="search-bar drawer drawer--top" role="dialog" aria-modal="true" aria-label="Search">
502    <div class="search-bar__table">
503      <div class="search-bar__table-cell search-bar__form-wrapper">
504        <form class="search search-bar__form" action="/search" method="get" role="search">
505          <input class="search__input search-bar__input" type="search" name="q" value="" placeholder="Search" aria-label="Search">
506          <button class="search-bar__submit search__submit btn--link" type="submit">
507            <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg>
508            <span class="icon__fallback-text">Submit</span>
509          </button>
510        </form>
511      </div>
512      <div class="search-bar__table-cell text-right">
513        <button type="button" class="btn--link search-bar__close js-drawer-close">
514          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 37 40"><path d="M21.3 23l11-11c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0l-11 11-11-11c-.8-.8-2-.8-2.8 0-.8.8-.8 2 0 2.8l11 11-11 11c-.8.8-.8 2 0 2.8.4.4.9.6 1.4.6s1-.2 1.4-.6l11-11 11 11c.4.4.9.6 1.4.6s1-.2 1.4-.6c.8-.8.8-2 0-2.8l-11-11z"/></svg>
515          <span class="icon__fallback-text">Close search</span>
516        </button>
517      </div>
518    </div>
519  </div>
520
521  <div id="shopify-section-header" class="shopify-section">
522  <style>
523    
524      .site-header__logo-image {
525        max-width: 100px;
526      }
527    
528
529    
530      .site-header__logo-image {
531        margin: 0;
532      }
533    
534  </style>
535
536
537<div data-section-id="header" data-section-type="header-section">
538  
539    
540  
541
542  <header class="site-header border-bottom logo--left" role="banner">
543    <div class="grid grid--no-gutters grid--table site-header__mobile-nav">
544      
545
546      <div class="grid__item medium-up--one-quarter logo-align--left">
547        
548        
549          <div class="h2 site-header__logo">
550        
551          
552<a href="/" class="site-header__logo-image">
553              
554              <img class="lazyload js"
555                   src="//assaultforward.us/cdn/shop/files/AF_logo_Assault_Forward_round_circle_300x300.jpg?v=1613730818"
556                   data-src="//assaultforward.us/cdn/shop/files/AF_logo_Assault_Forward_round_circle_{width}x.jpg?v=1613730818"
557                   data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]"
558                   data-aspectratio="1.0018975332068312"
559                   data-sizes="auto"
560                   alt="Assault Forward"
561                   style="max-width: 100px">
562              <noscript>
563                
564                <img src="//assaultforward.us/cdn/shop/files/AF_logo_Assault_Forward_round_circle_100x.jpg?v=1613730818"
565                     srcset="//assaultforward.us/cdn/shop/files/AF_logo_Assault_Forward_round_circle_100x.jpg?v=1613730818 1x, //assaultforward.us/cdn/shop/files/[email protected]?v=1613730818 2x"
566                     alt="Assault Forward"
567                     style="max-width: 100px;">
568              </noscript>
569            </a>
570          
571        
572          </div>
573        
574      </div>
575
576      
577        <nav class="grid__item medium-up--one-half small--hide" id="AccessibleNav" role="navigation">
578          <ul class="site-nav list--inline " id="SiteNav">
579  
580
581
582
583    
584      <li>
585        <a href="/" class="site-nav__link site-nav__link--main">
586          <span class="site-nav__label">Home</span>
587        </a>
588      </li>
589    
590  
591
592
593
594    
595      <li>
596        <a href="/collections/all" class="site-nav__link site-nav__link--main">
597          <span class="site-nav__label">Collection</span>
598        </a>
599      </li>
600    
601  
602
603
604
605    
606      <li>
607        <a href="/pages/bulk-custom-orders" class="site-nav__link site-nav__link--main">
608          <span class="site-nav__label">Bulk & Custom Orders</span>
609        </a>
610      </li>
611    
612  
613
614
615
616    
617      <li>
618        <a href="/pages/give-back-mission" class="site-nav__link site-nav__link--main">
619          <span class="site-nav__label">Give-Back Mission</span>
620        </a>
621      </li>
622    
623  
624
625
626
627    
628      <li>
629        <a href="/pages/faqs" class="site-nav__link site-nav__link--main">
630          <span class="site-nav__label">F.A.Q.'s</span>
631        </a>
632      </li>
633    
634  
635
636
637
638    
639      <li>
640        <a href="/pages/about-us" class="site-nav__link site-nav__link--main">
641          <span class="site-nav__label">About Us</span>
642        </a>
643      </li>
644    
645  
646</ul>
647
648        </nav>
649      
650
651      <div class="grid__item medium-up--one-quarter text-right site-header__icons site-header__icons--plus">
652        <div class="site-header__icons-wrapper">
653          <div class="site-header__search site-header__icon">
654            <form action="/search" method="get" class="search-header search" role="search">
655  <input class="search-header__input search__input"
656    type="search"
657    name="q"
658    placeholder="Search"
659    aria-label="Search">
660  <button class="search-header__submit search__submit btn--link site-header__icon" type="submit">
661    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg>
662    <span class="icon__fallback-text">Submit</span>
663  </button>
664</form>
665
666          </div>
667
668          <button type="button" class="btn--link site-header__icon site-header__search-toggle js-drawer-open-top">
669            <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg>
670            <span class="icon__fallback-text">Search</span>
671          </button>
672
673          
674            
675              <a href="/account/login" class="site-header__icon site-header__account">
676                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-login" viewBox="0 0 28.33 37.68"><path d="M14.17 14.9a7.45 7.45 0 1 0-7.5-7.45 7.46 7.46 0 0 0 7.5 7.45zm0-10.91a3.45 3.45 0 1 1-3.5 3.46A3.46 3.46 0 0 1 14.17 4zM14.17 16.47A14.18 14.18 0 0 0 0 30.68c0 1.41.66 4 5.11 5.66a27.17 27.17 0 0 0 9.06 1.34c6.54 0 14.17-1.84 14.17-7a14.18 14.18 0 0 0-14.17-14.21zm0 17.21c-6.3 0-10.17-1.77-10.17-3a10.17 10.17 0 1 1 20.33 0c.01 1.23-3.86 3-10.16 3z"/></svg>
677                <span class="icon__fallback-text">Log in</span>
678              </a>
679            
680          
681
682          <a href="/cart" class="site-header__icon site-header__cart">
683            <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 37 40"><path d="M36.5 34.8L33.3 8h-5.9C26.7 3.9 23 .8 18.5.8S10.3 3.9 9.6 8H3.7L.5 34.8c-.2 1.5.4 2.4.9 3 .5.5 1.4 1.2 3.1 1.2h28c1.3 0 2.4-.4 3.1-1.3.7-.7 1-1.8.9-2.9zm-18-30c2.2 0 4.1 1.4 4.7 3.2h-9.5c.7-1.9 2.6-3.2 4.8-3.2zM4.5 35l2.8-23h2.2v3c0 1.1.9 2 2 2s2-.9 2-2v-3h10v3c0 1.1.9 2 2 2s2-.9 2-2v-3h2.2l2.8 23h-28z"/></svg>
684            <span class="icon__fallback-text">
684Cart</span>
685            
686          </a>
687
688          
689            <form method="post" action="/cart/update" id="currency_form" accept-charset="UTF-8" class="currency-selector small--hide" enctype="multipart/form-data"><input type="hidden" name="form_type" value="currency" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="return_to" value="/collections/frontpage/products/conus-flag-pin" />
690              <label for="CurrencySelector" class="visually-hidden">Currency</label>
691              <div class="currency-selector__input-wrapper select-group">
692                <select name="currency" id="CurrencySelector" class="currency-selector__dropdown" aria-describedby="a11y-refresh-page-message" data-currency-selector>
693                  
694                    <option value="CAD">CAD</option>
695                  
696                    <option value="EUR">EUR</option>
697                  
698                    <option value="GBP">GBP</option>
699                  
700                    <option value="JPY">JPY</option>
701                  
702                    <option value="USD" selected="true">USD</option>
703                  
704                </select>
705                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 498.98 284.49"><defs><style>.cls-1{fill:#231f20}</style></defs><path class="cls-1" d="M80.93 271.76A35 35 0 0 1 140.68 247l189.74 189.75L520.16 247a35 35 0 1 1 49.5 49.5L355.17 511a35 35 0 0 1-49.5 0L91.18 296.5a34.89 34.89 0 0 1-10.25-24.74z" transform="translate(-80.93 -236.76)"/></svg>
706              </div>
707            </form>
708          
709
710          
711            <button type="button" class="btn--link site-header__icon site-header__menu js-mobile-nav-toggle mobile-nav--open" aria-controls="MobileNav"  aria-expanded="false" aria-label="Menu">
712              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" viewBox="0 0 37 40"><path d="M33.5 25h-30c-1.1 0-2-.9-2-2s.9-2 2-2h30c1.1 0 2 .9 2 2s-.9 2-2 2zm0-11.5h-30c-1.1 0-2-.9-2-2s.9-2 2-2h30c1.1 0 2 .9 2 2s-.9 2-2 2zm0 23h-30c-1.1 0-2-.9-2-2s.9-2 2-2h30c1.1 0 2 .9 2 2s-.9 2-2 2z"/></svg>
713              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 37 40"><path d="M21.3 23l11-11c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0l-11 11-11-11c-.8-.8-2-.8-2.8 0-.8.8-.8 2 0 2.8l11 11-11 11c-.8.8-.8 2 0 2.8.4.4.9.6 1.4.6s1-.2 1.4-.6l11-11 11 11c.4.4.9.6 1.4.6s1-.2 1.4-.6c.8-.8.8-2 0-2.8l-11-11z"/></svg>
714            </button>
715          
716        </div>
717
718      </div>
719    </div>
720
721    <nav class="mobile-nav-wrapper medium-up--hide" role="navigation">
722      <ul id="MobileNav" class="mobile-nav">
723        
724<li class="mobile-nav__item border-bottom">
725            
726              <a href="/" class="mobile-nav__link">
727                <span class="mobile-nav__label">Home</span>
728              </a>
729            
730          </li>
731        
732<li class="mobile-nav__item border-bottom">
733            
734              <a href="/collections/all" class="mobile-nav__link">
735                <span class="mobile-nav__label">Collection</span>
736              </a>
737            
738          </li>
739        
740<li class="mobile-nav__item border-bottom">
741            
742              <a href="/pages/bulk-custom-orders" class="mobile-nav__link">
743                <span class="mobile-nav__label">Bulk & Custom Orders</span>
744              </a>
745            
746          </li>
747        
748<li class="mobile-nav__item border-bottom">
749            
750              <a href="/pages/give-back-mission" class="mobile-nav__link">
751                <span class="mobile-nav__label">Give-Back Mission</span>
752              </a>
753            
754          </li>
755        
756<li class="mobile-nav__item border-bottom">
757            
758              <a href="/pages/faqs" class="mobile-nav__link">
759                <span class="mobile-nav__label">F.A.Q.'s</span>
760              </a>
761            
762          </li>
763        
764<li class="mobile-nav__item">
765            
766              <a href="/pages/about-us" class="mobile-nav__link">
767                <span class="mobile-nav__label">About Us</span>
768              </a>
769            
770          </li>
771        
772        
773          <li class="mobile-nav__item border-top">
774            <form method="post" action="/cart/update" id="currency_form" accept-charset="UTF-8" class="currency-selector" enctype="multipart/form-data"><input type="hidden" name="form_type" value="currency" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="return_to" value="/collections/frontpage/products/conus-flag-pin" />
775              <label for="CurrencySelectorMobile" class="currency-selector__label">Currency</label>
776              <div class="currency-selector__input-wrapper select-group">
777                <select name="currency" id="CurrencySelectorMobile" class="currency-selector__dropdown" aria-describedby="a11y-refresh-page-message" data-currency-selector>
778                  
779                    <option value="CAD">CAD</option>
780                  
781                    <option value="EUR">EUR</option>
782                  
783                    <option value="GBP">GBP</option>
784                  
785                    <option value="JPY">JPY</option>
786                  
787                    <option value="USD" selected="true">USD</option>
788                  
789                </select>
790                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 498.98 284.49"><defs><style>.cls-1{fill:#231f20}</style></defs><path class="cls-1" d="M80.93 271.76A35 35 0 0 1 140.68 247l189.74 189.75L520.16 247a35 35 0 1 1 49.5 49.5L355.17 511a35 35 0 0 1-49.5 0L91.18 296.5a34.89 34.89 0 0 1-10.25-24.74z" transform="translate(-80.93 -236.76)"/></svg>
791              </div>
792            </form>
793          </li>
794        
795      </ul>
796    </nav>
797  </header>
798
799  
800</div>
801
802
803
804<script type="application/ld+json">
805{
806  "@context": "http://schema.org",
807  "@type": "Organization",
808  "name": "Assault Forward",
809  
810    
811    "logo": "https://assaultforward.us/cdn/shop/files/AF_logo_Assault_Forward_round_circle_528x.jpg?v=1613730818",
812  
813  "sameAs": [
814    "https://twitter.com/AssaultFWD",
815    "https://facebook.com/AssaultFWD",
816    "",
817    "http://instagram.com/AssaultFWD",
818    "",
819    "",
820    "",
821    ""
822  ],
823  "url": "https://assaultforward.us"
824}
825</script>
825
826
827
828
829
830</div>
831
832  <div class="page-container" id="PageContainer">
833
834    <main class="main-content js-focus-hidden" id="MainContent" role="main" tabindex="-1">
835      
836
837<div id="shopify-section-product-template" class="shopify-section"><div class="product-template__container page-width"
838  id="ProductSection-product-template"
839  data-section-id="product-template"
840  data-section-type="product"
841  data-enable-history-state="true"
842>
843  
844
845
846  <div class="grid product-single">
847    <div class="grid__item product-single__photos medium-up--one-third">
848        
849        
850        
851        
852<style>
853  
854  
855  @media screen and (min-width: 750px) { 
856    #FeaturedImage-product-template-39781940855028 {
857      max-width: 345px;
858      max-height: 345.0px;
859    }
860    #FeaturedImageZoom-product-template-39781940855028-wrapper {
861      max-width: 345px;
862      max-height: 345.0px;
863    }
864   } 
865  
866  
867    
868    @media screen and (max-width: 749px) {
869      #FeaturedImage-product-template-39781940855028 {
870        max-width: 750px;
871        max-height: 750px;
872      }
873      #FeaturedImageZoom-product-template-39781940855028-wrapper {
874        max-width: 750px;
875      }
876    }
877  
878</style>
879
880
881        <div id="FeaturedImageZoom-product-template-39781940855028-wrapper" class="product-single__photo-wrapper js">
882          <div
883          id="FeaturedImageZoom-product-template-39781940855028"
884          style="padding-top:100.0%;"
885          class="product-single__photo js-zoom-enabled product-single__photo--has-thumbnails"
886          data-image-id="39781940855028"
887           data-zoom="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_1024x1024@2x.jpg?v=1689345199">
888            <img id="FeaturedImage-product-template-39781940855028"
889                 class="feature-row__image product-featured-img lazyload"
890                 src="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_300x300.jpg?v=1689345199"
891                 data-src="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_{width}x.jpg?v=1689345199"
892                 data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]"
893                 data-aspectratio="1.0"
894                 data-sizes="auto"
895                 tabindex="-1"
896                 alt="CONUS Flag Pin">
897          </div>
898        </div>
899      
900        
901        
902        
903        
904<style>
905  
906  
907  @media screen and (min-width: 750px) { 
908    #FeaturedImage-product-template-23345447502018 {
909      max-width: 345px;
910      max-height: 230.11230468749997px;
911    }
912    #FeaturedImageZoom-product-template-23345447502018-wrapper {
913      max-width: 345px;
914      max-height: 230.11230468749997px;
915    }
916   } 
917  
918  
919    
920    @media screen and (max-width: 749px) {
921      #FeaturedImage-product-template-23345447502018 {
922        max-width: 750px;
923        max-height: 750px;
924      }
925      #FeaturedImageZoom-product-template-23345447502018-wrapper {
926        max-width: 750px;
927      }
928    }
929  
930</style>
931
932
933        <div id="FeaturedImageZoom-product-template-23345447502018-wrapper" class="product-single__photo-wrapper js">
934          <div
935          id="FeaturedImageZoom-product-template-23345447502018"
936          style="padding-top:66.69921875%;"
937          class="product-single__photo js-zoom-enabled product-single__photo--has-thumbnails hide"
938          data-image-id="23345447502018"
939           data-zoom="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193">
940            <img id="FeaturedImage-product-template-23345447502018"
941                 class="feature-row__image product-featured-img lazyload lazypreload"
942                 src="//assaultforward.us/cdn/shop/products/LOWRES_3J0A1972_300x300.jpg?v=1689345193"
943                 data-src="//assaultforward.us/cdn/shop/products/LOWRES_3J0A1972_{width}x.jpg?v=1689345193"
944                 data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]"
945                 data-aspectratio="1.499267935578331"
946                 data-sizes="auto"
947                 tabindex="-1"
948                 alt="CONUS Flag Pin">
949          </div>
950        </div>
951      
952        
953        
954        
955        
956<style>
957  
958  
959  @media screen and (min-width: 750px) { 
960    #FeaturedImage-product-template-17373379297434 {
961      max-width: 345px;
962      max-height: 345.0px;
963    }
964    #FeaturedImageZoom-product-template-17373379297434-wrapper {
965      max-width: 345px;
966      max-height: 345.0px;
967    }
968   } 
969  
970  
971    
972    @media screen and (max-width: 749px) {
973      #FeaturedImage-product-template-17373379297434 {
974        max-width: 750px;
975        max-height: 750px;
976      }
977      #FeaturedImageZoom-product-template-17373379297434-wrapper {
978        max-width: 750px;
979      }
980    }
981  
982</style>
983
984
985        <div id="FeaturedImageZoom-product-template-17373379297434-wrapper" class="product-single__photo-wrapper js">
986          <div
987          id="FeaturedImageZoom-product-template-17373379297434"
988          style="padding-top:100.0%;"
989          class="product-single__photo js-zoom-enabled product-single__photo--has-thumbnails hide"
990          data-image-id="17373379297434"
991           data-zoom="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193">
992            <img id="FeaturedImage-product-template-17373379297434"
993                 class="feature-row__image product-featured-img lazyload lazypreload"
994                 src="//assaultforward.us/cdn/shop/products/e695594a-4ef2-4454-9a3e-af0982455be0_300x300.png?v=1689345193"
995                 data-src="//assaultforward.us/cdn/shop/products/e695594a-4ef2-4454-9a3e-af0982455be0_{width}x.png?v=1689345193"
996                 data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]"
997                 data-aspectratio="1.0"
998                 data-sizes="auto"
999                 tabindex="-1"
1000                 alt="CONUS Flag Pin">
1001          </div>
1002        </div>
1003      
1004        
1005        
1006        
1007        
1008<style>
1009  
1010  
1011  @media screen and (min-width: 750px) { 
1012    #FeaturedImage-product-template-17385881305242 {
1013      max-width: 345px;
1014      max-height: 345.0px;
1015    }
1016    #FeaturedImageZoom-product-template-17385881305242-wrapper {
1017      max-width: 345px;
1018      max-height: 345.0px;
1019    }
1020   } 
1021  
1022  
1023    
1024    @media screen and (max-width: 749px) {
1025      #FeaturedImage-product-template-17385881305242 {
1026        max-width: 750px;
1027        max-height: 750px;
1028      }
1029      #FeaturedImageZoom-product-template-17385881305242-wrapper {
1030        max-width: 750px;
1031      }
1032    }
1033  
1034</style>
1035
1036
1037        <div id="FeaturedImageZoom-product-template-17385881305242-wrapper" class="product-single__photo-wrapper js">
1038          <div
1039          id="FeaturedImageZoom-product-template-17385881305242"
1040          style="padding-top:100.0%;"
1041          class="product-single__photo js-zoom-enabled product-single__photo--has-thumbnails hide"
1042          data-image-id="17385881305242"
1043           data-zoom="//assaultforward.us/cdn/shop/products/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef_1024x1024@2x.jpg?v=1689345193">
1044            <img id="FeaturedImage-product-template-17385881305242"
1045                 class="feature-row__image product-featured-img lazyload lazypreload"
1046                 src="//assaultforward.us/cdn/shop/products/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef_300x300.jpg?v=1689345193"
1047                 data-src="//assaultforward.us/cdn/shop/products/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef_{width}x.jpg?v=1689345193"
1048                 data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]"
1049                 data-aspectratio="1.0"
1050                 data-sizes="auto"
1051                 tabindex="-1"
1052                 alt="CONUS Flag Pin">
1053          </div>
1054        </div>
1055      
1056
1057      <noscript>
1058        
1059        <img src="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_345x@2x.jpg?v=1689345199" alt="CONUS Flag Pin" id="FeaturedImage-product-template" class="product-featured-img" style="max-width: 345px;">
1060      </noscript>
1061
1062      
1063        
1064
1065        <div class="thumbnails-wrapper thumbnails-slider--active">
1066          
1067            <button type="button" class="btn btn--link medium-up--hide thumbnails-slider__btn thumbnails-slider__prev thumbnails-slider__prev--product-template">
1068              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-left" viewBox="0 0 7 11"><path d="M5.5.037a1.5 1.5 0 0 1 1.06 2.56l-2.94 2.94 2.94 2.94a1.5 1.5 0 0 1-2.12 2.12l-4-4a1.5 1.5 0 0 1 0-2.12l4-4A1.5 1.5 0 0 1 5.5.037z" fill="#fff" class="layer"/></svg>
1069              <span class="icon__fallback-text">Previous slide</span>
1070            </button>
1071          
1072          <ul class="grid grid--uniform product-single__thumbnails product-single__thumbnails-product-template">
1073            
1074              <li class="grid__item medium-up--one-third product-single__thumbnails-item js">
1075                <a href="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_1024x1024@2x.jpg?v=1689345199"
1076                   class="text-link product-single__thumbnail product-single__thumbnail--product-template"
1077                   data-thumbnail-id="39781940855028"
1078                   data-zoom="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_1024x1024@2x.jpg?v=1689345199">
1079                     <img class="product-single__thumbnail-image" src="//assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_110x110@2x.jpg?v=1689345199" alt="Load image into Gallery viewer, CONUS Flag Pin">
1080                </a>
1081              </li>
1082            
1083              <li class="grid__item medium-up--one-third product-single__thumbnails-item js">
1084                <a href="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193"
1085                   class="text-link product-single__thumbnail product-single__thumbnail--product-template"
1086                   data-thumbnail-id="23345447502018"
1087                   data-zoom="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193">
1088                     <img class="product-single__thumbnail-image" src="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193" alt="Load image into Gallery viewer, CONUS Flag Pin">
1089                </a>
1090              </li>
1091            
1092              <li class="grid__item medium-up--one-third product-single__thumbnails-item js">
1093                <a href="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193"
1094                   class="text-link product-single__thumbnail product-single__thumbnail--product-template"
1095                   data-thumbnail-id="17373379297434"
1096                   data-zoom="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193">
1097                     <img class="product-single__thumbnail-image" src="//assaultforward.us/cdn/shop/products/[email protected]?v=1689345193" alt="Load image into Gallery viewer, CONUS Flag Pin">
1098                </a>
1099              </li>
1100            
1101              <li class="grid__item medium-up--one-third product-single__thumbnails-item js">
1102                <a href="//assaultforward.us/cdn/shop/products/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef_1024x1024@2x.jpg?v=1689345193"
1103                   class="text-link product-single__thumbnail product-single__thumbnail--product-template"
1104                   data-thumbnail-id="17385881305242"
1105                   data-zoom="//assaultforward.us/cdn/shop/products/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef_1024x1024@2x.jpg?v=1689345193">
1106                     <img class="product-single__thumbnail-image" src="//assaultforward.us/cdn/shop/products/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef_110x110@2x.jpg?v=1689345193" alt="Load image into Gallery viewer, CONUS Flag Pin">
1107                </a>
1108              </li>
1109            
1110          </ul>
1111          
1112            <button type="button" class="btn btn--link medium-up--hide thumbnails-slider__btn thumbnails-slider__next thumbnails-slider__next--product-template">
1113              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 7 11"><path d="M1.5 11A1.5 1.5 0 0 1 .44 8.44L3.38 5.5.44 2.56A1.5 1.5 0 0 1 2.56.44l4 4a1.5 1.5 0 0 1 0 2.12l-4 4A1.5 1.5 0 0 1 1.5 11z" fill="#fff"/></svg>
1114              <span class="icon__fallback-text">Next slide</span>
1115            </button>
1116          
1117        </div>
1118      
1119    </div>
1120
1121    <div class="grid__item medium-up--two-thirds">
1122      <div class="product-single__meta">
1123
1124        <h1 class="product-single__title">CONUS Flag Pin</h1>
1125
1126          <div class="product__price">
1127            <!-- snippet/product-price.liquid -->
1128
1129<dl class="price" data-price>
1130
1131  
1132
1133  <div class="price__regular">
1134    <dt>
1135      <span class="visually-hidden visually-hidden--inline">Regular price</span>
1136    </dt>
1137    <dd>
1138      <span class="price-item price-item--regular" data-regular-price>
1139        
1140          
1141            $15.99
1142          
1143        
1144      </span>
1145    </dd>
1146  </div>
1147  <div class="price__sale">
1148    <dt>
1149      <span class="visually-hidden visually-hidden--inline">Sale price</span>
1150    </dt>
1151    <dd>
1152      <span class="price-item price-item--sale" data-sale-price>
1153        $15.99
1154      </span>
1155      <span class="price-item__label" aria-hidden="true">Sale</span>
1156    </dd>
1157  </div>
1158</dl>
1159
1160          </div><div class="product__policies rte"><a href="/policies/shipping-policy">Shipping</a> calculated at checkout.
1161</div>
1162            <div id="error-quantity-product-template" class="form-message form-message--error product__quantity-error hide" tabindex="-1">
1163              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error" viewBox="0 0 14 14"><path d="M7 14A7 7 0 1 0 7 0a7 7 0 0 0 0 14zm-1.05-3.85A1.05 1.05 0 1 1 7 11.2a1.008 1.008 0 0 1-1.05-1.05zm.381-1.981l-.266-5.25h1.841l-.255 5.25h-1.32z"/></svg> Quantity must be 1 or more
1164            </div>
1165          
1166
1167          
1168
1169          <form method="post" action="/cart/add" id="product_form_5321970122906" accept-charset="UTF-8" class="product-form product-form-product-template
1170" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" />
1171            
1172              
1173                <div class="selector-wrapper js product-form__item">
1174                  <label for="SingleOptionSelector-0">
1175                    Size
1176                  </label>
1177                  <select class="single-option-selector single-option-selector-product-template product-form__input" id="SingleOptionSelector-0" data-index="option1">
1178                    
1179                      <option value="1 Pin" selected="selected">1 Pin</option>
1180                    
1181                      <option value="3 - Pack">3 - Pack</option>
1182                    
1183                      <option value="5 - Pack">5 - Pack</option>
1184                    
1185                      <option value="Combo Pack (Lapel Pin, Magnet, &amp; Sticker)">Combo Pack (Lapel Pin, Magnet, & Sticker)</option>
1186                    
1187                  </select>
1188                </div>
1189              
1190            
1191
1192            <select name="id" id="ProductSelect-product-template" class="product-form__variants no-js">
1193              
1194                
1195                  <option  selected="selected"  value="34645166358682">
1196                    1 Pin
1197                  </option>
1198                
1199              
1200                
1201                  <option  value="34645166391450">
1202                    3 - Pack
1203                  </option>
1204                
1205              
1206                
1207                  <option  value="34645166424218">
1208                    5 - Pack
1209                  </option>
1210                
1211              
1212                
1213                  <option  value="36717802061978">
1214                    Combo Pack (Lapel Pin, Magnet, & Sticker)
1215                  </option>
1216                
1217              
1218            </select>
1219
1220            
1221              <div class="product-form__item product-form__item--quantity">
1222                <label for="Quantity-product-template">Quantity</label>
1223                <input type="number" id="Quantity-product-template" name="quantity" value="1" min="1" class="product-form__input" pattern="[0-9]*">
1224              </div>
1225            
1226            <div class="product-form__item product-form__item--submit">
1227              <button type="submit" name="add"  id="AddToCart-product-template"  class="btn product-form__cart-submit">
1228                <span id="AddToCartText-product-template">
1229                  
1230                    Add to cart
1231                  
1232                </span>
1233              </button>
1234              
1235            </div>
1236          <input type="hidden" name="product-id" value="5321970122906" /><input type="hidden" name="section-id" value="product-template" /></form>
1237        </div><p class="visually-hidden" data-product-status
1238          aria-live="polite"
1239          role="status"
1240        ></p>
1241
1242        <div class="product-single__description rte">
1243          <p><span>The Continental U.S., or </span><b>CONUS</b><span>, </span>is<span> the 48 connected states.</span><span> Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is <em>Outside</em> the Continental U.S.)</span></p>
1244<p><span>These patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. </span></p>
1245<ul>
1246<li>Each pin comes individually packaged for presentation and makes a unique and meaningful gift.<br>
1247</li>
1248</ul>
1249<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="43hs7-0-0">
1250<span data-offset-key="43hs7-0-0">For those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. </span>Or you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. </div>
1251<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="43hs7-0-0"></div>
1252<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="43hs7-0-0"><strong>MADE IN USA</strong></div>
1253        </div>
1254
1255        
1256          <!-- /snippets/social-sharing.liquid -->
1257<ul class="social-sharing">
1258
1259  
1260    <li>
1261      <a target="_blank" href="//www.facebook.com/sharer.php?u=https://assaultforward.us/products/conus-flag-pin" class="btn btn--small btn--share share-facebook">
1262        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 20 20"><path fill="#444" d="M18.05.811q.439 0 .744.305t.305.744v16.637q0 .439-.305.744t-.744.305h-4.732v-7.221h2.415l.342-2.854h-2.757v-1.83q0-.659.293-1t1.073-.342h1.488V3.762q-.976-.098-2.171-.098-1.634 0-2.635.964t-1 2.72V9.47H7.951v2.854h2.415v7.221H1.413q-.439 0-.744-.305t-.305-.744V1.859q0-.439.305-.744T1.413.81H18.05z"/></svg>
1263        <span class="share-title" aria-hidden="true">Share</span>
1264        <span class="visually-hidden">Share on Facebook</span>
1265      </a>
1266    </li>
1267  
1268
1269  
1270    <li>
1271      <a target="_blank" href="//twitter.com/share?text=CONUS%20Flag%20Pin&amp;url=https://assaultforward.us/products/conus-flag-pin" class="btn btn--small btn--share share-twitter">
1272        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-twitter" viewBox="0 0 20 20"><path fill="#444" d="M19.551 4.208q-.815 1.202-1.956 2.038 0 .082.02.255t.02.255q0 1.589-.469 3.179t-1.426 3.036-2.272 2.567-3.158 1.793-3.963.672q-3.301 0-6.031-1.773.571.041.937.041 2.751 0 4.911-1.671-1.284-.02-2.292-.784T2.456 11.85q.346.082.754.082.55 0 1.039-.163-1.365-.285-2.262-1.365T1.09 7.918v-.041q.774.408 1.773.448-.795-.53-1.263-1.396t-.469-1.864q0-1.019.509-1.997 1.487 1.854 3.596 2.924T9.81 7.184q-.143-.509-.143-.897 0-1.63 1.161-2.781t2.832-1.151q.815 0 1.569.326t1.284.917q1.345-.265 2.506-.958-.428 1.386-1.732 2.18 1.243-.163 2.262-.611z"/></svg>
1273        <span class="share-title" aria-hidden="true">Tweet</span>
1274        <span class="visually-hidden">Tweet on Twitter</span>
1275      </a>
1276    </li>
1277  
1278
1279  
1280
1281</ul>
1282
1283        
1284    </div>
1285  </div>
1286</div>
1287
1288
1289  <div class="text-center return-link-wrapper page-width">
1290    <a href="/collections/frontpage" class="btn btn--secondary btn--has-icon-before return-link">
1291      <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-arrow-left" viewBox="0 0 20 8"><path d="M4.814 7.555C3.95 6.61 3.2 5.893 2.568 5.4 1.937 4.91 1.341 4.544.781 4.303v-.44a9.933 9.933 0 0 0 1.875-1.196c.606-.485 1.328-1.196 2.168-2.134h.752c-.612 1.309-1.253 2.315-1.924 3.018H19.23v.986H3.652c.495.632.84 1.1 1.036 1.406.195.306.485.843.869 1.612h-.743z" fill="#000" fill-rule="evenodd"/></svg>
1292      Back to Lapel Pins | Cuff-Links | Tie-Clips | Apparel | &amp; More
1293    </a>
1294  </div>
1295
1296
1297
1298  
1298<script type="application/json" id="ProductJson-product-template">
1299    {"id":5321970122906,"title":"CONUS Flag Pin","handle":"conus-flag-pin","description":"\u003cp\u003e\u003cspan\u003eThe Continental U.S., or \u003c\/span\u003e\u003cb\u003eCONUS\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003eis\u003cspan\u003e the 48 connected states.\u003c\/span\u003e\u003cspan\u003e Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is \u003cem\u003eOutside\u003c\/em\u003e the Continental U.S.)\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThese patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. \u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEach pin comes individually packaged for presentation and makes a unique and meaningful gift.\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\n\u003cspan data-offset-key=\"43hs7-0-0\"\u003eFor those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. \u003c\/span\u003eOr you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. \u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003cstrong\u003eMADE IN USA\u003c\/strong\u003e\u003c\/div\u003e","published_at":"2020-06-10T15:33:51-04:00","created_at":"2020-06-10T15:47:49-04:00","vendor":"Assault Forward","type":"Pins","tags":["Accessories","Lapel Pin"],"price":1599,"price_min":1599,"price_max":6999,"available":true,"price_varies":true,"compare_at_price":1599,"compare_at_price_min":1599,"compare_at_price_max":6999,"compare_at_price_varies":true,"variants":[{"id":34645166358682,"title":"1 Pin","option1":"1 Pin","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 1 Pin","public_title":"1 Pin","options":["1 Pin"],"price":1599,"weight":0,"compare_at_price":1599,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":34645166391450,"title":"3 - Pack","option1":"3 - Pack","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 3 - Pack","public_title":"3 - Pack","options":["3 - Pack"],"price":4499,"weight":0,"compare_at_price":4497,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":34645166424218,"title":"5 - Pack","option1":"5 - Pack","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 5 - Pack","public_title":"5 - Pack","options":["5 - Pack"],"price":6999,"weight":0,"compare_at_price":6999,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":36717802061978,"title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","option1":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","public_title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","options":["Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)"],"price":1999,"weight":0,"compare_at_price":1999,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193","\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193","\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193"],"featured_image":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","options":["Size"],"media":[{"alt":null,"id":32380858826996,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2679,"width":2679,"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"aspect_ratio":1.0,"height":2679,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","width":2679},{"alt":null,"id":15516476670146,"position":2,"preview_image":{"aspect_ratio":1.499,"height":1366,"width":2048,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193"},"aspect_ratio":1.499,"height":1366,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193","width":2048},{"alt":null,"id":9547434459290,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2958,"width":2958,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193"},"aspect_ratio":1.0,"height":2958,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193","width":2958},{"alt":null,"id":9559943151770,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2656,"width":2656,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193"},"aspect_ratio":1.0,"height":2656,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193","width":2656}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cspan\u003eThe Continental U.S., or \u003c\/span\u003e\u003cb\u003eCONUS\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003eis\u003cspan\u003e the 48 connected states.\u003c\/span\u003e\u003cspan\u003e Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is \u003cem\u003eOutside\u003c\/em\u003e the Continental U.S.)\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThese patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. \u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEac
1299h pin comes individually packaged for presentation and makes a unique and meaningful gift.\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\n\u003cspan data-offset-key=\"43hs7-0-0\"\u003eFor those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. \u003c\/span\u003eOr you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. \u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003cstrong\u003eMADE IN USA\u003c\/strong\u003e\u003c\/div\u003e"}
1300  </script>
1300
1301
1302
1303
1304
1305
1306</div>
1307
1308<script>
1309  // Override default values of shop.strings for each template.
1310  // Alternate product templates can change values of
1311  // add to cart button, sold out, and unavailable states here.
1312  theme.productStrings = {
1313    addToCart: "Add to cart",
1314    soldOut: "Sold out",
1315    unavailable: "Unavailable"
1316  }
1317</script>
1317
1318
1319
1320
1321<script type="application/ld+json">
1322{
1323  "@context": "http://schema.org/",
1324  "@type": "Product",
1325  "name": "CONUS Flag Pin",
1326  "url": "https://assaultforward.us/products/conus-flag-pin","image": [
1327      "https://assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_2679x.jpg?v=1689345199"
1328    ],"description": "The Continental U.S., or CONUS, is the 48 connected states. Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is Outside the Continental U.S.)
1329These patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. 
1330
1331Each pin comes individually packaged for presentation and makes a unique and meaningful gift.
1332
1333
1334
1335For those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. Or you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. 
1336
1337MADE IN USA","brand": {
1338    "@type": "Thing",
1339    "name": "Assault Forward"
1340  },
1341  "offers": [{
1342        "@type" : "Offer","availability" : "http://schema.org/InStock",
1343        "price" : "15.99",
1344        "priceCurrency" : "USD",
1345        "url" : "https://assaultforward.us/products/conus-flag-pin?variant=34645166358682"
1346      },
1347{
1348        "@type" : "Offer","availability" : "http://schema.org/InStock",
1349        "price" : "44.99",
1350        "priceCurrency" : "USD",
1351        "url" : "https://assaultforward.us/products/conus-flag-pin?variant=34645166391450"
1352      },
1353{
1354        "@type" : "Offer","availability" : "http://schema.org/InStock",
1355        "price" : "69.99",
1356        "priceCurrency" : "USD",
1357        "url" : "https://assaultforward.us/products/conus-flag-pin?variant=34645166424218"
1358      },
1359{
1360        "@type" : "Offer","availability" : "http://schema.org/InStock",
1361        "price" : "19.99",
1362        "priceCurrency" : "USD",
1363        "url" : "https://assaultforward.us/products/conus-flag-pin?variant=36717802061978"
1364      }
1365]
1366}
1367</script>
vendor: 1 bytes, line 1367
1367
1368<script text="text/javascript">
1369  var _learnq = _learnq || [];
1370
1371  var item = {
1372    Name: "CONUS Flag Pin",
1373    ProductID: 5321970122906,
1374    Categories: ["Lapel Pins | Cuff-Links | Tie-Clips | Apparel | \u0026 More"],
1375    ImageURL: "https://assaultforward.us/cdn/shop/files/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202_grande.jpg?v=1689345199",
1376    URL: "https://assaultforward.us/products/conus-flag-pin",
1377    Brand: "Assault Forward",
1378    Price: "$15.99",
1379    CompareAtPrice: "$69.99"
1380  };
1381
1382  _learnq.push(['track', 'Viewed Product', item]);
1383  _learnq.push(['trackViewedItem', {
1384    Title: item.Name,
1385    ItemId: item.ProductID,
1386    Categories: item.Categories,
1387    ImageUrl: item.ImageURL,
1388    Url: item.URL,
1389    Metadata: {
1390      Brand: item.Brand,
1391      Price: item.Price,
1392      CompareAtPrice: item.CompareAtPrice
1393    }
1394  }]);
1395</script>
1395
1396    </main>
1397
1398    <div id="shopify-section-footer" class="shopify-section">
1399<style>
1400  .site-footer__hr {
1401    border-bottom: 1px solid #dcdcdc;
1402  }
1403
1404  .site-footer,
1405  .site-footer a,
1406  .site-footer__rte p {
1407    color: #3d4246;
1408    background-color: #f5f5f5;
1409  }
1410
1411  .site-footer a:hover {
1412    color: #61696f;
1413  }
1414</style>
1415
1416<footer class="site-footer" role="contentinfo">
1417  <div class="page-width">
1418    <div class="site-footer__content"><div class="site-footer__item
1419                    
1420                    site-footer__item--one-third
1421                    "
1422             >
1423          <div class="site-footer__item-inner site-footer__item-inner--link_list"><h4></h4><ul class="site-footer__linklist
1424                            "></ul></div>
1425        </div><div class="site-footer__item
1426                    
1427                    site-footer__item--one-third
1428                    "
1429             >
1430          <div class="site-footer__item-inner site-footer__item-inner--link_list"><h4>Quick links</h4><ul class="site-footer__linklist
1431                            "><li class="site-footer__linklist-item">
1432                        <a href="/collections/all">Shop</a>
1433                      </li><li class="site-footer__linklist-item">
1434                        <a href="/policies/terms-of-service">Terms of Service</a>
1435                      </li><li class="site-footer__linklist-item">
1436                        <a href="/policies/shipping-policy">Shipping Policy</a>
1437                      </li><li class="site-footer__linklist-item">
1438                        <a href="/policies/refund-policy">Refund Policy</a>
1439                      </li><li class="site-footer__linklist-item">
1440                        <a href="/policies/privacy-policy">Privacy Policy</a>
1441                      </li></ul></div>
1442        </div><div class="site-footer__item
1443                    
1444                    site-footer__item--one-third
1445                    "
1446             >
1447          <div class="site-footer__item-inner site-footer__item-inner--text"><h4>Contact Us</h4><div class="site-footer__rte
1448                              ">
1449                      <p>P.O. Box 341884</p><p>Bethesda, MD 20827</p><p>833-ASLT-FWD (275-8393)</p><p>[email protected]</p>
1450                  </div></div>
1451        </div></div>
1452  </div>
1453
1454  <hr class="site-footer__hr">
1455
1456  <div class="page-width">
1457    <div class="grid grid--no-gutters small--text-center">
1458      <div class="grid__item one-half small--one-whole"><ul class="list--inline site-footer__social-icons social-icons site-footer__icon-list"><li>
1459                <a class="social-icons__link" href="https://facebook.com/AssaultFWD" aria-describedby="a11y-external-message"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 20 20"><path fill="#444" d="M18.05.811q.439 0 .744.305t.305.744v16.637q0 .439-.305.744t-.744.305h-4.732v-7.221h2.415l.342-2.854h-2.757v-1.83q0-.659.293-1t1.073-.342h1.488V3.762q-.976-.098-2.171-.098-1.634 0-2.635.964t-1 2.72V9.47H7.951v2.854h2.415v7.221H1.413q-.439 0-.744-.305t-.305-.744V1.859q0-.439.305-.744T1.413.81H18.05z"/></svg><span class="icon__fallback-text">Facebook</span>
1460                </a>
1461              </li><li>
1462                <a class="social-icons__link" href="https://twitter.com/AssaultFWD" aria-describedby="a11y-external-message"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-twitter" viewBox="0 0 20 20"><path fill="#444" d="M19.551 4.208q-.815 1.202-1.956 2.038 0 .082.02.255t.02.255q0 1.589-.469 3.179t-1.426 3.036-2.272 2.567-3.158 1.793-3.963.672q-3.301 0-6.031-1.773.571.041.937.041 2.751 0 4.911-1.671-1.284-.02-2.292-.784T2.456 11.85q.346.082.754.082.55 0 1.039-.163-1.365-.285-2.262-1.365T1.09 7.918v-.041q.774.408 1.773.448-.795-.53-1.263-1.396t-.469-1.864q0-1.019.509-1.997 1.487 1.854 3.596 2.924T9.81 7.184q-.143-.509-.143-.897 0-1.63 1.161-2.781t2.832-1.151q.815 0 1.569.326t1.284.917q1.345-.265 2.506-.958-.428 1.386-1.732 2.18 1.243-.163 2.262-.611z"/></svg><span class="icon__fallback-text">Twitter</span>
1463                </a>
1464              </li><li>
1465                <a class="social-icons__link" href="http://instagram.com/AssaultFWD" aria-describedby="a11y-external-message"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 512 512"><path d="M256 49.5c67.3 0 75.2.3 101.8 1.5 24.6 1.1 37.9 5.2 46.8 8.7 11.8 4.6 20.2 10 29 18.8s14.3 17.2 18.8 29c3.4 8.9 7.6 22.2 8.7 46.8 1.2 26.6 1.5 34.5 1.5 101.8s-.3 75.2-1.5 101.8c-1.1 24.6-5.2 37.9-8.7 46.8-4.6 11.8-10 20.2-18.8 29s-17.2 14.3-29 18.8c-8.9 3.4-22.2 7.6-46.8 8.7-26.6 1.2-34.5 1.5-101.8 1.5s-75.2-.3-101.8-1.5c-24.6-1.1-37.9-5.2-46.8-8.7-11.8-4.6-20.2-10-29-18.8s-14.3-17.2-18.8-29c-3.4-8.9-7.6-22.2-8.7-46.8-1.2-26.6-1.5-34.5-1.5-101.8s.3-75.2 1.5-101.8c1.1-24.6 5.2-37.9 8.7-46.8 4.6-11.8 10-20.2 
146518.8-29s17.2-14.3 29-18.8c8.9-3.4 22.2-7.6 46.8-8.7 26.6-1.3 34.5-1.5 101.8-1.5m0-45.4c-68.4 0-77 .3-103.9 1.5C125.3 6.8 107 11.1 91 17.3c-16.6 6.4-30.6 15.1-44.6 29.1-14 14-22.6 28.1-29.1 44.6-6.2 16-10.5 34.3-11.7 61.2C4.4 179 4.1 187.6 4.1 256s.3 77 1.5 103.9c1.2 26.8 5.5 45.1 11.7 61.2 6.4 16.6 15.1 30.6 29.1 44.6 14 14 28.1 22.6 44.6 29.1 16 6.2 34.3 10.5 61.2 11.7 26.9 1.2 35.4 1.5 103.9 1.5s77-.3 103.9-1.5c26.8-1.2 45.1-5.5 61.2-11.7 16.6-6.4 30.6-15.1 44.6-29.1 14-14 22.6-28.1 29.1-44.6 6.2-16 10.5-34.3 11.7-61.2 1.2-26.9 1.5-35.4 1.5-103.9s-.3-77-1.5-103.9c-1.2-26.8-5.5-45.1-11.7-61.2-6.4-16.6-15.1-30.6-29.1-44.6-14-14-28.1-22.6-44.6-29.1-16-6.2-34.3-10.5-61.2-11.7-27-1.1-35.6-1.4-104-1.4z"/><path d="M256 126.6c-71.4 0-129.4 57.9-129.4 129.4s58 129.4 129.4 129.4 129.4-58 129.4-129.4-58-129.4-129.4-129.4zm0 213.4c-46.4 0-84-37.6-84-84s37.6-84 84-84 84 37.6 84 84-37.6 84-84 84z"/><circle cx="390.5" cy="121.5" r="30.2"/></svg><span class="icon__fallback-text">Instagram</span>
1466                </a>
1467              </li></ul></div>
1468
1469      <div class="grid__item one-half small--one-whole">
1470        
1471          <div class="grid__item site-footer__payment-icons">
1472            
1473              <span class="visually-hidden">Payment methods</span>
1474              <ul class="payment-icons list--inline site-footer__icon-list">
1475                
1476                  <li class="payment-icon">
1477                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-amazon"><title id="pi-amazon">Amazon</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" fill-rule="nonzero" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF" fill-rule="nonzero"/><path d="M25.26 16.23c-1.697 1.48-4.157 2.27-6.275 2.27-2.97 0-5.644-1.3-7.666-3.463-.16-.17-.018-.402.173-.27 2.183 1.504 4.882 2.408 7.67 2.408 1.88 0 3.95-.46 5.85-1.416.288-.145.53.222.248.47v.001zm.706-.957c-.216-.328-1.434-.155-1.98-.078-.167.024-.193-.148-.043-.27.97-.81 2.562-.576 2.748-.305.187.272-.047 2.16-.96 3.063-.14.138-.272.064-.21-.12.205-.604.664-1.96.446-2.29h-.001z" fill="#F90" fill-rule="nonzero"/><path d="M21.814 15.291c-.574-.498-.676-.73-.993-1.205-.947 1.012-1.618 1.315-2.85 1.315-1.453 0-2.587-.938-2.587-2.818 0-1.467.762-2.467 1.844-2.955.94-.433 2.25-.51 3.25-.628v-.235c0-.43.033-.94-.208-1.31-.212-.333-.616-.47-.97-.47-.66 0-1.25.353-1.392 1.085-.03.163-.144.323-.3.33l-1.677-.187c-.14-.033-.296-.153-.257-.38.386-2.125 2.223-2.766 3.867-2.766.84 0 1.94.234 2.604.9.842.82.762 1.918.762 3.11v2.818c0 .847.335 1.22.65 1.676.113.164.138.36-.003.482-.353.308-.98.88-1.326 1.2a.367.367 0 0 1-.414.038zm-1.659-2.533c.34-.626.323-1.214.323-1.918v-.392c-1.25 0-2.57.28-2.57 1.82 0 .782.386 1.31 1.05 1.31.487 0 .922-.312 1.197-.82z" fill="#221F1F"/></svg>
1478
1479                  </li>
1480                
1481                  <li class="payment-icon">
1482                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/>
1482</svg>
1483
1484                  </li>
1485                
1486                  <li class="payment-icon">
1487                    <svg class="icon icon--full-color" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
1488
1489                  </li>
1490                
1491                  <li class="payment-icon">
1492                    <svg class="icon icon--full-color" width="38" height="24" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 24" aria-labelledby="pi-bizum"><title id="pi-bizum">Bizum</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18a3 3 0 003 3h32c1.7 0 3-1.3 3-3V3a3 3 0 00-3-3z" opacity=".07"/><path fill="#fff" d="M35 1a2 2 0 012 2v18a2 2 0 01-2 2H3a2 2 0 01-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#05c0c7" fill-rule="evenodd" d="M18.81 10.55a.52.52 0 00-.52.51v3.88a.52.52 0 101.05 0v-3.88a.52.52 0 00-.53-.51zm0-1.93a.6.6 0 00-.59.59c0 .32.27.6.6.6a.6.6 0 000-1.2zm5.12 2.44c0-.32-.26-.44-.5-.44h-2.6c-.25 0-.46.2-.46.44 0 .26.2.46.46.46h1.71l-2.21 3.08a.55.55 0 00-.1.31c0 .33.26.5.48.5h2.76c.25 0 .46-.2.46-.45 0-.26-.2-.46-.46-.46H21.6l2.17-3.01a.7.7 0 00.15-.43zm-7.66 2.44c0 .63-.28 1.02-.92 1.02s-.9-.39-.9-1.02v-1.98h.94c.78 0 .88.42.88.9v1.08zm
14921.05-1.1c0-1.1-.57-1.8-1.9-1.8h-.96V9.14a.52.52 0 00-.52-.52.52.52 0 00-.52.52v4.36c0 1.08.58 1.96 1.95 1.96 1.36 0 1.96-.9 1.96-1.96v-1.11h-.01zm10.7-1.85a.52.52 0 00-.52.52v2.43c0 .63-.28 1.02-.92 1.02-.63 0-.9-.39-.9-1.02v-2.43a.52.52 0 00-.51-.52.52.52 0 00-.53.52v2.43c0 1.08.58 1.96 1.95 1.96s1.96-.9 1.96-1.96v-2.43a.54.54 0 00-.53-.52zM36 12.52c0-1.08-.5-1.96-1.87-1.96-.61 0-1.05.18-1.35.48-.3-.3-.74-.48-1.35-.48-1.36 0-1.87.9-1.87 1.96v2.43c0 .29.24.52.52.52.29 0 .52-.23.52-.52v-2.43c0-.63.2-1.02.83-1.02.63 0 .82.39.82 1.02v2.43c0 .29.24.52.52.52.29 0 .52-.23.52-.52v-2.43c0-.63.2-1.02.83-1.02.64 0 .83.39.83 1.02v2.43c0 .29.23.52.5.52.3 0 .53-.23.53-.52l.02-2.43zM3.87 10.56c.37.27.88.19 1.15-.18l.96-1.33a.82.82 0 10-1.33-.97l-.97 1.33a.83.83 0 00.2 1.15zm4.4-1.88a.82.82 0 00-1.15.18l-3.86 5.32a.82.82 0 101.33.97l3.86-5.32a.81.81 0 00-.18-1.15zM3.5 8.26a.82.82 0 10-1.32-.97.82.82 0 001.32.97zm5.86 7.3a.82.82 0 10-.97 1.33.82.82 0 10.97-1.33zm-1.5-2.1a.82.82 0 00-1.15.17l-.97 1.33a.82.82 0 101.32.97l.98-1.33a.82.82 0 00-.18-1.15z" clip-rule="evenodd"/></svg>
1493                  </li>
1494                
1495                  <li class="payment-icon">
1496                    <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg>
1497                  </li>
1498                
1499                  <li class="payment-icon">
1500                    <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg>
1501                  </li>
1502                
1503                  <li class="payment-icon">
1504                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
150406zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>
1505
1506                  </li>
1507                
1508                  <li class="payment-icon">
1509                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
1510
1511                  </li>
1512                
1513                  <li class="payment-icon">
1514                    <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 
15140-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg>
1515                  </li>
1516                
1517                  <li class="payment-icon">
1518                    <svg class="icon icon--full-color" width="38" height="24" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" aria-labelledby="pi-satispay"><title id="pi-satispay">Satispay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3Z" style="fill-opacity:.07;fill-rule:nonzero"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" style="fill:#ef4323;fill-rule:nonzero"/><path d="M673.066 283.461h640.814l1012.66 924.379c50.64 46.22 79.68 112.06 79.68 180.62 0 68.57-29.04 134.4-79.68 180.63l-1012.66 924.37H673.066c-24.632 0-39.66-16.09-45.492-31.15-5.847-15.06-5.605-37.06 12.582-53.68L1724.9 1418.47a40.74 40.74 0 0 0 13.24-30.01c0-11.39-4.83-22.32-13.24-30L640.156 368.289c-18.187-16.609-18.429-38.617-12.582-53.668 5.832-15.062 20.86-31.16 45.492-31.16" style="fill:#fffcf0;fill-rule:nonzero" transform="matrix(.00765 0 0 -.00765 8.716 22.617)"/><path d="m868.125 2030.03-504.973-460.94c-50.636-46.23-79.683-112.06-79.683-180.63 0-68.56 29.047-134.4 79.683-180.62l504.973-460.949L1251.45 1096.8l-286.657 261.66a40.723 40.723 0 0 0-13.242 30 40.723 40.723 0 0 0 13.242 30.01l286.657 261.66-383.325 349.9Zm1148.515 463.43h-515.95l320.89-292.91 227.95 208.08c18.19 16.62 18.44 38.62 12.6 53.68-5.85 15.06-20.86 31.15-45.49 31.15M1821.58 576.379l-320.89-292.918h515.95c24.63 0 39.64 16.098 45.49 31.16 5.84 15.051 5.59 37.059-12.6 53.668l-227.95 208.09Z" style="fill:#fffcf0;fill-rule:nonzero" transform="matrix(.00765 0 0 -.00765 8.716 22.617)"/></svg>
1519                  </li>
1520                
1521                  <li class="payment-icon">
1522                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg>
1523
1524                  </li>
1525                
1526                  <li class="payment-icon">
1527                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/>
1527<path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
152716.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
1528
1529                  </li>
1530                
1531              </ul>
1532            
1533          </div>
1534        
1535      </div>
1536      <div class="grid__item">
1537        <small class="site-footer__copyright-content">&copy; 2026, <a href="/" title="">Assault Forward</a></small>
1538        <small class="site-footer__copyright-content site-footer__copyright-content--powered-by"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&amp;utm_medium=shopify&amp;utm_source=onlinestore">Powered by Shopify</a></small>
1539      </div>
1540    </div>
1541  </div>
1542</footer>
1543
1544
1545
1546
1547</div>
1548
1549    <div id="slideshow-info" class="visually-hidden" aria-hidden="true">Use left/right arrows to navigate the slideshow or swipe left/right if using a mobile device</div>
1550
1551  </div>
1552
1553  <ul hidden>
1554    <li id="a11y-refresh-page-message">choosing a selection results in a full page refresh</li>
1555  </ul>
1556  <!-- "snippets/revy-bundle-script.liquid" was not rendered, the associated app was uninstalled -->
1557<style>
1558.mw-gp-container{margin-bottom:20px;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.mw-gp-spinner{display:block;margin:10px auto;font-size:10px;position:relative;text-indent:-9999em;border-top:5px solid rgba(184,184,184,.2);border-right:5px solid rgba(184,184,184,.2);border-bottom:5px solid rgba(184,184,184,.2);border-left:5px solid rgba(105,105,105,.2);-webkit-animation:mwgpanimation 1.1s infinite linear;animation:mwgpanimation 1.1s infinite linear}.mw-gp-spinner,.mw-gp-spinner:after{border-radius:50%;width:50px;height:50px}@-webkit-keyframes mwgpanimation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes mwgpanimation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
1559</style>
1560<script>
1561window.mwGroupedProductsObjects = {
1562    product: {"id":5321970122906,"title":"CONUS Flag Pin","handle":"conus-flag-pin","description":"\u003cp\u003e\u003cspan\u003eThe Continental U.S., or \u003c\/span\u003e\u003cb\u003eCONUS\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003eis\u003cspan\u003e the 48 connected states.\u003c\/span\u003e\u003cspan\u003e Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is \u003cem\u003eOutside\u003c\/em\u003e the Continental U.S.)\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThese patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. \u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEach pin comes individually packaged for presentation and makes a unique and meaningful gift.\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\n\u003cspan data-offset-key=\"43hs7-0-0\"\u003eFor those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. \u003c\/span\u003eOr you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. \u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003cstrong\u003eMADE IN USA\u003c\/strong\u003e\u003c\/div\u003e","published_at":"2020-06-10T15:33:51-04:00","created_at":"2020-06-10T15:47:49-04:00","vendor":"Assault Forward","type":"Pins","tags":["Accessories","Lapel Pin"],"price":1599,"price_min":1599,"price_max":6999,"available":true,"price_varies":true,"compare_at_price":1599,"compare_at_price_min":1599,"compare_at_price_max":6999,"compare_at_price_varies":true,"variants":[{"id":34645166358682,"title":"1 Pin","option1":"1 Pin","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 1 Pin","public_title":"1 Pin","options":["1 Pin"],"price":1599,"weight":0,"compare_at_price":1599,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":34645166391450,"title":"3 - Pack","option1":"3 - Pack","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 3 - Pack","public_title":"3 - Pack","options":["3 - Pack"],"price":4499,"weight":0,"compare_at_price":4497,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":34645166424218,"title":"5 - Pack","option1":"5 - Pack","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 5 - Pack","public_title":"5 - Pack","options":["5 - Pack"],"price":6999,"weight":0,"compare_at_price":6999,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":36717802061978,"title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","option1":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","public_title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","options":["Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)"],"price":1999,"weight":0,"compare_at_price":1999,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193","\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193","\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193"],"featured_image":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","options":["Size"],"media":[{"alt":null,"id":32380858826996,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2679,"width":2679,"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"aspect_ratio":1.0,"height":2679,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","width":2679},{"alt":null,"id":15516476670146,"position":2,"preview_image":{"aspect_ratio":1.499,"height":1366,"width":2048,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193"},"aspect_ratio":1.499,"height":1366,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193","width":2048},{"alt":null,"id":9547434459290,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2958,"width":2958,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193"},"aspect_ratio":1.0,"height":2958,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193","width":2958},{"alt":null,"id":9559943151770,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2656,"width":2656,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193"},"aspect_ratio":1.0,"height":2656,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193","width":2656}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cspan\u003eThe Continental U.S., or \u003c\/span\u003e\u003cb\u003eCONUS\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003eis\u003cspan\u003e the 48 connected states.\u003c\/span\u003e\u003cspan\u003e Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is \u003cem\u003eOutside\u003c\/em\u003e the Continental U.S.)\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThese patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. \u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEac
1562h pin comes individually packaged for presentation and makes a unique and meaningful gift.\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\n\u003cspan data-offset-key=\"43hs7-0-0\"\u003eFor those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. \u003c\/span\u003eOr you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. \u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003cstrong\u003eMADE IN USA\u003c\/strong\u003e\u003c\/div\u003e"},
1563    cart: {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0},
1564    template_name: "product",
1565    shop: {
1566    domain: "assault-forward.myshopify.com",
1567    money_format : "${{amount}}",
1568    money_with_currency_format : "${{amount}} USD",
1569    jqForce: false
1570    }	
1571};
1572
1573if (document.getElementsByTagName('html')[0].innerHTML.indexOf('files-shpf.mageworx.com/groupedproducts/source.js') > -1) {
1574    var container = document.getElementsByClassName('mw-gp-container');
1575
1576    if (container.length > 0) {
1577    container[0].innerHTML = '<div class="mw-gp-spinner"></div>';
1578
1579    setTimeout(function(){ document.getElementsByClassName('mw-gp-spinner')[0] && document.getElementsByClassName('mw-gp-spinner')[0].remove(); }, 4000);
1580    }
1581}
1582</script>
1582
1583<!-- spurit_uev-added -->
1584<!-- "snippets/spurit_uev-theme-snippet.liquid" was not rendered, the associated app was uninstalled -->
1585<!-- /spurit_uev-added -->
1586
1587
1588
1589
1590
1591
1592<style>.ocu-hidden.ocu-hidden.ocu-hidden,.bold_hidden.bold_hidden.bold_hidden{display:none !important}</style>
1593<script>
1594!function(){
1595if (window.performance) {
1596    const navEntries = window.performance.getEntriesByType && window.performance.getEntriesByType('navigation');
1597    if (navEntries && navEntries.length > 0 && navEntries[0].type === 'back_forward') {
1598      location.reload();
1599    } else if (window.performance.navigation && window.performance.navigation.type === window.performance.navigation.TYPE_BACK_FORWARD) {
1600      location.reload();
1601    }
1602}
1603
1604!function(){var e=[];window.Promise||e.push("Promise"),window.URLSearchParams||e.push("URL"),Element.prototype.closest||e.push("Element.prototype.closest"),Array.from||e.push("Array.from"),Object.assign||e.push("Object.assign");try{new Event("event")}catch(t){e.push("Event")}try{Symbol}catch(t){e.push("Symbol")}if(e.length){var t=document.createElement("script");t.src="https://polyfill-fastly.net/v3/polyfill.min.js?features="+e.join(",")+"&flags=gated",t.async=!0,document.head.appendChild(t)}Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e}}();
1605
1606var ajax,utils={store:Object.freeze(new Store),cookie:{options:{expires:86400,path:"/",encodeValue:!1},get:function(e){var t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0},set:function(e,t,n){var i=(n=n||this.options).expires;if("number"==typeof i&&i){var r=new Date;r.setTime(r.getTime()+1e3*i),i=n.expires=r}i&&i.toUTCString&&(n.expires=i.toUTCString());var o=e+"="+(t=encodeURIComponent(t));for(var s in n){o+="; "+s;var a=n[s];!0!==a&&(o+="="+a)}document.cookie=o},remove:function(e){this.set(e,null,{expires:-1})}},queryParams:function(e){var t={};return e.replace("?","").split("&").forEach(function(e){var n=e.split("=")[0],i=e.split("=")[1];t[n]=decodeURIComponent(i)}),t},shareableDiscount:function(e){e=e||{};var t=utils.queryParams(location.search)[e.key||"discount"];t&&(utils.cookie.set(e.name||"ocu-share-discount",t,utils.cookie.options),!e.clear||history.pushState(null,null,location.href.replace(/\?.+/,"")))},serializeForm:function(e){return new URLSearchParams(new FormData(e).fd || new FormData(e)).toString()},serializeFormEdge:function(e){var t,n=[];if("object"==typeof e&&"FORM"==e.nodeName){var r=e.elements.length;for(i=0;i<r;i++)if((t=e.elements[i]).name&&!t.disabled&&"file"!=t.type&&"reset"!=t.type&&"submit"!=t.type&&"button"!=t.type)if("select-multiple"==t.type)for(j=e.elements[i].options.length-1;j>=0;j--)t.options[j].selected&&(n[n.length]=encodeURIComponent(t.name)+"="+encodeURIComponent(t.options[j].value));else("checkbox"!=t.type&&"radio"!=t.type||t.checked)&&(n[n.length]=encodeURIComponent(t.name)+"="+encodeURIComponent(t.value))}return n.join("&").replace(/%20/g,"+")},serialize:function(e,t,n,i){if(this.helpers.isFormData(t)&&(i=n,n=t,t=null),(t=t||{}).indices=t.indices||!1,n=n||new URLSearchParams,this.helpers.isUndefined(e))return n;if(this.helpers.isNull(e))n.append(i,"");else if(this.helpers.isArray(e))if(e.length)e.forEach(function(e,r){var o="object"==typeof e,s=i+"["+(t.indices&&o?r:"")+"]";this.serialize(e,t,n,s)}.bind(this));else{var r=i+"[]";n.append(r,"")}else this.helpers.isDate(e)?n.append(i,e.toISOString()):!this.helpers.isObject(e)||this.helpers.isFile(e)||this.helpers.isBlob(e)?n.append(i,e):Object.keys(e).forEach(function(r){var o=e[r];if(this.helpers.isArray(o))for(;2<r.length&&r.lastIndexOf("[]")===r.length-2;)r=r.substring(0,r.length-2);var s=i?i+"["+r+"]":r;this.serialize(o,t,n,s)}.bind(this));return n},inArray:function(e,t,n){return e.some(function(e){return e[t]===n})},filterObject:function(e,t){return t.reduce(function(t,n){return t[n]=e[n],t},{})},helpers:{isUndefined:function(e){return void 0===e},isNull:function(e){return null===e},isObject:function(e){return e===Object(e)},isArray:function(e){return Array.isArray(e)},isDate:function(e){return e instanceof Date},isBlob:function(e){return e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.slice},isFile:function(e){return this.isBlob(e)&&("object"==typeof e.lastModifiedDate||"number"==typeof e.lastModified)&&"string"==typeof e.name},isFormData:function(e){return e instanceof FormData}}};
1607
1608function PrecheckoutIntegrations(cartItems) {
1609    this.cartItems = cartItems;
1610}
1611
1612PrecheckoutIntegrations.prototype = {
1613    get advancedProductOptions() {
1614        const cartItems = this.cartItems;
1615
1616        return {
1617            get present() {
1618                return !!window.mwProductOptions;
1619            },
1620            get relations() {
1621                return cartItems.reduce(function(acc, item) {
1622                    if (item.properties && item.properties._mw_option_relation) {
1623                        acc.push(+item.properties._mw_option_relation.split('_')[0]);
1624                    }
1625                    return acc;
1626                }, []);
1627            }
1628        };
1629    }
1630};
1631
1632window.OCUIncart = {
1633    cart_items: [],
1634    subscription_tags: '',
1635    money_format: '${{amount}}',
1636    option_selection: '//assaultforward.us/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js',
1637    integrations: function(cartItems) {
1638        return new PrecheckoutIntegrations(cartItems);
1639    },
1640
1641    metafields: {
1642        main: {"general":{"settings":{"app_endpoint":"https:\/\/ocu.zipify.com","proxy_url":"\/apps\/oneclickupsell","sdp":"https:\/\/[email protected]\/57","popup_settings":{"popup_frequency":"everytime"}},"integrations":{"recharge":"false","skip_cart":"false"},"triggers":{"pre_checkout":{"metafields":{"products":"pre_checkout_product_ids","variants":"pre_checkout_variant_ids"},"all_products":false},"post_checkout":{"metafields":{"products":"post_checkout_product_ids","variants":"post_checkout_variant_ids"},"all_products":false}},"incarts":{"23963":{"priority":4,"offer_id":86598,"shopify_product_id":2005926969444,"hide_if_in_cart":false},"23960":{"priority":1,"offer_id":79721,"shopify_product_id":2005926969444,"hide_if_in_cart":true},"23961":{"priority":2,"offer_id":78898,"shopify_product_id":3598640709732,"hide_if_in_cart":false},"23962":{"priority":3,"offer_id":66197,"shopify_product_id":2005974777956,"hide_if_in_cart":false},"27560":{"priority":5,"offer_id":75704,"shopify_product_id":5621112733850,"hide_if_in_cart":true,"alt":{"id":75705,"shopify_product_id":5621135638682,"hide_if_in_cart":true}}}},"post_checkout_product_ids":[],"post_checkout_variant_ids":[18729326379108,18729801547876,18730227990628,18730542727268,27299330424932,27299330457700,27359428706404,27359428739172,27659484823652,27840044990564,34427839512730,34444595757210,346457268225
164254,34645746221210,34645761294490,34645765947546,34645769945242,34645878112410,34645881618586,34645882962074,34645884567706,34645887451290,34645959409818,34645963473050,34645964882074,34645967077530,34645969535130,34874900218010,34874903068826,35730189353114,35730323112090,36717721190554,36717765001370],"post_excluded_product_ids":[],"pre_checkout_product_ids":[],"pre_checkout_variant_ids":[18729326379108,18729801547876,18730227990628,18730542727268,27299330424932,27299330457700,27359428706404,27359428739172,27659484823652,27840044990564,34427839512730,34444595757210,34645726822554,34645746221210,34645761294490,34645765947546,34645769945242,34645878112410,34645881618586,34645882962074,34645884567706,34645887451290,34645959409818,34645963473050,34645964882074,34645967077530,34645969535130,34874900218010,34874903068826,35730189353114,35730323112090,36717721190554,36717765001370],"pre_excluded_product_ids":[]} || {},
1643        get general() {
1644            return this.main.general || {};
1645        },
1646        get settings() {
1647            return this.general.settings || {};
1648        },
1649        get triggers() {
1650            return this.general.triggers ? this.general.triggers.pre_checkout : {};
1651        },
1652        get types() {
1653            return this.triggers.metafields || {
1654                products: 'pre_checkout_product_ids',
1655                variants: 'pre_checkout_variant_ids'
1656            };
1657        },
1658        get products() {
1659            return this.getMetafields(this.types.products) || [];
1660        },
1661        get variants() {
1662            return this.getMetafields(this.types.variants) || [];
1663        },
1664        get proxy_url() {
1665            return this.settings.proxy_url || '/apps/secure-checkout';
1666        },
1667        get excluded() {
1668            const keys = this.triggers.metafields.excluded || { products: 'pre_excluded_product_ids' };
1669
1670            return {
1671                products: this.getMetafields(keys.products, '[]'),
1672            };
1673        },
1674        getMetafields: function(key) {
1675            return this.main[key];
1676        }
1677    },
1678    get triggers() {
1679        const funnels = this.funnels;
1680        const cartItems = this.cart_items;
1681        const integrations = this.integrations(cartItems);
1682        const adp = integrations.advancedProductOptions;
1683
1684        return {
1685            products: this.cart_items.map(function(item) { return item.product_id }),
1686            get variants() {
1687                const ids = cartItems.map(function(item) { return item.id });
1688                if (!adp.present) return ids;
1689                return ids.concat(adp.relations); // Advanced Product Options integration
1690            },
1691            get all() {
1692                if (!funnels.triggers.all) return;
1693
1694                return !!this.products.filter(function(trigger) {
1695                    return !~funnels.triggers.excluded.products.indexOf(trigger);
1696                }).length;
1697            }
1698        };
1699    },
1700    get funnels() {
1701        return {
1702            triggers: {
1703                all: this.metafields.triggers.all_products,
1704                excluded: this.metafields.excluded,
1705                variants: this.metafields.variants || [],
1706                products: this.metafields.products || [],
1707            },
1708            get types() {
1709                const exclude = /all|excluded/;
1710                return Object.keys(this.triggers).filter(function(key) {
1711                    return !exclude.test(key);
1712                });
1713            }
1714        }
1715    },
1716    get is_precheckout() {
1717        const funnels = this.funnels;
1718        const triggers = this.triggers;
1719
1720        if (triggers.all) return true;
1721
1722        return funnels.types.some(function(type) {
1723            return triggers[type].some(function(trigger) {
1724                return ~funnels.triggers[type].indexOf(trigger);
1725            });
1726        });
1727    },
1728    get settings() {
1729        return this.metafields.settings.popup_settings;
1730    },
1731    get proxy_url() {
1732        return this.metafields.proxy_url;
1733    }
1734};
1735
1736var lqd = {
1737    cart: {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0},
1738    path: '' === 'true' ? 'd56719fefdd75e95ba06caea3d9a3732' : '5965fedc7708e03e1024db4bf2ed5fe6',
1739    template_name: 'product',
1740    shop_currency: 'USD',
1741    skip_cart: false,
1742    cart_products_json: JSON.parse("[{\"id\":null,\"title\":null,\"handle\":null,\"featured_image\":null,\"tags\":null,\"vendor\":null,\"type\":null,\"published_at\":null,\"collection_ids\":\"\",\"variants\":[]}]"),
1743    cart_collections_json: [],
1744    cart_variants_json: [],
1745    customer_id: "",
1746    customer: { id: "", email: '' },
1747    proxy_url: '/apps/oneclickupsell',
1748    permanent_domain: 'assault-forward.myshopify.com',
1749    current_domain: 'assaultforward.us',
1750    disabled_by_subscription_app: false,
1751    subscription_app_enabled: false,
1752    subscription_products_json: '',
1753    subscription_variants_json: '',
1754    subscription_products_size: 0,
1755    integrate_with_recharge: '' === 'true',
1756    product: {"id":5321970122906,"title":"CONUS Flag Pin","handle":"conus-flag-pin","description":"\u003cp\u003e\u003cspan\u003eThe Continental U.S., or \u003c\/span\u003e\u003cb\u003eCONUS\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003eis\u003cspan\u003e the 48 connected states.\u003c\/span\u003e\u003cspan\u003e Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is \u003cem\u003eOutside\u003c\/em\u003e the Continental U.S.)\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThese patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. \u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEac
1756h pin comes individually packaged for presentation and makes a unique and meaningful gift.\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\n\u003cspan data-offset-key=\"43hs7-0-0\"\u003eFor those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. \u003c\/span\u003eOr you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. \u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003cstrong\u003eMADE IN USA\u003c\/strong\u003e\u003c\/div\u003e","published_at":"2020-06-10T15:33:51-04:00","created_at":"2020-06-10T15:47:49-04:00","vendor":"Assault Forward","type":"Pins","tags":["Accessories","Lapel Pin"],"price":1599,"price_min":1599,"price_max":6999,"available":true,"price_varies":true,"compare_at_price":1599,"compare_at_price_min":1599,"compare_at_price_max":6999,"compare_at_price_varies":true,"variants":[{"id":34645166358682,"title":"1 Pin","option1":"1 Pin","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 1 Pin","public_title":"1 Pin","options":["1 Pin"],"price":1599,"weight":0,"compare_at_price":1599,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":34645166391450,"title":"3 - Pack","option1":"3 - Pack","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 3 - Pack","public_title":"3 - Pack","options":["3 - Pack"],"price":4499,"weight":0,"compare_at_price":4497,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":34645166424218,"title":"5 - Pack","option1":"5 - Pack","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - 5 - Pack","public_title":"5 - Pack","options":["5 - Pack"],"price":6999,"weight":0,"compare_at_price":6999,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":36717802061978,"title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","option1":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONUS Flag Pin - Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","public_title":"Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)","options":["Combo Pack (Lapel Pin, Magnet, \u0026 Sticker)"],"price":1999,"weight":0,"compare_at_price":1999,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193","\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193","\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193"],"featured_image":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","options":["Size"],"media":[{"alt":null,"id":32380858826996,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2679,"width":2679,"src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199"},"aspect_ratio":1.0,"height":2679,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/files\/PhotoJun09_102700AM_dfeb539c-3f41-4c18-9b5f-61891104d202.jpg?v=1689345199","width":2679},{"alt":null,"id":15516476670146,"position":2,"preview_image":{"aspect_ratio":1.499,"height":1366,"width":2048,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193"},"aspect_ratio":1.499,"height":1366,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/LOWRES_3J0A1972.jpg?v=1689345193","width":2048},{"alt":null,"id":9547434459290,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2958,"width":2958,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193"},"aspect_ratio":1.0,"height":2958,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/e695594a-4ef2-4454-9a3e-af0982455be0.png?v=1689345193","width":2958},{"alt":null,"id":9559943151770,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2656,"width":2656,"src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193"},"aspect_ratio":1.0,"height":2656,"media_type":"image","src":"\/\/assaultforward.us\/cdn\/shop\/products\/PhotoJun09_102944AM_150ca4b3-e958-4cd8-b7e8-13d693b8b1ef.jpg?v=1689345193","width":2656}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cspan\u003eThe Continental U.S., or \u003c\/span\u003e\u003cb\u003eCONUS\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003eis\u003cspan\u003e the 48 connected states.\u003c\/span\u003e\u003cspan\u003e Military assignments are often referred to as either CONUS or OCONUS. (OCONUS is \u003cem\u003eOutside\u003c\/em\u003e the Continental U.S.)\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThese patriotic lapel pins are 100% Made in America and like all our pins, proudly feature stars - not dots! Striking detail in a small package that will start many conversations when you’re wearing it with pride, promoting your patriotism and love of America. \u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEac
1756h pin comes individually packaged for presentation and makes a unique and meaningful gift.\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\n\u003cspan data-offset-key=\"43hs7-0-0\"\u003eFor those looking to purchase more than one lapel pin, we offer a three-pack at a quantity discount. \u003c\/span\u003eOr you can save even more when you buy the five-pack of CONUS Flag lapel pins to share with your battle-buddies, co-workers, and teammates. \u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"43hs7-0-0\"\u003e\u003cstrong\u003eMADE IN USA\u003c\/strong\u003e\u003c\/div\u003e"},
1757    product_tags: [],
1758    amazon_pay: '' === 'true',
1759    themePopup: '' === 'true' || '' === 'true',
1760    root_url: '/',
1761    themeSkipCart: '' === 'redirect_checkout'
1762        || '' === 'true'
1763        || '' === 'skip_cart',
1764
1765    get is_precheckout() {
1766        return OCUIncart.is_precheckout || OCUIncart.subscription_tags;
1767    },
1768    get upsell_cart_include_subscription_upsells() {
1769        var self = this;
1770
1771        var hasSubscription = this.product_tags.reduce(function(acc, tag) {
1772            return acc || ~self.postcheckout_tags.indexOf(tag.toLowerCase());
1773        }, false);
1774
1775        return hasSubscription;
1776    },
1777    get isThemePopupTag() {
1778        return this.product && this.product.tags.some(function(tag) {
1779            return /cross-sell-\d/.test(tag);
1780        });
1781    },
1782    get isSkipCartPage() {
1783        return /index|collection|product/.test(this.template_name);
1784    },
1785    get isSkipCartCondition() {
1786        return (this.skip_cart || this.themeSkipCart) && this.isSkipCartPage && !this.isThemePopupTag;
1787    },
1788    get checkoutUrl() {
1789        return (this.root_url === '/' ? '' : this.root_url) + '/checkout';
1790    }
1791};
1792
1793lqd.cart_products_json = lqd.cart_products_json.filter(function(item) {
1794    return item.handle && !item.error;
1795});
1796
1797utils.shareableDiscount({ clear:false });
1798
1799if (lqd.is_precheckout) requireOptionSelectors();
1800
1801var ocuCdn="https://d1u9wuqimc88kc.cloudfront.net";!function(){var e;e=utils.store.get("fallback").timeout,o=setTimeout(d.bind(null,!0),e),d(!1);var c="https://d16i0l5qhf2h7o.cloudfront.net",n=document.createElement("script"),l=document.createElement("link"),o=null;var t=document.createElement("script");function u(e,t){e.onload=function(){d(!0),clearTimeout(o)},t.rel="stylesheet",document.head.appendChild(e),document.head.appendChild(t)}function d(t){var e=document.querySelectorAll(utils.store.get("ocuSelectors"));Array.prototype.forEach.call(e,function(e){e.disabled=!t})}t.src="https://zipify-ocu.s3.amazonaws.com/oneclickupsell/production/deploy/assets/"+lqd.path+"/build_number.js?ts="+Date.now(),t.onload=function(){var e=window.OCU_assets_build_number,t=c+"/"+lqd.path+"/assets."+e+".js",o=document.createElement("script");document.head.appendChild(o),o.src=t,o.onload=function(e){var t=window.ocu_precheckout_assets;n.src=t["precheckout.js"],l.href=t["precheckout.css"],u(n,l)}},document.head.appendChild(t)}();
1802function Application() {
1803    ajax = axios.create({ timeout: 8000 });
1804    ajax.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
1805
1806    new PublicMethod();
1807    new SkipCart();
1808    new HistoryApi();
1809
1810    this.setAttributes();
1811}
1812
1813Application.prototype = {
1814    checkout: null,
1815    ocuSelectors: utils.store.get('ocuSelectors'),
1816    integrations: new Integrations(),
1817    helpers: new Helpers(),
1818    // verify: new Verify(),
1819    cart: new Cart(),
1820
1821    setAttributes: function() {
1822        // this.integrations.smar7();
1823        // if (
1824        //     !lqd.upsell_cart_include_upsells
1825        //     && !this.helpers.isOfferProduct()
1826        //     // && !lqd.integrate_with_recharge && !lqd.subscription_products_size
1827        //     && lqd.template_name === 'cart') return;
1828
1829        if (/register|account|login|reset_password/.test(lqd.template_name)) return;
1830
1831        const forEach = Array.prototype.forEach;
1832        const checkoutButtons = document.querySelectorAll(this.ocuSelectors);
1833        const links = document.querySelectorAll('a'); // for ios
1834
1835        forEach.call(checkoutButtons, function(item) {
1836            item.dataset.ocuCheckout = true;
1837        });
1838
1839        setTimeout(function() {
1840            var checkoutBtn = document.querySelector('[data-ocu-checkout]');
1841
1842            if (checkoutBtn) {
1843                const isValidButton = checkoutBtn.tagName !== 'P'
1844                if (isValidButton) checkoutBtn.style.display = 'inline-block';
1845            }
1846        });
1847
1848        // forEach.call(checkoutButtons, function(item) {
1849        //     item.dataset.disableRecharge = true;
1850        // });
1851
1852        forEach.call(links, function(link) {
1853            var isNeededHref = utils.store.get('permalink').test(link.href);
1854            if (isNeededHref) link.dataset.ocuCheckoutLink = true;
1855        });
1856
1857        // if (lqd.amazon_pay) {
1858        //     window.onAmazonLoginReady = this.integrations.amazonPay;
1859        //     if (window.onAmazonLoginReady && !utils.store.get('amazonPayInitiated')) this.integrations.amazonPay(this);
1860        // }
1861
1862        this.listenEvents();
1863    },
1864
1865    check: function(event, target) {
1866        event.preventDefault();
1867        event.stopPropagation();
1868
1869        var form = target.closest('[action="/cart"], [action="/checkout"]');
1870        if (form && !this.validate(form)) {
1871            clearTimeout(utils.store.get('fallback').id);
1872            utils.store.set('submitted', false);
1873            return form.reportValidity();
1874        }
1875        if (!utils.store.get('cartChanged')) return this.handle(target);
1876
1877        // utils.store.listen('cartChanged').then(function() {this.handle(target)}.bind(this));
1878    },
1879
1880    handle: function(target) {
1881        this.integrations.discounts();
1882
1883        if (utils.store.get('checkoutButtonState')) return;
1884        // if (utils.store.get('submitted')) return; // TODO fix_ff_multi_requests_2384
1885        utils.store.set('checkoutButtonState', true);
1886
1887        this.helpers.payPal(target);
1888        this.checkout({ redirect: true });
1889        // this.verify.init(target);
1890    },
1891
1892    init: function(event, target) {
1893        var self = this;
1894
1895        if (lqd.template_name === 'cart' && utils.store.get('submitted')) {
1896            event.stopPropagation();
1897            return event.preventDefault();
1898        }
1899        utils.store.set('submitted', true);
1900
1901        this.fallbackRedirect();
1902
1903        if (window.RevyApp) this.handleMonkeyPatching();
1904
1905        if (!this.allowUpsells(target)) return;
1906
1907        if (lqd.template_name === 'product' && target.name === 'add' && !target.closest('form[action$="/cart/add"]')) {
1908            event.preventDefault();
1909            event.stopPropagation();
1910            const form = document.querySelector('form[action$="/cart/add"]');
1911            return form.submit();
1912        }
1913
1914        if (window.OCUPrecheckout) {
1915            event.preventDefault();
1916            event.stopPropagation();
1917
1918            // if (lqd.is_precheckout) requireOptionSelectors();
1919
1920            return this.cart.getLqd().then(function(res) {
1921                OCUIncart.cart_items = res.data.cart.items;
1922                // OCUIncart.cart_products_json = res.data.cart_products;
1923
1924                if ((utils.store.get('amazonPayInitiated') || lqd.is_precheckout) && !utils.cookie.get('ocu_shown_popup')) {
1925                    requireOptionSelectors();
1926                    return self.initPrecheckout(event,target);
1927                }
1928
1929                self.checkout({ redirect: true })
1930            }).catch(function(err) {
1931                self.checkout({ redirect: true })
1932            });
1933        }
1934
1935        if (target.dataset.customBuyNow) {
1936            event.preventDefault();
1937            event.stopPropagation();
1938
1939            var id = target.dataset.varientId;
1940            var qty = target.dataset.itemQuantity;
1941            var data = { id: id, quantity: qty };
1942            var handle = function() { self.checkout({ redirect:true }) };
1943            var onError = function() { alert('Network Error') };
1944
1945            this.cart.add(null, null, data).then(handle).catch(onError);
1946        }
1947
1948        var isIPhone = /iPhone/.test(navigator.userAgent);
1949        return this.check(event, target);
1950
1951        // var isSmar7 = window.SMAR7 && SMAR7.bundle_app === 'yes';
1952        // var smar7Modal = document.querySelector('.sm7-popup');
1953        // var needSkipClick = (event.isTrusted || isIPhone);
1954
1955        // if ((!event.isTrusted || isIPhone)) return this.checkout({ redirect: true });
1956        // if (needSkipClick && this.integrations.list.bold.productUpsell) {
1957        //     if (target.name === 'checkout') return this.checkout({ redirect: true });
1958        // }
1959        // if (!needSkipClick) return this.checkout({ redirect: true });
1960        // if (isSmar7 && (!event.isTrusted || isIPhone)) return;
1961
1962        // if (smar7Modal) return this.integrations.smar7();
1963        // else return this.check(event, target);
1964        // if ((!event.isTrusted || isIPhone) && !smar7Modal) return this.check(event, target);
1965        // if (needSkipClick && this.integrations.list.bold.productUpsell) {
1966        //     if (target.name === 'checkout') return this.check(event, target);
1967        // }
1968        // if (!needSkipClick && !isSmar7) return this.check(event, target);
1969        // if (isSmar7 && (!event.isTrusted || isIPhone)) return;
1970
1971        // if (smar7Modal) return this.integrations.smar7();
1972        // else return this.check(event, target);
1973    },
1974
1975    initPrecheckout: function(event, target) {
1976        event.preventDefault();
1977        event.stopPropagation();
1978
1979        if (utils.store.get('amazonPayInitiated')) return null;
1980
1981        const form = target.closest('[action="/cart"], [action="/checkout"]');
1982        if (form && !this.validate(form)) {
1983            clearTimeout(utils.store.get('fallback').id);
1984            utils.store.set('submitted', false);
1985            return form.reportValidity();
1986        }
1987
1988        if (window.disableBodyScroll) disableBodyScroll();
1988 // fix locked scroll at mobile for themes with libs.min.js
1989
1990        const isRechargeEnabled = lqd.integrate_with_recharge && !lqd.disabled_by_subscription_app;
1991
1992        const precheckoutConfig = {
1993            utils: utils,
1994            Updater: Updater,
1995            is_recharge_enabled: isRechargeEnabled
1996        };
1997
1998        return OCUPrecheckout(precheckoutConfig);
1999    },
2000
2001    validate: function(form) {
2002        var elems = form.querySelectorAll('[type="text"], [type="checkbox"], select, textarea');
2003
2004        var requiredElems = Array.prototype.filter.call(elems, function(el) {
2005            return el && el.required;
2006        });
2007
2008        if (!requiredElems.length) return true;
2009
2010        return !requiredElems.some(function(el) {
2011            return !el.checkValidity();
2012        });
2013    },
2014
2015    allowUpsells: function(el) {
2016        if (window.mixed_cart) return; //integration with Recurring Orders & Subscriptions by Bold
2017        if (window.popup_upsell && !document.querySelector('#upsellclosebtn')) return; // integration with Product Upsell
2018        if (window.ol_checkout_ok instanceof Function && !ol_checkout_ok()) return; // integration with OrderLogic
2019        if (el.dataset.zpaSubmitButton === '') return; // integration with ZipifyPages CRM popup
2020
2021        return true;
2022    },
2023
2024    fallbackRedirect: function() {
2025        var fallback = utils.store.get('fallback');
2026        fallback.id = setTimeout(function() { this.checkout({ redirect:true }) }.bind(this), fallback.timeout);
2027        utils.store.set('fallback', fallback);
2028    },
2029
2030    handleMonkeyPatching: function() {
2031        const send = utils.store.get('XHR').send;
2032
2033        if (XMLHttpRequest.prototype.send !== send) {
2034            XMLHttpRequest.prototype.send = send;
2035        }
2036    },
2037
2038    handleClick: function(e) {
2039        if (lqd.template_name === 'page' && !e.isTrusted) return;
2040
2041        if (e.target.name === 'update' || e.target.closest('[name="update"]')) return;
2042
2043        if (!lqd.amazon_pay && e.target.closest('form[action^="https://payments.amazon"]')) return;
2044
2045        if (this.helpers.zpPreventRedirect(e.target)) return;
2046
2047        if (this.helpers.isBuyNow(e)) return new BuyNow(e);
2048
2049        // if (this.helpers.checkDirectCheckoutButtons(e.target)) {
2050        //     e.target.dataset.ocuCheckout = true;
2051        //     utils.store.set('redirect_url', '/checkout');
2052        // }
2053
2054        if (e.target.dataset.ocuCheckoutLink || e.target.closest('[data-ocu-checkout-link]')) {
2055            e.preventDefault();
2056            var href = (e.target.dataset.ocuCheckoutLink ? e.target : e.target.closest('[data-ocu-checkout-link]')).href;
2057            if (utils.store.get('isPermalinkHandling')) return;
2058            utils.store.set('isPermalinkHandling', true);
2059            var result = this.integrations.handlePermalink(href, 'redirect');
2060            return result.promise.then(result.callback);
2061        }
2062
2063        if ((e.target.dataset.skipCart === 'true' || e.target.closest('[data-skip-cart]')) && utils.store.get('submitted')) {
2064            e.preventDefault();
2065            e.stopPropagation();
2066            e.stopImmediatePropagation();
2067            return;
2068        }
2069
2070        var target = this.helpers.checkSelector(e.target);
2071
2072        if (target) this.init(e, target);
2073    },
2074
2075    handleMousedown: function(e) {
2076        var self = this;
2077
2078        if (e.target.dataset.skipCart !== 'true' && !e.target.closest('[data-skip-cart]')) return;
2079
2080        if (e.target.name === 'update' || e.target.closest('[name="update"]')) return; // 283fa429
2081
2082        if (this.helpers.zpPreventRedirect(e.target)) return;
2083
2084        var amazonForm = e.target.closest('form[action^="https://payments.amazon"]');
2085        if (amazonForm && lqd.amazon_pay) {
2086            e.preventDefault();
2087            e.stopPropagation();
2088
2089            var path = {
2090                ocu: lqd.proxy_url + '/amazon/forward',
2091                shopify: amazonForm.querySelector('[name="redirectURL"]').value
2092            };
2093
2094            var handle = function() {
2095                self.checkout()
2096                    .then(function(res) { location = path[res.status ? 'ocu' : 'shopify'] })
2097                    .catch(function(res) { location = path.shopify })
2098            };
2099
2100            var onError = function(form) {
2101                form.submit();
2102            };
2103
2104            if (!e.target.closest('form[action="/cart/add"]')) return handle();
2105
2106            var cart = document.querySelector('form[action="/cart/add"]');
2107            var button = amazonForm.querySelector('[type="submit"]');
2108            return self.cart.add(cart, button, path).then(handle).catch(onError.bind(null, amazonForm));
2109        }
2110
2111        var form = e.target.closest('form[action="/cart/add"]') || document.querySelector('form[action="/cart/add"]');
2112        var button = e.target.dataset.skipCart === 'true' ? e.target : e.target.closest('[data-skip-cart]');
2113
2114        if (!form) return;
2115
2116        e.preventDefault();
2117        e.stopPropagation();
2118        utils.store.set('submitted', true);
2119
2120        var handle = function() { self.checkout({ redirect:true }) };
2121        var onError = function(form) { form.submit(); };
2122        return self.cart.add(form, button).then(handle).catch(onError.bind(null, form));
2123    },
2124
2125    listenEvents: function() {
2126        const touchEventConfig =  {
2127            capture: true,
2128            passive: false
2129        };
2130
2131        document.addEventListener('mousedown', this.integrations.amazonPay.bind(this), true);
2132        document.addEventListener('touchstart', this.handleClick.bind(this), touchEventConfig);
2133        document.addEventListener('click', this.handleClick.bind(this), true);
2134
2135        // handle cart drawers focus event for iOS <select>
2136        const stopProp = function(e) {
2137            e.stopImmediatePropagation();
2138        };
2139
2140        window.addEventListener('focus', stopProp, true);
2141
2142        window.addEventListener('pagehide', this.helpers.disableButtons);
2143
2144        window.addEventListener('locationchange', function() {
2145            document.removeEventListener('click', this.handleClick.bind(this), true);
2146            document.addEventListener('click', this.handleClick.bind(this), true);
2147        }.bind(this));
2148
2149        window.addEventListener('pageshow', function(e) {
2150            if (e.persisted) location.reload();
2151            this.helpers.disableButtons();
2152        }.bind(this));
2153
2154        // if (lqd.template_name !== 'cart') return;
2155        // document.addEventListener('mousedown', this.cart.update.bind(this), true);
2156        // document.addEventListener('change', this.cart.state.bind(this));
2157    }
2158};
2159
2160function amazonPay(e) {
2161    const self = this;
2162    const amazonForm = e.target.closest('form[action^="https://payments.amazon"]');
2163
2164    if (!amazonForm || !lqd.amazon_pay) return;
2165
2166    e.preventDefault();
2167    e.stopPropagation();
2168
2169    utils.store.set('amazonPayInitiated', true);
2170
2171    const addForm = e.target.closest('form[action="/cart/add"]');
2172    const path = lqd.proxy_url + '/amazon/forward';
2173
2174    const getToken = function(url) {
2175        const escaped = lqd.proxy_url.replace(/\//g, '\\/');
2176        const reg = new RegExp(escaped + '\\/((?:\\w+[-_]?)+)\\/?');
2177        const match = reg.exec(url);
2178
2179        return match && match[1];
2180    };
2181
2182    const fallback = function() {
2183        amazonForm.submit();
2184    };
2185
2186    const onSuccess = function(res) {
2187        if (!res.status) return fallback();
2188
2189        const token = getToken(res.checkout_url);
2190        if (!token) return fallback();
2191
2192        utils.cookie.set('ocu_checkout_token', token);
2193        location.assign(path);
2194    };
2195
2196    if (!addForm) {
2197        return self.checkout().then(onSuccess).catch(fallback);
2198    }
2199
2200    const cart = document.querySelector('form[action="/cart/add"]');
2201    const button = amazonForm.querySelector('[type="submit"]');
2202
2203    self.cart.add(cart, button)
2204        .then(self.checkout)
2205        .then(onSuccess)
2206        .catch(fallback);
2207}
2208
2209function Bold() {
2210    this.isBoldRecuring = function() {
2211        var boldRecurringEl = document.querySelector('[data-bold-recurring]');
2212        var isBoldRecuring = boldRecurringEl && boldRecurringEl.checked;
2213        return isBoldRecuring;
2214    };
2215
2216    this.upsellPopup = function(target) {
2217        var modalButtons = [
2218            target.querySelector('[data-bold-component-id="upsell_continue"]'),
2219            target.querySelector('[data-bold-component-id="upsell_no_thanks"]'),
2220            target.querySelector('#bold-modal__btn-close')
2221        ];
2222
2223        modalButtons.forEach(function(item) {
2224            if (!item) return;
2225            item.addEventListener('click', function(e) {
2226                setTimeout(function() {
2227                    self.checkout({ redirect: true });
2228                }, 500);
2229            });
2230        });
2231    };
2232
2233    this.initRecurring = function() {
2234        var clones = document.querySelectorAll('[data-ocu-clone]');
2235        var clone = Array.prototype.filter.call(clones, function(i) { return i && !i.dataset.ocuCheckout; })[0];
2236        if (clone) clone.click();
2237    };
2238
2239    this.recurring = function(form, token) {
2240        var cfg = {
2241            protocol: 'https://',
2242            host: 'recurringcheckout.com',
2243            proxy: '/s/',
2244            permanent: /(\w+)\.myshopify\.com/.exec(BOLD.common.Shopify.shop.permanent_domain)[1],
2245            path: '/checkout/recurring/',
2246            query: '?shop_url=' + location.host
2247        };
2248
2249        form.action = cfg.protocol + cfg.host + cfg.proxy + cfg.permanent + cfg.path + token + cfg.query;
2250        form.submit();
2251    };
2252}
2253
2254function BuyNowBtns() {
2255    if (!lqd.themeSkipCart) return;
2256
2257    const self = this;
2258
2259    const buyNowBtn = document.querySelector('button[id="AddToCart"]');
2260    if (!buyNowBtn) return;
2261
2262    const innerTextEl = buyNowBtn.querySelector('#AddToCartText');
2263    if (!/buy\s*(it)?\s*now/i.test(innerTextEl && innerTextEl.innerText)) return;
2264
2265    const cb = function() { self.checkout({ redirect: true }); };
2266    const onError = function(form) { form.submit() };
2267
2268    buyNowBtn.addEventListener('click', function(e) {
2269        e.preventDefault();
2270        const form = buyNowBtn.closest('form[action="/cart/add"]');
2271        self.cart.add(form, e.target).then(cb).catch(onError.bind(null, form));
2272    });
2273}
2274
2275function HandlePermalink(url, redirect) {
2276    var self = this;
2277    var reg = utils.store.get('permalink');
2278    var match = reg.exec(url);
2279    var cfg = { redirect: redirect };
2280
2281    if (!match) return {
2282        promise: new Promise(function(resolve) { resolve({ checkout_url: url }); }),
2283        callback: function(res) {
2284            return redirect ? location.assign(url) : new Promise(function(resolve) { resolve(res); })
2285        }
2286    };
2287
2288    var discount = match[2];
2289    if (discount) cfg.params = [{ discount: discount }];
2290
2291    var groups = match[1].split(',');
2292
2293    var data = groups.reduce(function(acc, item, i, arr) {
2294        var id = +item.split(':')[0];
2295        var qty = +item.split(':')[1];
2296
2297        var cartItem = lqd.cart_variants_json.filter(function(item) { return item.id === id })[0];
2298        if (cartItem) qty += cartItem.quantity;
2299
2300        if (acc) acc += '&';
2301        return acc += 'updates[' + id + ']=' + qty;
2302    }, '');
2303
2304    return {
2305        promise: self.cart.bulkAdd(data),
2306        callback: function() { return self.checkout(cfg); }
2307    };
2308}
2309
2310function CartDrawer(target) {
2311    var form = target.querySelector('form[action="/cart"]');
2312    var btn = form && form.querySelector('input[type="submit"]');
2313    if (!btn) return;
2314
2315    btn.type = 'button';
2316    btn.addEventListener('click', function(e) {
2317        self.checkout({ redirect: true });
2318    });
2319}
2320
2321function CartPopup() {
2322    var btn = document.querySelector('.bkt--upsell-target-checkout');
2323    if (!btn) return;
2324
2325    var cfg = {
2326        tag: 'input ',
2327        type: 'type="button" ',
2328        style: 'style="position:absolute;left:0;top:0;width:100%;height:100%;cursor:pointer;opacity:0" ',
2329        data: 'data-ocu-dialog-btn '
2330    };
2331
2332    btn.style.position = 'relative';
2333    btn.insertAdjacentHTML('beforeend','<'+cfg.tag+cfg.type+cfg.style+cfg.data+'>');
2334
2335    var clone = document.querySelector('[data-ocu-dialog-btn]');
2336    clone.addEventListener('click', function(e) {
2337        e.stopPropagation();
2338        btn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="bkt--nc-icon" x="0px" y="0px" width="64px" height="15px" viewBox="0 0 64 64"><g><circle class="nc-dots-7-2" data-color="color-2" fill="#445FFF" cx="32" cy="32" r="26" transform="translate(6.26687999999989 6.26687999999989) scale(0.8041600000000034)" style="opacity:0.8041600000000034"></circle><circle class="nc-dots-7-1" fill="#445FFF" cx="-72" cy="32" r="26" transform="translate(3.2332800000000272 12.933120000000109) scale(0.5958399999999966)" style="opacity:0.5958399999999966"></circle><circle class="nc-dots-7-3" fill="#445FFF" cx="132" cy="32" r="26" transform="translate(33.6 19.2) scale(0.4)" style="opacity:0.4"></circle></g></svg>';
2339        function setAttributes(e,t){for (var i in t)e.setAttribute(i,t[i]);} function dotsSevenStep(e){startDots7||(startDots7=e);var t=e-startDots7,n=Math.min(t/250,4);n=4==n?0:n,decimalRot=n%1,upperInteger=Math.ceil(n),1e3>t||(startDots7+=1e3);if (circleDots7[0][0]){window.requestAnimationFrame(dotsSevenStep);var a=[],r=[],o=[],s=[-72,32,132],c=[32,32,32];for (j = 0;  circleDots7Number > j ; j++) {for (a[0]=a[1]=a[2]=.4,1==upperInteger?(a[0]=1-3*decimalRot/5,a[1]=.4+3*decimalRot/5):2==upperInteger?(a[1]=1-3*decimalRot/5,a[2]=.4+3*decimalRot/5):3==upperInteger?(a[1]=.4+3*decimalRot/5,a[2]=1-3*decimalRot/5):4==upperInteger?(a[0]=.4+3*decimalRot/5,a[1]=1-3*decimalRot/5):a[0]=1,i=0;3>i;i++)r[i]=(1-a[i])*s[i],o[i]=(1-a[i])*c[i],setAttributes(circleDots7[i][j],{
2340transform: 'translate('+r[i]+' '+o[i]+') scale('+a[i]+')',
2341style: 'opacity:'+a[i]+';'
2342});}}}!function(){var e=0;window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var i=(new Date).getTime(),n=Math.max(0,16-(i-e)),a=window.setTimeout(function(){t(i+n);},n);return e=i+n,a;});}();var circleDots7=[],startDots7=null;circleDots7[0]=document.getElementsByClassName('nc-dots-7-1'),circleDots7[1]=document.getElementsByClassName('nc-dots-7-2'),circleDots7[2]=document.getElementsByClassName('nc-dots-7-3'),circleDots7Number = circleDots7[0].length,window.requestAnimationFrame(dotsSevenStep);
2343        self.checkout({ redirect: true });
2344    });
2345}
2346
2347function CheckoutLinks() {
2348    var checkoutLinks = document.querySelectorAll('a[href="/checkout"]');
2349
2350    Array.prototype.forEach.call(checkoutLinks, function(link) {
2351        if (!link) return;
2352
2353        link.addEventListener('click', function(e) {
2354            e.stopPropagation();
2355            e.preventDefault();
2356            self.checkout({ redirect: true });
2357        });
2358    });
2359}
2360
2361function Discounts() {
2362    var discount = document.querySelector('input[name="discount"]');
2363    var discountCC = utils.cookie.get('discount_code'); // integration with CouponCountdown
2364    var discountShare = utils.cookie.get('ocu-share-discount');
2365    var isPopupShown = utils.cookie.get('popupcookie');
2366
2367    if (window._chpmgr && !isPopupShown) return; // integration with chilliapps exit popup
2368    if (!discount && !discountCC && !discountShare) return;
2369
2370    var code;
2371    if (discount) code = discount.value;
2372    if (discountCC) {
2373        code = discountCC;
2374        utils.cookie.remove('discount_code');
2375    }
2376
2377    if (discountShare) {
2378        code = discountShare;
2379        utils.cookie.remove('ocu-share-discount');
2380    }
2381
2382    var param = {
2383        name: 'discount',
2384        value: encodeURIComponent(code)
2385    };
2386
2387    var params = utils.store.get('params');
2388
2389    if (discountShare && lqd.template_name === 'page' || !param.value) return; // zp & shareable discount
2390
2391    params.arr.push(param);
2392    utils.store.set('params', params);
2393}
2394
2395function Recharge() {
2396    var self = this;
2397
2398    this.getCheckoutUrl = function(cart) {
2399        const gaLinker = function() {
2400            try {
2401                return '&' + ga.getAll()[0].get('linkerParam');
2402            } catch (e) {
2403                return '';
2404            }
2405        };
2406
2407        const customerParams = function() {
2408            return lqd.customer.id ? '&customer_id=' + lqd.customer.id + '&customer_email=' + lqd.customer.email : '';
2409        };
2410        const token = cart.token || utils.cookie.get('cart');
2411        const url = 'https://checkout.rechargeapps.com/r/checkout?myshopify_domain='
2412            + lqd.permanent_domain
2413            + '&cart_token='
2414            + token
2415            + gaLinker()
2416            + customerParams();
2417
2418        return url;
2419    };
2420
2421    this.isSubscription = function(res) {
2422        var cart = res.cart || res.data.cart || res.data;
2423
2424        return cart.items.some(function(item) {
2425            return item.properties && (item.properties.subscription_id || item.properties.shipping_interval_frequency);
2426        });
2427    };
2428
2429    this.processCart = function() {
2430        window.reChargeProcessCart = function() {
2431            self.checkout({ redirect: true });
2432        };
2433    };
2434
2435    this.init = function(res, target) {
2436        var cart = res.cart || res.data.cart || res.data;
2437        var form = target && target.closest('form');
2438
2439        var url = (form && form.action === '/cart/add')
2440            ? '/cart'
2441            : self.getCheckoutUrl(cart);
2442
2443        return url;
2444    }
2445}
2446
2447function smar7() {
2448    var self = this;
2449
2450    var isSmar7Installed = ~document.head.innerHTML.indexOf('bundle-upsell');
2451    if (!isSmar7Installed) return;
2452
2453    var ctaBtns = document.querySelectorAll("[name='checkout'], [href^='/checkout'], form[action='/checkout'] [type='submit'], #checkout, [name='goto_pp'], .checkout_button");
2454    Array.prototype.forEach.call(ctaBtns, function(btn) {
2455        btn.disabled = true;
2456    });
2457
2458    var i = 0;
2459    var int = setInterval(function() {
2460        if ((++i && i > 7) || (window.SMAR7 && SMAR7.bundle)) {
2461            Array.prototype.forEach.call(ctaBtns, function(btn) {
2462                btn.disabled = false;
2463            });
2464            clearInterval(int);
2465        }
2466    }, 3000);
2467
2468    var redirect = function(discount) {
2469        var button, path, params = utils.store.get('params');
2470
2471        if (discount) {
2472            SMAR7.util.setCookie('smar7coupon', discount, 3600);
2473
2474            params.arr.push({
2475                name: 'discount',
2476                value: encodeURIComponent(discount)
2477            });
2478        } else {
2479            discount = SMAR7.bundle.helper.determineCoupon && SMAR7.bundle.helper.determineCoupon();
2480        }
2481
2482        if (SMAR7.paypal) {
2483            path = '/checkout?goto_pp=paypal_express&discount=' + encodeURIComponent(discount);
2484            button = document.querySelector('[name="goto_pp"]');
2485        } else {
2486            path = '/checkout?discount=' + encodeURIComponent(discount);
2487            button = document.querySelector(
2488                '[name="checkout"], [href="/checkout"], form[action="/checkout"] input[type="submit"], #checkout'
2489            );
2490        }
2491
2492        utils.store.set('params', params);
2493        self.checkout({ redirect: true });
2494    };
2495
2496    var handle = function() {
2497        if (window.SMAR7 && SMAR7.bundle) SMAR7.bundle.redirect = redirect;
2498    };
2499
2500    document.addEventListener('click', handle, true);
2501};
2502
2503function Integrations() {
2504    var self = this;
2505    var bold = new Bold();
2506    var recharge = new Recharge();
2507
2508    this.list = {
2509        bold: {
2510            get isInstalled() { return window.BOLD && BOLD.apps_installed; },
2511            get productOptions() { return this.isInstalled && BOLD.apps_installed['Product Options']; },
2512            get productUpsell() { return this.isInstalled && BOLD.apps_installed['Product Upsell']; },
2513        },
2514        recharge: {
2515            isSubscriptionProduct: function(cart) {
2516                return cart.items.some(function(item) {
2517                    return item.properties && (item.properties.subscription_id || item.properties.shipping_interval_frequency);
2518                });
2519            }
2520        }
2521    };
2522
2523
2524    // for future integartion
2525    this.boldUpsellCheckoutOffer = function() {
2526        if (!window.BOLD || !window.Shopify) return;
2527
2528        var data  = {
2529            data: {
2530                cart: {
2531                  items: lqd.cart.items,
2532                  total_price: lqd.cart.total_price
2533                }
2534            }
2535        };
2536
2537        return ajax.request({
2538            method: 'post',
2539            url: window.BOLD.upsell.path + window.Shopify.shop + '/validate_checkout_offer',
2540            data: JSON.stringify(data)
2541        });
2542    };
2543
2544    this.needSkipClick = this.list.bold.productOptions || this.list.bold.productUpsell;
2545
2546    this.start = function() {
2547        if (!lqd.upsell_cart_include_upsells) return;
2548        if (lqd.template_name !== 'cart') this.main();
2549        // try {
2550        //     this[(lqd.template_name === 'cart' ? 'cart' : 'main')]();
2551        // } catch (e) { console.warn(e); }
2552    };
2553
2554    this.main = function() {
2555        var handleMutation = function(mutation) {
2556            if (
2557                mutation.type !== 'attributes'
2558                || mutation.target !== document.querySelector(self.ocuSelectors)
2559                || !/cart-?(popup|container|drawer)/i.test(mutation.target.id)
2560                || !/bold-upsell-modal-window/i.test(mutation.target.id)
2561            ) return;
2562
2563            if (mutation.target.id === 'bold-upsell-modal-window') {
2564                return self.boldUpsellPopup(mutation.target);
2565            }
2566
2567            var checkoutButtons = document.querySelectorAll(self.ocuSelectors);
2568            // var dataOcuCheckoutValue = checkoutButtons[0].dataset.ocuCheckout === 'true';
2569            var dataDisableRechargeValue = checkoutButtons[0].dataset.disableRecharge === 'true';
2570            var forEach = Array.prototype.forEach;
2571
2572            forEach.call(checkoutButtons, function(item) {
2573                if (item.innerHTML === 'Checkout') item.removeAttribute('onclick'); // Integration with AceCase store
2574            });
2575
2576            // if (!dataOcuCheckoutValue) { // Integration with MyDietChief store
2577            //     Array.prototype.forEach.call(checkoutButtons, function(item) {s
2578            //         item.dataset.ocuCheckout = true;
2579            //     });
2580            // }
2581
2582            if (lqd.disabled_by_subscription_app && dataDisableRechargeValue) return;
2583
2584            forEach.call(checkoutButtons, function(item) {
2585                item.disableRecharge = true;
2586            });
2587
2588            self.cartPopup();
2589            self.cartDrawer(mutation.target);
2590            self.checkoutLinks();
2591            self.listenEvents();
2592        };
2593
2594        var handleMutations = function(mutations) { mutations.forEach(handleMutation); };
2595
2596        var config = {
2597            childList: true,
2598            subtree: true,
2599            attributes: true
2600        };
2601
2602        new MutationObserver(handleMutations).observe(document, config);
2603
2604        self.buyNowBtns();
2605        self.recharge.processCart();
2606        self.revy();
2607    };
2608
2609    // this.cart = function() {
2610    //     // var handleMutation = function(mutation) {
2611    //     //     var target = document.querySelector(self.ocuSelectors);
2612    //     //     if (mutation.type === 'attributes' && mutation.target === target) {
2613    //     //         self.smar7();
2614    //     //     }
2615    //     // };
2616
2617    //     // var handleMutations = function(mutations) { mutations.forEach(handleMutation); };
2618
2619    //     // var config = {
2620    //     //     subtree: true,
2621    //     //     attributes: true
2622    //     // };
2623
2624    //     // new MutationObserver(handleMutations).observe(document, config);
2625
2626    //     self.revy();
2627    // };
2628
2629    this.revy = function() {
2630        if (window.RevyApp && RevyApp.events) RevyApp.events.updatedCart = [];
2631    };
2632
2633    this.discounts = Discounts;
2634    this.smar7 = smar7;
2635    this.isBoldRecuring = bold.isBoldRecuring;
2636    this.boldRecurring = bold.initRecurring;
2637    this.bold = bold.recurring;
2638    this.boldUpsellPopup = bold.upsellPopup;
2639    this.cartPopup = CartPopup;
2640    this.cartDrawer = CartDrawer;
2641    this.checkoutLinks = CheckoutLinks;
2642    this.handlePermalink = window.oneClickUpsellHandlePermalink = HandlePermalink.bind(this);
2643    this.buyNowBtns = BuyNowBtns;
2644    this.recharge = recharge;
2645    this.amazonPay = amazonPay;
2646    // this.amazonPay = function() { AmazonPay(self) };
2647
2648    this.start();
2649}
2650
2651function HistoryApi() {
2652    history.pushState = (function(f) {
2653        return function() {
2654            var result = f.apply(this, arguments);
2655            window.dispatchEvent(new Event('pushState'));
2656            window.dispatchEvent(new Event('locationchange'));
2657            return result;
2658        };
2659    })(history.pushState);
2660
2661    history.replaceState = (function(f) {
2662        return function() {
2663            var result = f.apply(this, arguments);
2664            window.dispatchEvent(new Event('replaceState'));
2665            window.dispatchEvent(new Event('locationchange'));
2666            return result;
2667        };
2668    })(history.replaceState);
2669
2670    window.addEventListener('popstate', function() {
2671        window.dispatchEvent(new Event('locationchange'));
2672    });
2673}
2674
2675// function Verify() {
2676//     var self = this;
2677//     var target;
2678
2679//     this.init = function(target) {
2680//         target = target;
2681
2682//         if (window.catchXHR) {
2683//             catchXHR = false;
2684//             XMLHttpRequest.callbacks = [];
2685//         }
2686//         if (window.beeketingWPJP) beeketingWPJP = {};
2687
2688//         self.checkout()
2689//             .then(self.handle)
2690//             .catch(self.helpers.redirect);
2691//     };
2692
2693//     this.data = function() {
2694//         var options = {
2695//             method: 'get',
2696//             url: self.helpers.getProxyUrl() + utils.store.get('lqdCart')
2697//         };
2698
2699//         return ajax.request(options);
2700//     };
2701
2702//     this.upsells = function(res) {
2703//         if (self.integrations.recharge.isSubscription(res)) {
2704//             var url = self.integrations.recharge.init(res, target);
2705//             utils.store.set('redirect_url', url);
2706//             res.data.redirect_url = url;
2707
2708//             if (!lqd.integrate_with_recharge) {
2709//                 return new Promise(function(resolve) { resolve(res); });
2710//             }
2711//         }
2712
2713//         res = self.cart.modify(res);
2714
2715//         const cart = res.data;
2716//         return self._addToken(cart)
2717//             .then(function(c) {
2718//                 return self._makeCheckUpsells(c, res);
2719//             });
2720//     };
2721
2722//     this.handle = function(res) {
2723//         // var isAppSkipCart = lqd.skip_cart && /index|collection|product/.test(lqd.template_name);
2724//         // var isThemeSkipCart = lqd.themeSkipCart;
2725//         // if (cart.redirect_url) return location = cart.redirect_url;
2726//         if (!res.status && !lqd.themeSkipCart) return self.helpers.redirect(res);
2727//         // if (!res.status && !lqd.themeSkipCart) return location.assign('/cart');
2728
2729//         location = res.status || lqd.themeSkipCart
2730//             ? res.checkout_url
2731//             : '/cart';
2732//     };
2733
2734//     this._makeCheckUpsells = function(cart, res) {
2735//         cart.items = self.helpers.filterCartItemFields(cart.items);
2736
2737//         const data = {
2738//             shop_domain: lqd.current_domain,
2739//             cart: cart,
2740//             require_paypal: utils.store.get('requirePayPal'),
2741//             customer: { id: res.data.customer_id },
2742//             incarts: utils.store.get('incarts')
2743//             // incarts: { 47: { status: 'declined', shopify_variant_id: 16052480475207, quantity: 1, shown_at: Date.now() }}
2744//             // incarts: { 47: { status: 'offered', shopify_variant_id: 16052480475207, quantity: 1, shown_at: Date.now() }}
2745//         };
2746
2747//         const options = {
2748//             method: 'post',
2749//             url: self.helpers.getProxyUrl() + utils.store.get('checkUpsells'),
2750//             data: utils.serialize(data, { indices: true })
2751//         };
2752
2753//         return ajax.request(options);
2754//     };
2755
2756
2757//     this._addToken = function(cart) {
2758//         const store_token = utils.store.get('cart_token');
2759//         return new Promise(function(resolve, reject) {
2760//             if (!cart.token && store_token) {
2761//                 cart.token = store_token;
2762//                 resolve(cart);
2763//             } else if (!cart.token) {
2764//                 self.cart.get().then(function(res) {
2765//                     cart.token = res.data.token;
2766//                     resolve(cart);
2767//                 });
2768//             } else {
2769//                 resolve(cart);
2770//             }
2771//         });
2772//     }
2773// };
2774
2775const appendChain = window.Symbol ? Symbol('appendChain') : 'oneClickUpsellAppendChain';
2776Object[appendChain]=function(t,o){for(var n=o,e=o2nd=oLast=t instanceof this?t:new t.constructor(t),r=this.getPrototypeOf(o2nd);r!==Object.prototype&&r!==Function.prototype;r=this.getPrototypeOf(o2nd))o2nd=r;return o.constructor===String&&(n=Function.prototype,e=Function.apply(null,Array.prototype.slice.call(arguments,1)),this.setPrototypeOf(e,oLast)),this.setPrototypeOf(o2nd,n),e};
2777
2778function Updater(res) {
2779    this.res = res;
2780    this.cart = res && res.data.cart;
2781    this.isCartUpdated = utils.store.get('cartUpdated');
2782    this.isOfferDeclined = utils.store.get('offerDeclined');
2783    this.options = {
2784        add:    { method: 'post', url: '/cart/add.js' },
2785        change: { method: 'post', url: '/cart/change.js' },
2786        update: { method: 'post', url: '/cart/update.js' }
2787    };
2788    this.regs = {
2789        attributes: /\[(.+?)\]/,
2790        key: /(?:updates_(?:.*?))?(\d+:\w+)/,
2791        id: /(?:updates_(?:.*?))?(\d+):?/
2792    };
2793    this.selectors = {
2794        form: 'form[action^="/checkout"], form[action^="/cart"]',
2795        attributes: '[name^="attributes["]',
2796        currency: '[name="currency"]',
2797        updates: '[name^="updates["]',
2798        note: '[name="note"]'
2799    };
2800    this.data = {
2801        currency: lqd.shop_currency,
2802        attributes: {},
2803        lineItems: [],
2804        updates: {},
2805        changes: [],
2806        sameIds: [],
2807        note: ''
2808    };
2809    this.payload = {
2810        updates: {},
2811        currency: '',
2812        note: null
2813    };
2814}
2815Updater.prototype = {
2816    init: function() {
2817        if (this.isCartUpdated && !this.isOfferDeclined) return this.resolve(this.res);
2818        if (!this.form) return this.updateCurrency();
2819
2820        this.buildPayload();
2821        if (this.res) return this.updateCart();
2822    }
2823};
2824const UpdaterRequests = {
2825    updateCart: function(data, isUpgrade) {
2826        const options = this._getOptions('update', data, isUpgrade);
2827        const params = isUpgrade && data.changeData;
2828        const updateCart = function() { return ajax.request(options); };
2829
2830        return this._updateSameId(params).then(updateCart);
2831    },
2832    addToCart: function(data) {
2833        const options = this._getOptions('add', data);
2834
2835        return ajax.request(options);
2836    },
2837    changeCart: function(data, chain) {
2838        const options = this._getOptions('change', data);
2839        const request = !chain || chain instanceof Object
2840            ? ajax.request(options)
2841            : function() { return ajax.request(options); };
2842
2843        return request;
2844    },
2845    updateCurrency: function() {
2846        if (!this.needCurrencyUpdate) return this.resolve(this.res);
2847
2848        this.getCurrency();
2849        const options = this._getOptions('update', { currency: this.data.currency });
2850
2851        return ajax.request(options).catch(this.resolve.bind(this, this.res));
2852    },
2853    _updateSameId: function(changeData) {
2854        if (!this.data.sameIds.length) return this.resolve(false);
2855
2856        const allRequests = this._getCartChangeRequests(changeData);
2857        const requestChain = this._requestChain(allRequests);
2858
2859        return new Promise(requestChain.bind(this));
2860    },
2861    _getCartChangeRequests: function(changeData) {
2862        const cb = function(acc, change) {
2863            if (!change.id && !change.line) return acc;
2864            if (changeData) {
2865                const id = changeData.id;
2866                const line = changeData.__line || changeData.line;
2867                const isUpgradeItem = change.line === line || (id && change.id === id);
2868                if (isUpgradeItem) return acc;
2869            }
2870
2871            delete change.__variantId;
2872            acc.push(this.changeCart(change, 'chain'));
2873
2874            return acc;
2875        };
2876
2877        return this.data.changes.reduce(cb.bind(this), []);
2878    },
2879    _requestChain: function(allRequests) {
2880        return function(resolve, reject) {
2881            if (!allRequests.length) return resolve(false);
2882            !function createRequest() {
2883                const req = allRequests.pop();
2884                const cb = function(res) {
2885                    if (allRequests.length) return createRequest();
2886                    resolve(res);
2887                };
2888
2889                return req().then(cb).catch(reject);
2890            }();
2891        }
2892    },
2893    _getOptions: function(type, data, isUpgrade) {
2894        const options = Object.assign({}, this.options[type]);
2895        options.data = isUpgrade ? data.updateData : (data || this.payload);
2896        return options;
2897    }
2898};
2899const UpdaterPayload = {
2900    buildPayload: function() {
2901        this.getUpdates();
2902        this.getAttributes();
2903        this.getCurrency();
2904        this.getNote();
2905
2906        Object.keys(this.payload).forEach(function(key) {
2907            this.payload[key] = this.data[key];
2908        }.bind(this));
2909
2910        return this.payload;
2911    },
2912    getUpdates: function() {
2913        this.updateElements.forEach(function(item) {
2914            const isNoId = !item || (!item.dataset.id && !item.id);
2915            if (isNoId) return;
2916
2917            const quantity = +item.value;
2918            const line = this._getLine(item);
2919            const key = this._getKey(item);
2920            const id = this._getId(item);
2921            const isIdMissing = id.toString().length < 3;
2922
2923            this._saveLineItem(id, key, line, quantity);
2924            if (this.data.updates[id] || isIdMissing) this._saveSameId(id);
2925            this._saveChanges();
2926            if (~this.data.sameIds.indexOf(id) || isIdMissing) return;
2927            this._saveUpdates(id, quantity);
2928        }.bind(this));
2929
2930        return this.data.updates;
2931    },
2932    getAttributes: function() {
2933        if (!this.attributesElements.length) return {};
2934
2935        const cb = function(acc, item) {
2936            const attribute = this._getAttribute(item);
2937            if (!attribute.key) return acc;
2938
2939            acc[attribute.key] = attribute.value;
2940            return acc;
2941        };
2942
2943        this.data.attributes = this.attributesElements.reduce(cb.bind(this), {});
2944        return this.data.attributes;
2945    },
2946    getCurrency: function() {
2947        if (!this.currencyElement) return this.data.currency;
2948        this.data.currency = this.currencyElement.value;
2949        return this.data.currency;
2950    },
2951    getNote: function() {
2952        if (!this.noteElement) return '';
2953        this.data.note = this.noteElement.value;
2954        return this.data.note;
2955    }
2956};
2957const UpdaterPrecheckout = {
2958    acceptAddOffer: function(data) {
2959        return this.updateCart().then(this.addToCart.bind(this, data));
2960    },
2961    acceptUpgradeOffer: function(addData, cartItem, cartItemLine) {
2962        const data = this._getUpgradeOfferData(cartItem, cartItemLine);
2963        const changeData = Object.assign({}, data.changeData);
2964        delete changeData.__line;
2965
2966        return this.updateCart(data, 'upgrade')
2967            .then(this.changeCart.bind(this, changeData))
2968            .then(this.addToCart.bind(this, addData));
2969    },
2970    _getUpgradeOfferData: function(cartItem, cartItemLine) {
2971        const udpateData = Object.assign({}, this.payload);
2972        const lineItemByKey = this.data.lineItems.find(function(item) {
2973            return item.id === cartItem.key;
2974        });
2975        const lineItemById = this.data.lineItems.find(function(item) {
2976            return item.__variantId === cartItem.id;
2977        });
2978        const lineItem = lineItemByKey || lineItemById;
2979        const quantity = lineItem.quantity ? lineItem.quantity - 1 : 0;
2980        const changeData = {
2981            // __line: cartItemLine,
2982            // id: cartItem.key,
2983            line: cartItemLine,
2984            quantity: quantity
2985        };
2986
2987        delete udpateData.updates[cartItem.id];
2988
2989        return {
2990            updateData: udpateData,
2991            changeData: changeData
2992        };
2993    }
2994};
2995const UpdaterElements = {
2996    get forms() {
2997        const forms = document.querySelectorAll(this.selectors.form);
2998        const visibleForms = this.arrayFrom(forms).filter(function(form) {
2999            return form.offsetHeight || this._isVisible(form);
3000        }.bind(this));
3001
3002        return visibleForms;
3003    },
3004    get form() {
3005        const isNotePresent = this.forms.some(function(e) {
3006            return e.note && e.note.value;
3007        });
3008        const filteredForm = this.forms.find(function(form) {
3009            return form.querySelector(this.selectors.updates) && (isNotePresent ? form.note && form.note.value : true);
3010        }.bind(this));
3011
3012        return filteredForm;
3013    },
3014    get updateElements() {
3015        const arr = this.arrayFrom(this.form.querySelectorAll(this.selectors.updates));
3016
3017        return arr.filter(function(item) {
3018            return item && !item.disabled;
3019        });
3020    },
3021    get attributesElements() {
3022        const nodeList = this.form.querySelectorAll(this.selectors.attributes);
3023        return this.arrayFrom(nodeList);
3024    },
3025    get noteElement() {
3026        return this.form.querySelector(this.selectors.note);
3027    },
3028    get currencyElement() {
3029        return document.querySelector(this.selectors.currency);
3030    }
3031};
3032const UpdaterHelpers = {
3033    resolve: function(res) {
3034        return new Promise(function(resolve) { resolve(res); });
3035    },
3036    arrayFrom: function(nodeList) {
3037        if (!(nodeList instanceof NodeList)) nodeList = [nodeList];
3038        return Array.prototype.slice.call(nodeList);
3039    },
3040    _getLine: function(item) {
3041        return +(item.dataset.quantityItem || item.dataset.lineId);
3042    },
3043    _getKey: function(item) {
3044        const match = this.regs.key.exec(item.dataset.id || item.id);
3045        return match && match[1];
3046    },
3047    _getId: function(item) {
3048        const match = this.regs.id.exec(item.dataset.id || item.id);
3049        return match && +match[1];
3050    },
3051    _saveSameId: function(id) {
3052        delete this.data.updates[id];
3053        this.data.sameIds.push(id);
3054    },
3055    _saveLineItem: function(id, key, line, quantity) {
3056        const lineItem = {
3057            __variantId: id,
3058            quantity: quantity,
3059        };
3060
3061        if (line) lineItem.line = line;
3062        else if (key) lineItem.id = key;
3063
3064        this.data.lineItems.push(lineItem);
3065    },
3066    _saveChanges: function() {
3067        this.data.changes = this.data.lineItems.filter(function(item) {
3068            return ~this.data.sameIds.indexOf(item.__variantId);
3069        }.bind(this));
3070    },
3071    _saveUpdates: function(id, quantity) {
3072        this.data.updates[id] = quantity;
3073    },
3074    _getAttribute: function(item) {
3075        const match = this.regs.attributes.exec(item.name);
3076        if (!match) return {};
3077        return { key: match[1], value: item.value };
3078    },
3079    _isVisible: function(el) {
3080        const styles = window.getComputedStyle(el);
3081        return styles.display === 'block' && styles.visibility === 'visible';
3082    },
3083    get needCurrencyUpdate() {
3084        return this.currencyElement && this.currencyElement.value !== this.data.currency;
3085    }
3086};
3087
3088[UpdaterRequests, UpdaterPayload, UpdaterPrecheckout, UpdaterElements, UpdaterHelpers]
3089.forEach(function(module) {
3090    Updater.prototype = Object[appendChain](Updater.prototype, module);
3091});
3092
3093function Cart() {
3094    var self = this;
3095
3096    this.add = function(form, button, data) {
3097        if (form) {
3098            var noId = function(serialized) { return !/id/.test(serialized); };
3099
3100            data = self.serialize(form);
3101
3102            if (noId(data)) {
3103                data = self.serialize(document.querySelector('#AddToCartForm'));
3104            }
3105
3106            if (noId(data)) {
3107                var idOnBtn = document.querySelector('[data-cart-add]');
3108                if (idOnBtn) data = 'id=' + idOnBtn.dataset.cartAdd;
3109            }
3110        }
3111
3112        var options = {
3113            method: 'post',
3114            url: '/cart/add.js',
3115            data: data
3116        };
3117
3118        return ajax.request(options);
3119    };
3120
3121    this.bulkAdd = function(data) {
3122        var options = {
3123            method: 'post',
3124            url: '/cart/update.js',
3125            data: data
3126        };
3127
3128        return ajax.request(options)
3129    };
3130
3131    this.get = function() {
3132        var options = {
3133            method: 'get',
3134            url: '/cart.js'
3135        };
3136
3137        return ajax.request(options);
3138    };
3139
3140    this.getLqd = function() {
3141        const options = {
3142            method: 'get',
3143            url: self.helpers.getProxyUrl() + utils.store.get('lqdCart')
3144        };
3145
3146        return ajax.request(options);
3147    };
3148
3149    this.update = function(res) {
3150        return new Updater(res).init();
3151    };
3152
3153    this.save = function(res) {
3154        // if (self.needCurrencyUpdate()) self.updateCurrency();
3155        self.disableMultiUpdate(res.data.cart.items);
3156        self.saveTags(res);
3157
3158        // if (!lqd.is_precheckout && lqd.is_ajax_precheckout && !utils.cookie.get('ocu_countdown_start')) {
3159        //     return window.OCUPrecheckout({ utils: utils });
3160        // }
3161
3162        lqd.cart_products_json = res.data.cart_products;
3163        lqd.cart_collections_json = res.data.cart_collections;
3164        lqd.subscription_products_json = res.data.subscription_products;
3165        lqd.subscription_variants_json = res.data.subscription_variants;
3166
3167        return self.resolve(res);
3168    };
3169
3170    this.modify = function(res) {
3171        const cart = res.cart || res.data.cart || res.data;
3172
3173        // res.data = self.helpers.filterFields(cart);
3174        res.data = cart;
3175        res.data.subscription_products = lqd.subscription_products_json;
3176        res.data.cart_collections = lqd.cart_collections_json;
3177        res.data.cart_products = lqd.cart_products_json.filter(function(item) { return !item.error; });
3178        res.data.customer_id = lqd.customer_id;
3179        res = self.helpers.addBuyXGetYDiscount(res);
3180        if (cart.cart_level_discount_applications) res.data.automatic_discount = cart.cart_level_discount_applications[0];
3181
3182        return res;
3183    };
3184
3185    this.serialize = function(form) {
3186        return /trident|edge/i.test(navigator.userAgent)
3187            ? utils.serializeFormEdge(form)
3188            : utils.serializeForm(form);
3189    };
3190
3191    this.attrubutes = function(attr) {
3192        const options = {
3193            method: 'post',
3194            url: '/cart/update.js',
3195            data: { attributes: attr }
3196        };
3197
3198        ajax.request(options);
3199    };
3200
3201    this.prepareUpdate = function(items) {
3202        var handle = function(acc, item) {
3203            var id = item.id.replace(/(\w+_)(\d+)(:\w+)/, '$2');
3204            acc[id] = item.value;
3205
3206            return acc;
3207        };
3208
3209        items = items.length ? items : [items];
3210
3211        var updates = Array.prototype.reduce.call(items, handle, {});
3212
3213        return {
3214            updates: updates,
3215            currency: lqd.shop_currency
3216         };
3217    };
3218
3219    this.saveTags = function(res) {
3220        var tags = res.data.cart_products.reduce(function(acc, product) {
3221            return acc.concat(product.tags);
3222        }, []);
3223
3224        utils.store.set('tags', tags);
3225    };
3226
3227    this.disableMultiUpdate = function(lineItems) {
3228        const inputs = document.querySelectorAll('input[name="updates[]"]');
3229        const offer = utils.store.get('offer');
3230        const isAdd = offer === 'add';
3231
3232        if (isAdd && lineItems.length === inputs.length + 1) return;
3233        if (!isAdd && lineItems.length === inputs.length) return;
3234
3235        Array.prototype.forEach.call(inputs, function(input) {
3236            if (!input.offsetHeight) input.disabled = true;
3237        });
3238    };
3239
3240    this.state = function(e) {
3241        if (e.target.name !== 'updates[]') return;
3242        utils.store.set('cartChanged', true);
3243    };
3244
3245    this.resolve = function(res) {
3246        return new Promise(function(resolve) { resolve(res); });
3247    };
3248
3249    this.needCurrencyUpdate = function() {
3250        return document.querySelector('[name="currency"]');
3251    };
3252
3253    this.updateCurrency = function() {
3254        var options = {
3255            method: 'post',
3256            url: '/cart/update.js',
3257            data: { currency: lqd.shop_currency }
3258        };
3259
3260        ajax.request(options).then(function() { utils.store.set('cartChanged', false); });
3261    };
3262
3263    this.isNotePresent = function(forms) {
3264        return Array.prototype.some.call(forms, function(e) { return e.note && e.note.value });
3265    };
3266
3267    this.filterFormsIfNotes = function(forms, isNotePresent) {
3268        var handle = function(form) {
3269            return form['updates[]'] && (isNotePresent ? form.note && form.note.value : true);
3270        };
3271
3272        return Array.prototype.filter.call(forms, handle)[0];
3273    };
3274
3275    this.error = function(e) {
3276        var desc = e.data.description;
3277
3278        if (e.status !== 422) return alert(desc || 'Something went wrong. Please try again.');
3279
3280        var allInCart = /all/i.test(desc);
3281        var soldOut = /sold out/i.test(desc);
3282
3283        alert(desc);
3284
3285        if (allInCart) return self.checkout({ redirect: true });
3286        if (soldOut) location.reload();
3287    };
3288};
3289
3290var SyncQtyFields = {
3291    init: function() {
3292        // if (!lqd.upsell_cart_include_upsells) return;
3293        if (!this.fields.length) return;
3294        this.listenEvents();
3295    },
3296    get fields() {
3297        return document.querySelectorAll('[data-quantity-item]');
3298    },
3299    getFiledsForUpdate: function(target) {
3300        var id = this.getId(target);
3301        var elems = document.querySelectorAll('[data-quantity-item="' + id + '"]');
3302        var arr = this.getArray(elems);
3303
3304        return arr;
3305    },
3306    getId: function(target) {
3307        return target.dataset.quantityItem;
3308    },
3309    getArray: function(nodeList) {
3310        return Array.prototype.slice.call(nodeList);
3311    },
3312    update: function(target, value) {
3313        this.getFiledsForUpdate(target).forEach(function(field) {
3314            field.value = value;
3315        });
3316    },
3317    handle: function(e) {
3318        this.update(e.target, e.target.value);
3319    },
3320    listenEvents: function(e) {
3321        this.getArray(this.fields).forEach(function(field) {
3322            field.addEventListener('input', this.handle.bind(this));
3323        }.bind(this));
3324    }
3325}.init();
3326
3327function SkipCart() {
3328    var self = this;
3329
3330    // if (lqd.themePopup && lqd.isThemePopupTag) return;
3331
3332    this.init = function() {
3333        const isSkipCartPage = /index|collection|product/.test(lqd.template_name);
3334        lqd.skip_cart && isSkipCartPage && setTimeout(self.prepare);
3335    };
3336
3337    this.prepare = function() {
3338        // TODO: move selectors to store
3339        const forEach = Array.prototype.forEach;
3340        const getArr = function(nodeList) { return Array.prototype.slice.call(nodeList); };
3341        const fakeForms = getArr(document.querySelectorAll('.product-form__cart'));
3342        let forms = getArr(document.querySelectorAll('form[action*="cart"], [data-zp-add-to-cart-form], #AddToCartForm1'));
3343        forms = forms.filter(function(form) { return form.dataset.zpLinkType !== 'zipify_page'; });
3344
3345        if (fakeForms.length) forms = forms.concat(fakeForms);
3346
3347        forms.forEach(function(form) {
3348            const buttons = getArr(form.querySelectorAll('*[type="submit"], input[type="button"], button'));
3349
3350            buttons.forEach(function(button) {
3351                if (button.dataset.qty) return;
3352                if (button.getAttribute('aria-controls')) return;
3353                if (/plus|minus|zpa-quantity/.test(button.className)) return;
3354                if (/error_txt|quantity|sold-out/i.test(button.id)) return;
3355                if (/amount|review/i.test(button.value)) return;
3356
3357                button.removeAttribute('onclick');
3358                button.dataset.skipCart = true;
3359                button.type = 'button';
3360            });
3361        });
3362
3363        self.listenEvents(forms);
3364    };
3365
3366    this.handle = function(e) {
3367        let button = e.target.dataset.skipCart ? e.target : null;
3368        if (!button) button = e.target.closest('[data-skip-cart]');
3369        if (!button) return;
3370
3371        button.disabled = true;
3372
3373        e.stopImmediatePropagation();
3374        e.stopPropagation();
3375        e.preventDefault();
3376
3377        let form = button.closest('form');
3378        if (!form) form = document.querySelector('form[action="/cart/add"]');
3379
3380        self.cart.add(form, button)
3381            .then(self.cart.get)
3382            .then(self.onSuccess)
3383            .catch(self.onError.bind(null, form));
3384    };
3385
3386    this.onSuccess = function(res) {
3387        utils.store.set('cart_token', res.data.token);
3388        self.checkout({ redirect: true });
3389    };
3390
3391    this.onError = function(form) {
3392        form.submit();
3393    };
3394
3395    this.listenEvents = function(forms) {
3396        document.addEventListener('click', self.handle, true);
3397    };
3398
3399    this.init();
3400}
3401
3402function BuyNow(e) {
3403    const self = this;
3404
3405    if (lqd.themePopup && lqd.isThemePopupTag) return;
3406    if (!e.isTrusted) return;
3407
3408    const form = e.target.closest('form[action="/cart/add"]') || document.querySelector('form[action="/cart/add"]');
3409    if (!form) return;
3410
3411    e.stopImmediatePropagation();
3412    e.preventDefault();
3413    e.target.disabled = true;
3414
3415    const cb = function() { self.checkout({ redirect: true }) };
3416    const onError = function(form) { form.submit() };
3417
3418    self.cart.add(form, e.target).then(cb).catch(onError.bind(null, form));
3419}
3420
3421function PublicMethod() {
3422    var self = this;
3423    var proto = self.__proto__.__proto__;
3424
3425    this.init = function() {
3426        window.oneClickUpsellGetCheckoutUrl = proto.checkout = self.create;
3427    };
3428
3429    this.create = function(config) {
3430        if (config === 'skip_cart') {
3431            return new Promise(function(resolve) { resolve(lqd.skip_cart); });
3432        }
3433
3434        self.prepare(config);
3435
3436        const params = utils.store.get('params');
3437        const result = {
3438            status: false,
3439            checkout_url: lqd.checkoutUrl + params.str,
3440            skip_cart: lqd.skip_cart,
3441            get redirect_url() {
3442                return this.checkout_url;
3443            }
3444        };
3445
3446        const recharge = self.integrations.recharge;
3447        result.checkout_url = recharge.isSubscription(lqd) ? recharge.getCheckoutUrl(lqd) : result.checkout_url;
3448
3449        return self.config.redirect
3450            ? location.assign(result.checkout_url)
3451            : new Promise(function(resolve) { resolve(result) });
3452
3453        // return self.check();
3454    };
3455
3456    this.prepare = function(config) {
3457        const params = utils.store.get('params');
3458        self.config = config || {};
3459        self.config.incarts && utils.store.set('incarts', self.config.incarts);
3460        self.config.path && utils.store.set('amazonPath', self.config.path);
3461        self.config.button && self.helpers.payPal(self.config.button);
3462        self.config.params && self.params();
3463        self.integrations.discounts();
3464        self.helpers.params();
3465        self.handleDeclineOffer(config);
3466
3467        params.str = params.str ? '?' + params.str : '';
3468        utils.store.set('params', params);
3469    };
3470
3471    // this.check = function() {
3472    //     return self.verify.data()
3473    //         .then(self.cart.save)
3474    //         .then(self.cart.update)
3475    //         .then(self.verify.upsells)
3476    //         .then(self.resolve)
3477    //         .catch(self.resolve);
3478    // };
3479
3480//     this.resolve = function(res) {
3481//         const isError = res instanceof Error;
3482//         if (isError) console.log(res);
3483
3484//         res = (isError || !res) ? {} : (res.data || res.response);
3485//         const data = self.build(res);
3486//         utils.store.set('isPermalinkHandling', false);
3487
3488//         if (lqd.integrate_with_recharge && !/\d+/.test(res.status)) {
3489//             return self.rechargeFallback(data);
3490//         }
3491
3492//         return self.config.redirect
3493//             ? self.redirect(data)
3494//             : new Promise(function(resolve) { resolve(data); });
3495//   };
3496
3497    // this.build = function(res) {
3498    //     const isEnabled = this._isEnabled(res);
3499    //     const params = utils.store.get('params');
3500    //     const amazonPath = utils.store.get('amazonPath') && utils.store.get('amazonPath')[isEnabled ? 'ocu' : 'shopify'];
3501
3502    //     const result = {
3503    //         status: isEnabled,
3504    //         checkout_url: (isEnabled ? res.checkout_url : '/checkout') + params.str,
3505    //         skip_cart: lqd.skip_cart,
3506    //         redirect_url: amazonPath || res.redirect_url || utils.store.get('redirect_url')
3507    //     };
3508
3509    //     params.str = '';
3510    //     utils.store.set('params', params);
3511
3512    //     return result;
3513    // };
3514
3515    this.params = function() {
3516        var params = utils.store.get('params');
3517
3518        self.config.params
3519            .map(function(param) {
3520                return Object.keys(param).map(function(key) {
3521                    return {
3522                        name: encodeURIComponent(key),
3523                        value: key === 'discount' ? param[key] : encodeURIComponent(param[key])
3524                    };
3525                })[0];
3526            })
3527            .forEach(function(param) {
3528                params.arr.push(param);
3529            });
3530
3531        utils.store.set('params', params);
3532    };
3533
3534    // this.getUrl = function(res) {
3535    //     if (utils.store.get('amazonPath')) return res.redirect_url;
3536
3537    //     if (lqd.integrate_with_recharge) return res.status ? res.checkout_url : res.redirect_url;
3538
3539    //     return res.redirect_url || res.checkout_url;
3540    // };
3541
3542    // this.redirect = function(г) {
3543    //     location = self.getUrl(res);
3544    // };
3545
3546    // this.rechargeFallback = function(data) {
3547    //     return self.cart.get().then(function(cart) {
3548    //         if (self.integrations.recharge.isSubscription(cart)) {
3549    //             utils.store.set('redirect_url', self.integrations.recharge.getCheckoutUrl(cart.data));
3550    //         } else {
3551    //             utils.store.set('redirect_url', '/checkout');
3552    //         }
3553
3554    //         data = self.build(data);
3555
3556    //         return self.config.redirect
3557    //             ? self.redirect(data)
3558    //             : new Promise(function(resolve) { resolve(data); });
3559    //     });
3560    // };
3561
3562    this.handleDeclineOffer = function(config) {
3563        if (!config || config && !config.incarts) return;
3564
3565        const isDeclined = Object.keys(config.incarts).some(function(key) {
3566            return config.incarts[key].status === 'declined';
3567        });
3568
3569        utils.store.set('offerDeclined', isDeclined);
3570    };
3571
3572    // this._isEnabled = function(res) {
3573    //     return res.status ? res.status && !/\d+/.test(res.status) : false;
3574    // };
3575
3576    this.init();
3577}
3578
3579function Helpers() {
3580    var self = this;
3581
3582    this.disableButtons = function() {
3583        utils.store.set('checkoutButtonState', false);
3584    };
3585
3586    this.params = function() {
3587        var params = utils.store.get('params');
3588
3589        for (var i = 0; params.arr.length > i; i++) {
3590            var reg = new RegExp(params.arr[i].name);
3591            if (reg.test(params.str)) continue;
3592
3593            params.str += params.arr[i].name + '=' + params.arr[i].value;
3594            if (i + 1 !== params.arr.length) params.str += '&';
3595        }
3596
3597        utils.store.set('params', params);
3598    };
3599
3600    this.redirect = function(res) {
3601        if (res.redirect_url) return location.assign(res.redirect_url);
3602        if (!lqd.subscription_products_size) return location.assign(res.checkout_url);
3603
3604        const form = document.querySelector('form[action="/checkout"], form[action="/cart"]');
3605        if (!form) return self.checkout({ redirect: true });
3606
3607        form.submit();
3608    };
3609
3610    this.simulateSubmit = function() {
3611        var checkoutButtons = document.querySelectorAll(self.ocuSelectors);
3612        if (!checkoutButtons.length) return location = '/cart';
3613
3614        var last = Array.prototype.slice.call(checkoutButtons, -1)[0];
3615        last.dispatchEvent(new MouseEvent('click'));
3616    };
3617
3618    this.simulateDocumentClick = function() {
3619        var event = new Event('click');
3620        var target = document.createElement('button');
3621
3622        target.type = 'submit';
3623        target.name = 'checkout';
3624        Object.defineProperty(event, 'target', { value: target });
3625
3626        document.dispatchEvent(event);
3627    };
3628
3629    this.preventMouseDown = function(e) {
3630        e.preventDefault();
3631        e.stopPropagation();
3632        // e.stopImmediatePropagation();
3633    };
3634
3635    this.payPal = function(el) {
3636        if (el.name !== 'goto_pp' || el.value !== 'paypal_express') return;
3637
3638        var params = utils.store.get('params');
3639
3640        params.arr.push({
3641            name: el.name,
3642            value: el.value
3643        });
3644
3645        utils.store.set('requirePayPal', true);
3646        utils.store.set('params', params);
3647    };
3648
3649    this.filterFields = function(cart) {
3650        var needed_cart_fileds = utils.store.get('neededCartFileds');
3651        var needed_cart_items_fields = utils.store.get('neededCartItemsFields');
3652
3653        cart = utils.filterObject(cart, needed_cart_fileds);
3654
3655        cart.items = cart.items.map(function(item) {
3656            return utils.filterObject(item, needed_cart_items_fields);
3657        });
3658
3659        return cart;
3660    };
3661
3662    this.filterCartItemFields = function(items) {
3663        return items.map(function(item) {
3664            return Object.keys(item).reduce(function(acc, key) {
3665                if (key === 'product_description') return acc;
3666                acc[key] = item[key];
3667                return acc;
3668            }, {});
3669        });
3670    };
3671
3672    this.getProxyUrl = function() {
3673        return lqd.proxy_url || utils.store.get('proxy');
3674    };
3675
3676    this.checkSelector = function(target) {
3677        if (target.dataset.ocuCheckout === 'true') return target;
3678
3679        const checkoutButtons = document.querySelectorAll(self.ocuSelectors);
3680        const isInclude = Array.prototype.some.call(checkoutButtons, function(item) {
3681            return item === target;
3682        });
3683
3684        const isCartContentParent = target.closest('.cart_content') && target.closest('form[action="/checkout"] [type="submit"]');
3685        const isCartTemplate = lqd.template_name === 'cart' && target.closest('form[action="/cart"] [type="submit"]');
3686        const isCartAction = target.closest(self.ocuSelectors) || isCartContentParent || isCartTemplate;
3687        const notIncartUpsell = !target.closest('#nudge-offer'); // check if triggered Incart Upsell widget triggered
3688
3689        const addToCartButton = (lqd.template_name === 'product' && !target.closest('form[action$="/cart/add"]'))
3690            && (((target.name === 'add' && target.type === 'submit') ? target : null)
3691            || (target.closest('[name="add"]')) && target.closest('[type="submit"]'));
3692
3693        const parent = !isInclude
3694            && (isCartAction || target.closest('[name="checkout"]'))
3695            || addToCartButton;
3696
3697        if ((isInclude || parent) && notIncartUpsell) return isInclude ? target : parent;
3698    };
3699
3700    this.checkDirectCheckoutButtons = function(target) {
3701        return /\/checkout/.test(target.onclick && target.onclick.toString())
3702    };
3703
3704    this.checkAddToCart = function(target) {
3705        if (target.closest('form[action="/cart/add"]')) return true;
3706    };
3707
3708    this.zpPreventRedirect = function(target) {
3709        const condition = target.dataset.type === 'crm_dest'
3710            || target.dataset.zpProductRedirectLink === ''
3711            || target.dataset.zpAddToCart === ''
3712            || target.closest('[data-type="crm_dest"]')
3713            || target.closest('[data-zp-product-redirect-link]')
3714            || target.closest('[data-zp-add-to-cart]');
3715
3716        if (condition) return true;
3717    };
3718
3719    this.isOfferProduct = function() {
3720        return lqd.cart_variants_json.some(function(item) {
3721            return item.properties && item.properties._ocu_offer_id;
3722        });
3723    };
3724
3725    this.addBuyXGetYDiscount = function(res) {
3726        var discounts = res.data.items.reduce(function(acc, variant) {
3727            if (!variant.discounts[0]) return acc;
3728            let item = {
3729                item_key: variant.key,
3730                discount: variant.discounts,
3731            };
3732            if (variant.line_level_discount_allocations[0]) item.discount_data = variant.line_level_discount_allocations;
3733            acc.push(item);
3734            return acc;
3735        }, []);
3736
3737        if (discounts.length) res.data.per_item_discounts = discounts;
3738        return res;
3739    };
3740
3741    this.isBuyNow = function(e) {
3742        const selectors = utils.store.get('classList');
3743        return e.target.classList.contains(selectors.buyNow) && !e.target.classList.contains(selectors.buyNowBranded);
3744    };
3745}
3746
3747[Helpers, Integrations, Cart, PublicMethod, SkipCart, BuyNow].forEac
3747h(function(item) {
3748    Object.setPrototypeOf(item.prototype, Application.prototype);
3749});
3750
3751const script = document.createElement('script');
3752document.head.appendChild(script);
3753script.src = ocuCdn + '/vendor/axios.min.js';
3754script.onload = function() {
3755    if (window.axios) return new Application();
3756    if (window.require) {
3757        require([ocuCdn + '/vendor/axios.min.js'], function(e) {
3758            window.axios = e;
3759            new Application();
3760        });
3761    }
3762};
3763
3764function requireOptionSelectors() {
3765    if (window.Shopify && Shopify.OptionSelectors) return;
3766
3767    const s = document.createElement('script');
3768    document.head.appendChild(s);
3769    s.src = OCUIncart.option_selection;
3770}
3771
3772function Store() {
3773    var _private = {
3774        store: {
3775            ocuSelectors: '[name="checkout"], [href^="/checkout"], form[action^="/checkout"] [type="submit"], form[action$="/cart"] [type="submit"], #checkout, [name="goto_pp"], .checkout_button, .checkout-button, [value="Checkout"], .cart-button-checkout',
3776            addToCartButton: '[name="add"]',
3777            proxy: '/apps/secure-checkout',
3778            lqdCart: '/upsellapp_cart',
3779            checkUpsells: '/check_upsells',
3780            neededCartFileds: ['token','note','attributes','items', 'currency', 'cart_level_discount_applications'],
3781            neededCartItemsFields: ['product_id','variant_id','quantity','grams','price','line_price','title','properties','vendor','sku','key'],
3782            permalink: /cart\/(\d+:\d+(?:,\d+:\d+)*)(?:[?&]discount=([-\w! %205]+))*/,
3783            isAddToCartClicked: false,
3784            cartChanged: false,
3785            cartUpdated: false,
3786            requirePayPal: false,
3787            checkoutButtonState: false,
3788            submitted: false,
3789            amazonPayInitiated: false,
3790            redirect_url: null,
3791            offer: null,
3792            offerDeclined: false,
3793            incarts: {},
3794            tags: [],
3795            isPermalinkHandling: false,
3796            cart_token: null,
3797            classList: {
3798                buyNow: 'shopify-payment-button__button',
3799                buyNowBranded: 'shopify-payment-button__button--branded'
3800            },
3801            params: {
3802                str: '',
3803                arr: []
3804            },
3805            fallback: {
3806                timeout: 15000,
3807                id: 0
3808            },
3809            XHR: {
3810                send: XMLHttpRequest.prototype.send
3811            }
3812        },
3813        event: function(e) {
3814            return new Event('store:' + e);
3815        },
3816        emit: function(e) {
3817            document.dispatchEvent(this.event(e));
3818        }
3819    };
3820
3821    this.get = function(key) {
3822        return _private.store[key];
3823    };
3824
3825    this.set = function(key, val) {
3826        if (!_private.store.hasOwnProperty(key)) return console.error('Unavailable key! ', key);
3827        _private.emit(key);
3828        _private.store[key] = val;
3829    };
3830
3831    this.listen = function(e) {
3832        return new Promise(function(resolve) {
3833            document.addEventListener('store:' + e, resolve);
3834        });
3835    };
3836}
3837
3838}();
3839</script>
3839
3840
3841
3842
3843<script src="https://cdn.attn.tv/assaultforward/dtag.js"></script>
vendor: 1 bytes, line 3843
3843
3844<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3844
3845</body>
3846</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.