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&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, & 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&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 | & 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">© 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&utm_medium=shopify&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.