{"componentChunkName":"component---gatsby-theme-spaceout-src-templates-article-template-tsx","path":"/dev-sec-ops","result":{"pageContext":{"article":{"id":"e581c596-4e2a-5188-8646-6c6b8ca3221a","slug":"/dev-sec-ops","secret":false,"title":"Dev Sec Ops","author":"Luke Celitan","date":"November 1st, 2021","dateForSEO":"2021-11-01T00:00:00.000Z","timeToRead":2,"excerpt":"Secuirty First !","subscription":true,"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Dev Sec Ops\",\n  \"author\": \"Luke Celitan\",\n  \"date\": \"2021-11-01T00:00:00.000Z\",\n  \"hero\": \"./devsecops1.jpg\",\n  \"excerpt\": \"Secuirty First !\",\n  \"category\": \"Post\",\n  \"tech\": [\"TS\", \"Nodejs\", \"ReactIcon\", \"Rust\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"dev-sec-ops\"\n  }, \"Dev Sec Ops\"), mdx(\"h2\", {\n    \"id\": \"introduction\"\n  }, \"Introduction\"), mdx(\"p\", null, \"Around the year 2010 the Software Engineering had been transfomred by the\\ninvention of \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://en.wikipedia.org/wiki/DevOps\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"DevOps methology\"), \". Its main\\nfocus was to bring the Developers (Dev) and server Admins (Ops) to close\\ncooperation in order to ensure that software products get a quick a steady\\nrelease.\"), mdx(\"p\", null, \"DevOps changed the landscape of software creation by providing tools to automate\\nCI/CD pipelines, terraforming or maintaining server and network instances as a\\ncode, procedures and protocols for automating unit and e2e testing. It also gave\\nus the role of DevOps Engineer, a fairly new position in the IT world, that\\nfocuses on the tasks mentioned above.\"), mdx(\"h2\", {\n    \"id\": \"enter-devsecops\"\n  }, \"Enter DevSecOps\"), mdx(\"p\", null, \"Small and big businesses have adopted quickly the DevOps methodology. In 2022\\nDevOps Engineers are essential IT personnel in delivering products / local\\nsoftware instances to its online environments. As these practices became\\nstandard, businesses have switched their focus from delivering fast to trying to\\ndelivering fast but secure software.\"), mdx(\"p\", null, \"Cyber crime is on the steady rise, data breaches, ransomware, phishing, supply\\nattacks, \\u201Cevil competition\\u201D ddos attacks, social engineering attacks, the list\\ngoes on and on. For more stats about cyber crime you can\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.comparitech.com/vpn/cybersecurity-cyber-crime-statistics-facts-trends/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"read this article\"), \".\"), mdx(\"p\", null, \"In the past security teams were mostly reactive and not involved in the\\ndevelopment phase. Security specialists would focus on audits, reports and scans\\non already made electronic products, then they would go back to dev teams or\\nproduct owners for remediation actions. This approach can be very problematic,\\nfeatures or functions based on insecure solutions need time to be rewritten or\\nadjusted, sometimes already paid and delivered products need now additional work\\nin order to comply with security standards.\"), mdx(\"p\", null, \"DevSecOps tries to remediate this problem, by involving the Security team in the\\ndevelopment process. Sometimes this is refereed to as \\u201Cshifting left\\u201D in the\\nindustry. This move tries to shift the responsibility of secure coding into the\\ndeveloper domain by providing necessary tools and procedures to the DevOps\\ncycle.\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"3450px\"\n    }\n  }, \"\\n      \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"69.72%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAIAAACgpqunAAAACXBIWXMAAAsTAAALEwEAmpwYAAACNUlEQVQoz6WT32vTUBTHAyL64F8wRAR/PFREQUFkCIJDcPiwvYgwUIQyK7iBok8ymaAgMpkwFGEodYqiQxCcA0Vx2Ao6V0s3bJf+MGvSm/5Imx/NbZOb5OZ602g3pg8Dz8vNOTfffM/93BOG/EcwoCi9m5mNfknMfI5/+DT3MRLTYZNuuO4axJZt12RNVuuKWhfLqlhWqHDlG8ghDYvgf32L8Re3ZfQTqPHFIoQNmmLs10i2aLxPaHoTezUaLqZ+dF0tVrW6IPDJdJ4HFezY2C8qymI2DwDglgSOL3K8WJFkwzSXxW39o4i6bzCyN/jq3uSs10sZ9U/UO0dQ8KmdrzmEYNvBy227rSO2Ku6DKFl3pnrwYiRw6uX63QPnr9wNXEhuChVOh5vbhu2uMaJ7fgT/AcCkgJ0UEG6pj4ySjksWZSarevDy6Pb9PTtPhqcSBkHayBuN6TNffzfSLMvmCj4UJrMkzs1nQKmKjEZfmOy54aTySgbo3bfAju7rW3YdffxiGjXh8MNvzLHptzGJ5z0oYqnaNEyGAphPZlJZoVISpxbw5qvkwG0SuGZsPFsbmmC7es9t6Dh86Hhoa2eoZ3AcUYgYm8iyfdoCKMcX0myW1xsGzaM50v+cDEziaNqiKe3/5tiTE8GhO/efQQjbXH+f2TCRqumw4U2VDyInQg7IhFhOKy9L8tfYDxMh+mxT1hivHpKVQd0UDbavBJSkJMtluYJUVVUNUqe2ObPGf8Abrb8m9BetIuRKL3suIwAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/28350f5a7365b0b3fd54cfb4fe820bdd/a3bc4/devsecops-diagram.webp 2500w\", \"/static/28350f5a7365b0b3fd54cfb4fe820bdd/99740/devsecops-diagram.webp 3450w\"],\n    \"sizes\": \"(max-width: 3450px) 100vw, 3450px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/28350f5a7365b0b3fd54cfb4fe820bdd/412e4/devsecops-diagram.png 2500w\", \"/static/28350f5a7365b0b3fd54cfb4fe820bdd/d4b36/devsecops-diagram.png 3450w\"],\n    \"sizes\": \"(max-width: 3450px) 100vw, 3450px\",\n    \"type\": \"image/png\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/28350f5a7365b0b3fd54cfb4fe820bdd/d4b36/devsecops-diagram.png\",\n    \"alt\": \"Dev Sec Ops methodology\",\n    \"title\": \"Dev Sec Ops methodology\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  }), \"\\n        \"), \"\\n    \"), \" \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"source:\\n\", mdx(\"a\", {\n    parentName: \"em\",\n    \"href\": \"https://www.atlassian.com/pl/devops/devops-tools/devsecops-tools\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://www.atlassian.com/pl/devops/devops-tools/devsecops-tools\"))), mdx(\"h2\", {\n    \"id\": \"devsecops-owasp-model\"\n  }, \"DevSecOps OWASP model\"), mdx(\"p\", null, \"In my current position (Dec, 2022) as web application architect and team leader,\\nI have adopted the the DevSecOps model proposed by the OWASP organization\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/OWASP/DevSecOpsGuideline\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://github.com/OWASP/DevSecOpsGuideline\")), mdx(\"p\", null, \"The DevSecOps model helps in producing:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"automation to create short feedback loops to developers\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"breaking down the silos between development, security, and operations\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"breaking down security work into small pieces to create flow\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"making decisions based on threat intelligence from operations\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"establishing a culture of security experimentation and learning\")), mdx(\"h2\", {\n    \"id\": \"threat-modeling\"\n  }, \"Threat Modeling\"), mdx(\"p\", null, \"The first step in running a successful DevSecOps model is to do a threat\\nanalysis on the planned developed software. What are the essential points of\\nyour application that need to be protected ? This mental exercise will help you\\ndetermine on which aspects of your software you need to focus on. It will also\\nhelp you plan any remediation steps or procedures that need to be developed in\\norder to minimize damage when things go sideways.\"), mdx(\"p\", null, \"In my opinion it will always look better if some security procedures and\\nemergency plans fail, them have no plans at all.\"), mdx(\"p\", null, \"The most common sensitive points are:\"), mdx(\"h3\", {\n    \"id\": \"data-breach--data-corruption\"\n  }, \"Data breach / Data corruption\"), mdx(\"p\", null, \"Customer or business data deemed sensitive need extra application security\\nfocus. Protecting users data like credit cards, home addresses, emails and\\npasswords are imperative from a business and reputation point of view. Who in\\nthe right state of mind would like to share their private information with an\\namateur or insecure application.\"), mdx(\"p\", null, \"Another huge risk these days in terms of data and system protection is\\nransomware. All systems should have proper back up plans, paying up ransom so\\nthe system can continue to operate\"));\n}\n;\nMDXContent.isMDXComponent = true;","tech":["TS","Nodejs","ReactIcon","Rust"],"category":"Post","appDescription":null,"hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAMEAQIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAeRLfwMqIOlcaqK//8QAHBAAAgICAwAAAAAAAAAAAAAAAQIAAxESEyEi/9oACAEBAAEFAijKaqTYSKUgbILTkxK+zf4O7T//xAAWEQADAAAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BlksplM//xAAWEQEBAQAAAAAAAAAAAAAAAAARABD/2gAIAQIBAT8BcIv/xAAfEAACAQQCAwAAAAAAAAAAAAAAARECITFhEyJBUXH/2gAIAQEABj8CuheKfZHGn9O0TsytF4q2NMsZP//EABsQAQADAQEBAQAAAAAAAAAAAAEAESFBURAx/9oACAEBAAE/IXgons6aOwnWl3TBNu9xqUQcch+ISAbgImnOp8n/2gAMAwEAAgADAAAAEDcoAv/EABYRAQEBAAAAAAAAAAAAAAAAAABhAf/aAAgBAwEBPxCOoq6rr//EABcRAAMBAAAAAAAAAAAAAAAAAAARUQH/2gAIAQIBAT8QSjyiQSH/xAAfEAEAAwACAQUAAAAAAAAAAAABABEhMUGhUWFxkfD/2gAIAQEAAT8QIMipjCPV4XYBzR3DxQconzNow2G17Z4lxF51X+oAsjUUX4ho0LC30GWlpg54Z+wT/9k=","aspectRatio":1,"src":"/static/f56e51cac14719be4f33b4f802a1de49/58fe7/devsecops1.jpg","srcSet":"/static/f56e51cac14719be4f33b4f802a1de49/e0f30/devsecops1.jpg 236w,\n/static/f56e51cac14719be4f33b4f802a1de49/86afd/devsecops1.jpg 472w,\n/static/f56e51cac14719be4f33b4f802a1de49/58fe7/devsecops1.jpg 944w,\n/static/f56e51cac14719be4f33b4f802a1de49/0ff54/devsecops1.jpg 1200w","srcWebp":"/static/f56e51cac14719be4f33b4f802a1de49/99fbb/devsecops1.webp","srcSetWebp":"/static/f56e51cac14719be4f33b4f802a1de49/77392/devsecops1.webp 236w,\n/static/f56e51cac14719be4f33b4f802a1de49/1f177/devsecops1.webp 472w,\n/static/f56e51cac14719be4f33b4f802a1de49/99fbb/devsecops1.webp 944w,\n/static/f56e51cac14719be4f33b4f802a1de49/9000d/devsecops1.webp 1200w","sizes":"(max-width: 944px) 100vw, 944px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2062v63h3c3%201%204%201%204-12v-11l1-2v-2c2%200%202%202%202%2015v15l10%205%2021%2012c6%206%2010%207%2010%206%200-2%202-1%202%202s7%2011%207%208l1-7v-5l-3-1c-3-1-4-1-4-4s0-4-3-4-3-2%200-2c2%200%203-1%203-4%200-4%200-5%203-5l4%201c1%201%201%200%201-2%200-3-2-6-4-5l-2%203-1%202c-2%200-1-5%201-6%201-2%203-2%205-2%203%201%203%201%203-3v-3c2%200%202%2010%200%2011l-1%203c0%202%200%202%201%201l2-2%202%201v12l-1%209-1-4-1%201c1%204-1%206-2%202-1-1-1%203-1%209%200%208%200%209%201%202%200-8%200-9%203-7%202%202%202%203%202%2011%200%2011%200%2015%203%2016%203%200%203%200%203-12%201-15%202-15%203%200v12h3l12%202%2010%201h10l9-1v-2c-2-1-2-2-1-6l1-5v-7l-2-2h2v-2c-2-2-3-4%200-2%201%201%201%201%201-1l-1-2v-2l-1-6c-1-3-1-3%201-3%201%200%202-1%202-3l-1-2-1-1c-1-1-2-2-7-2-6-1-6-1-2-6l3-4%2010%202%2014%201%204%201-4%204-5%203c-2-2-3%201-3%207%201%205%201%205%202%203s1-2%201%200v14h-1c-2-2-3%200-3%208%200%207%201%208%202%207%203-1%206-1%2021%201l15%202%206-3c6-3%2014-4%2019-1%201%200%203-2%205-7%204-8%2014-21%2017-22l5-3%2010-4%209-5%202-3h-2l-37-8c-1%200%201-3%205-6l4-3%2019%204%2020%205c2%200%202%200%202-3l1-2v3l2%203%201-3c0-2%200-3%201-2l1%203v2c2%200%202-1%202-3l1-3%201%202c0%202%201%202%204%200s6-2%2011-1c3%200%204%202%201%202l-3%201%202%201c2-1%202%200%202%205l2%202c2%201%202%201%202-1%200-5%203-16%208-25a147%20147%200%2001108-76l1%2030v31l-3%201a247%20247%200%2000-32%209c-2%200-2%200-1%202v1c-1%200-2%200-1-1l-2-1-3%201v2c1%201%200%202-2%201l-1%201h-2l-2%201v1l-5%202c-4%202-4%202-2%202h3l2-1%203-2c1%200%203%205%201%206v3c0%203-18%2011-19%208l-2-2-1%201c3%204-8%209-11%206-2-1-2-1-2%201%201%202%200%202-4%204l-3%203%209-4%203-1%2012-5%202-1%2010-3%209-2%201-2-1-3-1-6c0-4%201-4%203-5l7-2h6l1%201v-1l2-2c3-1%205-1%205%202l1%201v-2l1-3%201%202c-1%202%200%202%202%202%201%200%202%200%201-2l-1-1-1-1%2011-3c2%200%200%204-2%204l-1%201v2l-1%201h-1l-3%202c-2%200-2%200%200%201l-9%204-12%204v6l1-3c1-2%205-5%208-4h1l9-2c2%201%201%203-2%204l-3%201%208-1%207-1c-1%200-5%2012-4%2013l-4%202c-5%201-6%203-6%2012l-1%203-4%203c-2%203-4%204-9%205-6%201-7%202-7%203l-1%204c-3%203-1%203%207%200l5-1h-5c-7%201-4-1%204-2%206-1%207-1%206-3l1-2c3%202%201%205-3%206l-4%201h5c3%200%204%200%203%201h-3v2l-1%202v-1l-1-1-2%202c0%203%200%203-1%200s-2-3-5-2l-3%203-2%204c-1%201-1%201%205%201h5l-1%201v1c-2%201-2%201-1%202l-4%202c-8%202-10%203-8%205%203%202%2028-3%2029-6%201-2%202-2%209-4%205%200%205-2%205%2039v35h-14v7l-1%207c-1%200-2-10-1-25%200-8%200-8-2-7h-4c0-1%201-2%203-2h3v-13h-5a454%20454%200%2000-13%200c-1-2%200-3%2010-3h5l-1%201c4%202%204%201%204-3v-4l-10%201-11%201-1%2025-1%2020c-1-4-1-4-1%203l1%207h6l7%201h-8l-9-1c-1-1-1%200-1%204%200%208%201%208%2014%207l10%201v1c2%200%202%201%202%203%200%203%200%203-2%202h-1c1%202%200%202-2%202s-3%200-2%201l2%201-2%201c-1-1-2%200-2%201-1%202-3%203-3%200l-1%201v2l-14%201c-14%200-15%200-15-2h-1c-1%202-3%202-10%202-10%200-10%200-7-5%202-3%202-3%203-1s1%202%203%200l2-4%202-3%201-1h-4l-1%202c-3%200-6%203-8%208l-1%204h-11l-19-2c-11-1-16-1-9%201%204%201%203%201-8%201l-13-1-11-3-1-1h-5c0%201%204%203%2010%204%205%201%204%201-6%201l-15-1h-4l-9%201c-10%200-10-1-1-2%209%200%207-1-2-1-7%200-8%200-8%202v1l-1-1-11-1-59%202H87l1-2c0-3%200-3-3-3s-3%200-2%203l1%202h-9c-5%200-9%200-8-1s3-18%201-18l-1%204c-1%203-1%204-4%204-2%200-3%200-3-2-1-1-1-1-1%201s1%202%203%202%203%200%202%201l1%203c1%201%201%201-3%201h-5v-30H39v31l6-1%2014%201%208%201-4%201-15%202H37v-34h-3c-2%200-2%200-1-1l4-1h2l-1-1-1-34v-34l-4%201c-3%202-4%202-4%201%201-2-3-3-5-2-1%202-2%2024-1%2026v3c0%203-1%203-5%202-12-1-11%200-11-7%200-5%200-6-1-3l-1%202-3-2c-2-1-2%200-2%2079v80l3-1c3%200%203%201%200%202l-3%201v37h6c7%200%209-1%209-3%200-3%204-5%207-4l8%201h6l-3-2-3-1h3c5%201%2011%200%2014-3%204-3%204-1%200%203-2%203-8%206-11%206l-4%202c-2%201%201%201%2027%201h29l1-3%204-3h3l-3-1c-2-2-3-2-3%200h-2c-1-3%202-4%206-2%202%202%204%202%209%202h7l-1-2-1-6v-4l1%204%201%203c0-3%202%201%202%205%200%205%201%207%207%207h4l-5-7a3545%203545%200%2000-22-32l30-1%2030%201%206%204c5%205%208%206%206%202l2-1%209-2%204-1-12%201c-2%200-3%200-2-1s16-4%2017-2h14l10-1%206%204%206%206%201%201%2013%209c0%201-8%203-36%208-14%203-16%204-16%205l2%203c2%200%202%200%201%201-2%201-2%201%201%201l5%201%204%201c3%200%203%200%202-1v-2l2%202c1%201%2028%202%2028%200%200-1-3-2-7-1-6%201-7%201-7-3%200-1%200-2-1-1%200%203-1%202-5-1-3-4-3-4-1-4%204-1%205-1%206%202%201%202%201%202%206%202%205-1%205-1%208%202l3%204%206%201h6l-2-2c-3-4%200-4%205-1l4%203h151l-1-137V125l-4%201h-3l4-2h4V0H0v62m243%2077c-5%206-8%2017-6%2025l1%204v-5c0-5%202-5%203-1%201%208%203%2012%204%2012l1%201c-1%201%202%205%204%205l3-3c8-8%207-29%200-38-4-4-6-4-10%200m42%202l-3%203v1h1l1%201-1%201-1%207-1%207-1-4c0-2%200-3-4-3h-5c-1%200-2%202-2%207l-3%2013c-4%207-4%206%201%206%204-1%204%200%201%204-3%202-4%202-9%202-16%200-20-2-24-11l-2-2-1%202c-2-1-3%200-2%204%202%206%202%207%205%209%202%201%201%201-3%202l-8%202c-2%200-2%200%200%202s2%202%209%201l12-2c3%200%203%200%203-3%200-5%202-5%202-1v4h6l2-1%201%201%205%201h7l2%201%201%201h3l2%201-1%201c-1%200-1%201%201%201%201%201%201%201-1%201l-2-1h-36l17%202%2021%202c5%200%205%200%205-2s-1-3-2-3l1-1%201-1v-3l-1-2c1-1%200-1-2-1l-3-1h4c3%200%203%201%203%202l1%202%201-1v-1l1%202%201%201-1%201-2%201h2c2%200%202%200%202%202v1l1%201%202%203c3%202%201%203-3%201-2-1-4%200-5%201l-5%201v-1l-18-2-22-1%206%201c5%200%206%200%203%201l-4%201%205%205%205%205v-4l1-4c1-1%201%209%201%2028l1%2038%201%204h-7l-5%201a1508%201508%200%200124%204c4%200%204%200%204-3%200-2-1-3-2-3l-2-1h2c2%200%203-6%201-6l-4-1-1%206v6l-1-7v-6l7%201h7v-53h-7c-5%200-6%200-4-1h-5c-4%200-4%200-4%204%200%205%203%2012%207%2018l3%204%204%204c2%201%203%205%201%205s-1%202%201%202c1%201%201%201-1%201-1%201-2%200-2-1%200-2-3%202-3%205%200%201%200%202-1%201-1-2-3-1-3%203l-1%204-2-3-1-3v3c0%202%200%202-1%201-1-2-1-1-1%204a901%20901%200%2001-1-54c-1-3%200-3%209-4a462%20462%200%200130%200l-1%202-19%203c8%200%208-1%208%2029v27h3c10%202%2011%202%2015-2%205-5%209-6%2029-7%2019-1%2019-1%2018-7%200-4%200-4-5-4l-10-1h5l10-1-5-1h-7l6-1h6v-34l-6-2-15-6-11-4a504%20504%200%200011-4l4-1h-5l-4%201-6%201-6%201c-2%200-2%200-1-1l5-2%204-1h4l18-3%2021-3h14c1%202%200%203-3%203l-2%201-6%201-9%201c-1%201%200%201%205%201a975%20975%200%2000-6%204l-1%201%2019-1h6v-8c0-7%200-8-2-8a480%20480%200%2001-45%207%202717%202717%200%2001-38%204c0-3%201-4%205-4%203%200%203-1-1-5-8-9-14-20-15-30v-16l-1%203M1%20143l3%203c24%205%2054%2021%2061%2032l3%203c0-8-22-24-44-32l-23-6m83%205c-3%200-4%202-3%205%200%202%200%202-1%201h-1l3%205%203%203%202-2%202-1c1%201%203-2%203-5%200-1%200-2%201-1l1-1-1-1-4-2-3-2-2%201m-83%202c0%201%201%202%203%202l4%201%2012%204c15%205%2025%2010%2030%2016%203%203%205%205%204%206h2c-1%201%202%207%204%207%201%201%201%201-1%201-2%201-2%200-4-2%200-2-3-4-5-6-11-6-49-17-49-13l4%201%205%202%203%201c5%200%2024%206%2028%208a84%2084%200%200117%2012c1%201%201%201-1%201l-16-4-2%201%204%201%204%202c1%201-4%203-6%202s-2%200-2%2010v11l3%201%207%205%203%203v-4c0-5%202-15%205-21v-4l1-1%203%203c1%202%201%202%201%200l1-2v-1l-3-2c-1-3-1-3%203-4%202-1%203-1%203%201v4c1%202%202-3%201-7-3-11-27-25-52-32l-14-3m162%2047c-5%203-7%2012-3%2012v1l-2%201h2v1l-2%201h1l1%201v1a516%20516%200%200012%203l2%202v-2c0-2%200-2%201-1h1c0-3-6-9-8-7h-3v-1l1-3c0-3%200-4-2-4s-1-3%202-4c3-2%201-2-3-1m30%201l-5%201%204%201c2-1%203%200%203%201l7%201c6%200%206%200%200%201-4%201-6%203-3%203%201%200%202%201%201%202l-2%201c-2%200-4%202-2%203l7%201c4%200%204%200%202%201l-3%201%202%201c2%201%202%201%201%202v1c1%200%203%206%203%2013l-1%204c0-4-7-4-8%200-1%202%200%202%203%202l4%201-5%201c-5-1-7%200-7%203%200%202%201%202%205%202h6l-5%201c-5%200-6%200-6%202h3c1-1%201-1%201%201s-1%202-4%202c-4-1-5%200-2%202h4c4%200%203%203-1%203l-4%201h9v-3c1-4%201-4%204-3v1l-2%202%202%201%201%201%201%202v2c-1%201-1%203%201%203v-1c-1-2%203-2%209-1l3%201-3%201h1l2%202%202%202-1%201c-2%201-2%201%200%201%204%200%206-5%202-6h3l5-1c1-2%204-2%204-1l-1%202h-2v4l-1%201%202%201%201-1v-1c1-1%201%200%201%201l-2%202%203%201c5%202%207%201%207-2-1-1%200-2%201-2l1%204c0%202%200%203%202%203l1-6c0-4%200-5-1-4-3%202-6%200-5-2%201-3%206-3%206%200h1c2-2%203-1%202%201%200%202%200%202%202%202s2%200%202-25c0-13%200-24-1-23%200%202-1%202-4-1-4-4-4-4-10-4-11%200-22-4-31-11l-7-4-8%201m-130%209c0%207-1%2013-3%2013l-1-3-1%206c0%209%200%2010%203%2015l3%206c0%206%207%203%2011-4%203-6%205-12%203-13-1-1-1%200-1%203%200%206-9%2014-9%207%200-2%200-2-1%201-2%205-3%204-3-3v-8c-1%200%205-4%208-4%202%200%202%200%201-1l-2-1-3%201h-3l1-1%201-1-1-2v-1c1%200%201-2-1-4-1-2-1-2%201-2v-2l-1-1-1-1v-4l-1-2v6m86%203c-3%203-5%2010-5%2018-1%2016%206%2029%2010%2019%201-3%202-4%203-2l-4%207c-2%201%201%202%203%201v-1c-1-1%200-1%202-1l4%201c1%201%203%200%203-1s-1-2-3-2l-1-2v-3c-2-1-8-2-8%200l-2%201c-4%200-5-4-6-13%200-7%201-15%203-15l1-1%203-1c3%200%204-1%204-3%200-3-3-4-7-2m-38%202c-4%200-4%204%200%204l4%201c2%200%202%200%202-2%200-4%202%202%202%208v4c-1-3-1-3-1-1l-1%206c0%203%200%203%201%202h1l1%201%201-1%202-3%201-3-2-1-1-11c-1-5-2-5-10-4m66%2016l-1%208-1%203v-3l-1-3c-2%200-2%202-2%206l-2%201-1%201c0%201%203%200%205-2h1c0%202-2%204-5%204-1%200-2%201-2%203v3l1%205v5l1-3c0-2%201-3%203-4l3-1h-6l2-2c3-4%206-14%206-21l-1-5v5m123-3c-1%202-1%203%201%205l4%207%203%203%203%201c1%201%200%202-5%202-8%200-7%201%202%201%208%200%2012-1%208-3l-2-1c-3%200-2-1%201-1l3-1-6-1c-5%201-5%201-4-1%202-1%200-6-4-11-3-3-3-3-4%200M39%20238v11h19c0-1-3-8-8-15-4-7-5-8-8-8l-3%201v11m291-11l-2%201-3%201%203%201c2%200%203%201%201%204%200%201-1%202-3%202-3%200-4%201-4%202-1%202-1%202%201%202l7%201-5%201c-3%200-3%200-3%202%200%203%200%203%205%203%202%200%204%200%203-1l-2-1c-4%200-1-1%204-2%206%200%207-1%207-3h-1c-1%202-7%202-7%200l-2-1c-1%200-1-1%201-2%203-1%203-1%202-2s-1-1%201-1%203-3%201-4c-3-1-2-3%200-3%202-1%202-1-1-1l-3%201M94%20241l1%207c0%204%200%204%203%204l3-2c0-2-1-2-3-1-1%201-1%201-1-3%200-5%201-5%203-5s3%200%203%205v6h7c9%200%2010-1%209-3-1-1-1-2%201-3l1-4c0-2%200-2%201%201l1%202%201%202v4l2-1%203-2c2%200%202%200%201%201-3%200-2%202%200%203l2-1c-1-2%202-4%206-4%205%200%206%200%204-5l-1-3h-24c-23%200-24%200-23%202m194%2031c-1%205-1%206%201%206l1%201h-2l-1%201%205%203c4%201%204%201%204-1l2-4-2-2-1-2h2c1%201%204%200%203-1l-12-1M16%20316v8c0%205%201%206%203%206%207%201%2011-8%206-13-2-2-8-3-9-1m67%201c-3%203-3%207%200%2010%204%205%2010%202%2010-4%200-7-6-10-10-6m15%202c-2%200-2%201-2%208l1%207%201-2c0-2%200-3%201-2%205%201%209-9%204-11l-2-1-3%201m-41%2042l6%2014c6%2012%209%2015%209%2010%200-2%203-1%205%203l3%205%202%204%201%201%201-1h1l1-4-4-8-4-9-2-5c-1-4-1-4%202-4%202%200%203%200%203-2h-4c-3%200-4%200-3-1l5-1c4%200%208-1%206-2H57m75%202c-10%202-9%201-9%2010%200%206%200%208%202%208l1-1%202-2%201%202v2l2-3%202-4%201-4%202-6c2-3%202-3-4-2m76%207c1%205%206%2010%2010%2010l2-1v-4c0-2-1-3-5-6-7-5-7-5-7%201m-20%201h-12c1%202-2%203-3%201-2-1-4-2-4%200%200%201%2017%2014%2019%2014v-2c-3-2-1-3%201%200h8c7-1%208-2%206-4-3-2-2-5%200-5s2%200-2-3l-4-3-9%202m-35%201l-6%201c-4%200-4%200-4%203%201%203%200%203-3-1-5-7-6%200-1%2017l2%208h12l-7-8c-9-10-10-12-8-13l4%201c2%202%206%202%207%200l-1-2c-2-1%201-3%205-4l4-2h-4'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAMEAQIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAeRLfwMqIOlcaqK//8QAHBAAAgICAwAAAAAAAAAAAAAAAQIAAxESEyEi/9oACAEBAAEFAijKaqTYSKUgbILTkxK+zf4O7T//xAAWEQADAAAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BlksplM//xAAWEQEBAQAAAAAAAAAAAAAAAAARABD/2gAIAQIBAT8BcIv/xAAfEAACAQQCAwAAAAAAAAAAAAAAARECITFhEyJBUXH/2gAIAQEABj8CuheKfZHGn9O0TsytF4q2NMsZP//EABsQAQADAQEBAQAAAAAAAAAAAAEAESFBURAx/9oACAEBAAE/IXgons6aOwnWl3TBNu9xqUQcch+ISAbgImnOp8n/2gAMAwEAAgADAAAAEDcoAv/EABYRAQEBAAAAAAAAAAAAAAAAAABhAf/aAAgBAwEBPxCOoq6rr//EABcRAAMBAAAAAAAAAAAAAAAAAAARUQH/2gAIAQIBAT8QSjyiQSH/xAAfEAEAAwACAQUAAAAAAAAAAAABABEhMUGhUWFxkfD/2gAIAQEAAT8QIMipjCPV4XYBzR3DxQconzNow2G17Z4lxF51X+oAsjUUX4ho0LC30GWlpg54Z+wT/9k=","aspectRatio":1,"src":"/static/f56e51cac14719be4f33b4f802a1de49/1dc0b/devsecops1.jpg","srcSet":"/static/f56e51cac14719be4f33b4f802a1de49/3a5ce/devsecops1.jpg 163w,\n/static/f56e51cac14719be4f33b4f802a1de49/05730/devsecops1.jpg 327w,\n/static/f56e51cac14719be4f33b4f802a1de49/1dc0b/devsecops1.jpg 653w,\n/static/f56e51cac14719be4f33b4f802a1de49/f72c7/devsecops1.jpg 980w,\n/static/f56e51cac14719be4f33b4f802a1de49/0ff54/devsecops1.jpg 1200w","srcWebp":"/static/f56e51cac14719be4f33b4f802a1de49/0acdf/devsecops1.webp","srcSetWebp":"/static/f56e51cac14719be4f33b4f802a1de49/ac59e/devsecops1.webp 163w,\n/static/f56e51cac14719be4f33b4f802a1de49/7660b/devsecops1.webp 327w,\n/static/f56e51cac14719be4f33b4f802a1de49/0acdf/devsecops1.webp 653w,\n/static/f56e51cac14719be4f33b4f802a1de49/75470/devsecops1.webp 980w,\n/static/f56e51cac14719be4f33b4f802a1de49/9000d/devsecops1.webp 1200w","sizes":"(max-width: 653px) 100vw, 653px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2062v63h3c3%201%204%201%204-12v-11l1-2v-2c2%200%202%202%202%2015v15l10%205%2021%2012c6%206%2010%207%2010%206%200-2%202-1%202%202s7%2011%207%208l1-7v-5l-3-1c-3-1-4-1-4-4s0-4-3-4-3-2%200-2c2%200%203-1%203-4%200-4%200-5%203-5l4%201c1%201%201%200%201-2%200-3-2-6-4-5l-2%203-1%202c-2%200-1-5%201-6%201-2%203-2%205-2%203%201%203%201%203-3v-3c2%200%202%2010%200%2011l-1%203c0%202%200%202%201%201l2-2%202%201v12l-1%209-1-4-1%201c1%204-1%206-2%202-1-1-1%203-1%209%200%208%200%209%201%202%200-8%200-9%203-7%202%202%202%203%202%2011%200%2011%200%2015%203%2016%203%200%203%200%203-12%201-15%202-15%203%200v12h3l12%202%2010%201h10l9-1v-2c-2-1-2-2-1-6l1-5v-7l-2-2h2v-2c-2-2-3-4%200-2%201%201%201%201%201-1l-1-2v-2l-1-6c-1-3-1-3%201-3%201%200%202-1%202-3l-1-2-1-1c-1-1-2-2-7-2-6-1-6-1-2-6l3-4%2010%202%2014%201%204%201-4%204-5%203c-2-2-3%201-3%207%201%205%201%205%202%203s1-2%201%200v14h-1c-2-2-3%200-3%208%200%207%201%208%202%207%203-1%206-1%2021%201l15%202%206-3c6-3%2014-4%2019-1%201%200%203-2%205-7%204-8%2014-21%2017-22l5-3%2010-4%209-5%202-3h-2l-37-8c-1%200%201-3%205-6l4-3%2019%204%2020%205c2%200%202%200%202-3l1-2v3l2%203%201-3c0-2%200-3%201-2l1%203v2c2%200%202-1%202-3l1-3%201%202c0%202%201%202%204%200s6-2%2011-1c3%200%204%202%201%202l-3%201%202%201c2-1%202%200%202%205l2%202c2%201%202%201%202-1%200-5%203-16%208-25a147%20147%200%2001108-76l1%2030v31l-3%201a247%20247%200%2000-32%209c-2%200-2%200-1%202v1c-1%200-2%200-1-1l-2-1-3%201v2c1%201%200%202-2%201l-1%201h-2l-2%201v1l-5%202c-4%202-4%202-2%202h3l2-1%203-2c1%200%203%205%201%206v3c0%203-18%2011-19%208l-2-2-1%201c3%204-8%209-11%206-2-1-2-1-2%201%201%202%200%202-4%204l-3%203%209-4%203-1%2012-5%202-1%2010-3%209-2%201-2-1-3-1-6c0-4%201-4%203-5l7-2h6l1%201v-1l2-2c3-1%205-1%205%202l1%201v-2l1-3%201%202c-1%202%200%202%202%202%201%200%202%200%201-2l-1-1-1-1%2011-3c2%200%200%204-2%204l-1%201v2l-1%201h-1l-3%202c-2%200-2%200%200%201l-9%204-12%204v6l1-3c1-2%205-5%208-4h1l9-2c2%201%201%203-2%204l-3%201%208-1%207-1c-1%200-5%2012-4%2013l-4%202c-5%201-6%203-6%2012l-1%203-4%203c-2%203-4%204-9%205-6%201-7%202-7%203l-1%204c-3%203-1%203%207%200l5-1h-5c-7%201-4-1%204-2%206-1%207-1%206-3l1-2c3%202%201%205-3%206l-4%201h5c3%200%204%200%203%201h-3v2l-1%202v-1l-1-1-2%202c0%203%200%203-1%200s-2-3-5-2l-3%203-2%204c-1%201-1%201%205%201h5l-1%201v1c-2%201-2%201-1%202l-4%202c-8%202-10%203-8%205%203%202%2028-3%2029-6%201-2%202-2%209-4%205%200%205-2%205%2039v35h-14v7l-1%207c-1%200-2-10-1-25%200-8%200-8-2-7h-4c0-1%201-2%203-2h3v-13h-5a454%20454%200%2000-13%200c-1-2%200-3%2010-3h5l-1%201c4%202%204%201%204-3v-4l-10%201-11%201-1%2025-1%2020c-1-4-1-4-1%203l1%207h6l7%201h-8l-9-1c-1-1-1%200-1%204%200%208%201%208%2014%207l10%201v1c2%200%202%201%202%203%200%203%200%203-2%202h-1c1%202%200%202-2%202s-3%200-2%201l2%201-2%201c-1-1-2%200-2%201-1%202-3%203-3%200l-1%201v2l-14%201c-14%200-15%200-15-2h-1c-1%202-3%202-10%202-10%200-10%200-7-5%202-3%202-3%203-1s1%202%203%200l2-4%202-3%201-1h-4l-1%202c-3%200-6%203-8%208l-1%204h-11l-19-2c-11-1-16-1-9%201%204%201%203%201-8%201l-13-1-11-3-1-1h-5c0%201%204%203%2010%204%205%201%204%201-6%201l-15-1h-4l-9%201c-10%200-10-1-1-2%209%200%207-1-2-1-7%200-8%200-8%202v1l-1-1-11-1-59%202H87l1-2c0-3%200-3-3-3s-3%200-2%203l1%202h-9c-5%200-9%200-8-1s3-18%201-18l-1%204c-1%203-1%204-4%204-2%200-3%200-3-2-1-1-1-1-1%201s1%202%203%202%203%200%202%201l1%203c1%201%201%201-3%201h-5v-30H39v31l6-1%2014%201%208%201-4%201-15%202H37v-34h-3c-2%200-2%200-1-1l4-1h2l-1-1-1-34v-34l-4%201c-3%202-4%202-4%201%201-2-3-3-5-2-1%202-2%2024-1%2026v3c0%203-1%203-5%202-12-1-11%200-11-7%200-5%200-6-1-3l-1%202-3-2c-2-1-2%200-2%2079v80l3-1c3%200%203%201%200%202l-3%201v37h6c7%200%209-1%209-3%200-3%204-5%207-4l8%201h6l-3-2-3-1h3c5%201%2011%200%2014-3%204-3%204-1%200%203-2%203-8%206-11%206l-4%202c-2%201%201%201%2027%201h29l1-3%204-3h3l-3-1c-2-2-3-2-3%200h-2c-1-3%202-4%206-2%202%202%204%202%209%202h7l-1-2-1-6v-4l1%204%201%203c0-3%202%201%202%205%200%205%201%207%207%207h4l-5-7a3545%203545%200%2000-22-32l30-1%2030%201%206%204c5%205%208%206%206%202l2-1%209-2%204-1-12%201c-2%200-3%200-2-1s16-4%2017-2h14l10-1%206%204%206%206%201%201%2013%209c0%201-8%203-36%208-14%203-16%204-16%205l2%203c2%200%202%200%201%201-2%201-2%201%201%201l5%201%204%201c3%200%203%200%202-1v-2l2%202c1%201%2028%202%2028%200%200-1-3-2-7-1-6%201-7%201-7-3%200-1%200-2-1-1%200%203-1%202-5-1-3-4-3-4-1-4%204-1%205-1%206%202%201%202%201%202%206%202%205-1%205-1%208%202l3%204%206%201h6l-2-2c-3-4%200-4%205-1l4%203h151l-1-137V125l-4%201h-3l4-2h4V0H0v62m243%2077c-5%206-8%2017-6%2025l1%204v-5c0-5%202-5%203-1%201%208%203%2012%204%2012l1%201c-1%201%202%205%204%205l3-3c8-8%207-29%200-38-4-4-6-4-10%200m42%202l-3%203v1h1l1%201-1%201-1%207-1%207-1-4c0-2%200-3-4-3h-5c-1%200-2%202-2%207l-3%2013c-4%207-4%206%201%206%204-1%204%200%201%204-3%202-4%202-9%202-16%200-20-2-24-11l-2-2-1%202c-2-1-3%200-2%204%202%206%202%207%205%209%202%201%201%201-3%202l-8%202c-2%200-2%200%200%202s2%202%209%201l12-2c3%200%203%200%203-3%200-5%202-5%202-1v4h6l2-1%201%201%205%201h7l2%201%201%201h3l2%201-1%201c-1%200-1%201%201%201%201%201%201%201-1%201l-2-1h-36l17%202%2021%202c5%200%205%200%205-2s-1-3-2-3l1-1%201-1v-3l-1-2c1-1%200-1-2-1l-3-1h4c3%200%203%201%203%202l1%202%201-1v-1l1%202%201%201-1%201-2%201h2c2%200%202%200%202%202v1l1%201%202%203c3%202%201%203-3%201-2-1-4%200-5%201l-5%201v-1l-18-2-22-1%206%201c5%200%206%200%203%201l-4%201%205%205%205%205v-4l1-4c1-1%201%209%201%2028l1%2038%201%204h-7l-5%201a1508%201508%200%200124%204c4%200%204%200%204-3%200-2-1-3-2-3l-2-1h2c2%200%203-6%201-6l-4-1-1%206v6l-1-7v-6l7%201h7v-53h-7c-5%200-6%200-4-1h-5c-4%200-4%200-4%204%200%205%203%2012%207%2018l3%204%204%204c2%201%203%205%201%205s-1%202%201%202c1%201%201%201-1%201-1%201-2%200-2-1%200-2-3%202-3%205%200%201%200%202-1%201-1-2-3-1-3%203l-1%204-2-3-1-3v3c0%202%200%202-1%201-1-2-1-1-1%204a901%20901%200%2001-1-54c-1-3%200-3%209-4a462%20462%200%200130%200l-1%202-19%203c8%200%208-1%208%2029v27h3c10%202%2011%202%2015-2%205-5%209-6%2029-7%2019-1%2019-1%2018-7%200-4%200-4-5-4l-10-1h5l10-1-5-1h-7l6-1h6v-34l-6-2-15-6-11-4a504%20504%200%200011-4l4-1h-5l-4%201-6%201-6%201c-2%200-2%200-1-1l5-2%204-1h4l18-3%2021-3h14c1%202%200%203-3%203l-2%201-6%201-9%201c-1%201%200%201%205%201a975%20975%200%2000-6%204l-1%201%2019-1h6v-8c0-7%200-8-2-8a480%20480%200%2001-45%207%202717%202717%200%2001-38%204c0-3%201-4%205-4%203%200%203-1-1-5-8-9-14-20-15-30v-16l-1%203M1%20143l3%203c24%205%2054%2021%2061%2032l3%203c0-8-22-24-44-32l-23-6m83%205c-3%200-4%202-3%205%200%202%200%202-1%201h-1l3%205%203%203%202-2%202-1c1%201%203-2%203-5%200-1%200-2%201-1l1-1-1-1-4-2-3-2-2%201m-83%202c0%201%201%202%203%202l4%201%2012%204c15%205%2025%2010%2030%2016%203%203%205%205%204%206h2c-1%201%202%207%204%207%201%201%201%201-1%201-2%201-2%200-4-2%200-2-3-4-5-6-11-6-49-17-49-13l4%201%205%202%203%201c5%200%2024%206%2028%208a84%2084%200%200117%2012c1%201%201%201-1%201l-16-4-2%201%204%201%204%202c1%201-4%203-6%202s-2%200-2%2010v11l3%201%207%205%203%203v-4c0-5%202-15%205-21v-4l1-1%203%203c1%202%201%202%201%200l1-2v-1l-3-2c-1-3-1-3%203-4%202-1%203-1%203%201v4c1%202%202-3%201-7-3-11-27-25-52-32l-14-3m162%2047c-5%203-7%2012-3%2012v1l-2%201h2v1l-2%201h1l1%201v1a516%20516%200%200012%203l2%202v-2c0-2%200-2%201-1h1c0-3-6-9-8-7h-3v-1l1-3c0-3%200-4-2-4s-1-3%202-4c3-2%201-2-3-1m30%201l-5%201%204%201c2-1%203%200%203%201l7%201c6%200%206%200%200%201-4%201-6%203-3%203%201%200%202%201%201%202l-2%201c-2%200-4%202-2%203l7%201c4%200%204%200%202%201l-3%201%202%201c2%201%202%201%201%202v1c1%200%203%206%203%2013l-1%204c0-4-7-4-8%200-1%202%200%202%203%202l4%201-5%201c-5-1-7%200-7%203%200%202%201%202%205%202h6l-5%201c-5%200-6%200-6%202h3c1-1%201-1%201%201s-1%202-4%202c-4-1-5%200-2%202h4c4%200%203%203-1%203l-4%201h9v-3c1-4%201-4%204-3v1l-2%202%202%201%201%201%201%202v2c-1%201-1%203%201%203v-1c-1-2%203-2%209-1l3%201-3%201h1l2%202%202%202-1%201c-2%201-2%201%200%201%204%200%206-5%202-6h3l5-1c1-2%204-2%204-1l-1%202h-2v4l-1%201%202%201%201-1v-1c1-1%201%200%201%201l-2%202%203%201c5%202%207%201%207-2-1-1%200-2%201-2l1%204c0%202%200%203%202%203l1-6c0-4%200-5-1-4-3%202-6%200-5-2%201-3%206-3%206%200h1c2-2%203-1%202%201%200%202%200%202%202%202s2%200%202-25c0-13%200-24-1-23%200%202-1%202-4-1-4-4-4-4-10-4-11%200-22-4-31-11l-7-4-8%201m-130%209c0%207-1%2013-3%2013l-1-3-1%206c0%209%200%2010%203%2015l3%206c0%206%207%203%2011-4%203-6%205-12%203-13-1-1-1%200-1%203%200%206-9%2014-9%207%200-2%200-2-1%201-2%205-3%204-3-3v-8c-1%200%205-4%208-4%202%200%202%200%201-1l-2-1-3%201h-3l1-1%201-1-1-2v-1c1%200%201-2-1-4-1-2-1-2%201-2v-2l-1-1-1-1v-4l-1-2v6m86%203c-3%203-5%2010-5%2018-1%2016%206%2029%2010%2019%201-3%202-4%203-2l-4%207c-2%201%201%202%203%201v-1c-1-1%200-1%202-1l4%201c1%201%203%200%203-1s-1-2-3-2l-1-2v-3c-2-1-8-2-8%200l-2%201c-4%200-5-4-6-13%200-7%201-15%203-15l1-1%203-1c3%200%204-1%204-3%200-3-3-4-7-2m-38%202c-4%200-4%204%200%204l4%201c2%200%202%200%202-2%200-4%202%202%202%208v4c-1-3-1-3-1-1l-1%206c0%203%200%203%201%202h1l1%201%201-1%202-3%201-3-2-1-1-11c-1-5-2-5-10-4m66%2016l-1%208-1%203v-3l-1-3c-2%200-2%202-2%206l-2%201-1%201c0%201%203%200%205-2h1c0%202-2%204-5%204-1%200-2%201-2%203v3l1%205v5l1-3c0-2%201-3%203-4l3-1h-6l2-2c3-4%206-14%206-21l-1-5v5m123-3c-1%202-1%203%201%205l4%207%203%203%203%201c1%201%200%202-5%202-8%200-7%201%202%201%208%200%2012-1%208-3l-2-1c-3%200-2-1%201-1l3-1-6-1c-5%201-5%201-4-1%202-1%200-6-4-11-3-3-3-3-4%200M39%20238v11h19c0-1-3-8-8-15-4-7-5-8-8-8l-3%201v11m291-11l-2%201-3%201%203%201c2%200%203%201%201%204%200%201-1%202-3%202-3%200-4%201-4%202-1%202-1%202%201%202l7%201-5%201c-3%200-3%200-3%202%200%203%200%203%205%203%202%200%204%200%203-1l-2-1c-4%200-1-1%204-2%206%200%207-1%207-3h-1c-1%202-7%202-7%200l-2-1c-1%200-1-1%201-2%203-1%203-1%202-2s-1-1%201-1%203-3%201-4c-3-1-2-3%200-3%202-1%202-1-1-1l-3%201M94%20241l1%207c0%204%200%204%203%204l3-2c0-2-1-2-3-1-1%201-1%201-1-3%200-5%201-5%203-5s3%200%203%205v6h7c9%200%2010-1%209-3-1-1-1-2%201-3l1-4c0-2%200-2%201%201l1%202%201%202v4l2-1%203-2c2%200%202%200%201%201-3%200-2%202%200%203l2-1c-1-2%202-4%206-4%205%200%206%200%204-5l-1-3h-24c-23%200-24%200-23%202m194%2031c-1%205-1%206%201%206l1%201h-2l-1%201%205%203c4%201%204%201%204-1l2-4-2-2-1-2h2c1%201%204%200%203-1l-12-1M16%20316v8c0%205%201%206%203%206%207%201%2011-8%206-13-2-2-8-3-9-1m67%201c-3%203-3%207%200%2010%204%205%2010%202%2010-4%200-7-6-10-10-6m15%202c-2%200-2%201-2%208l1%207%201-2c0-2%200-3%201-2%205%201%209-9%204-11l-2-1-3%201m-41%2042l6%2014c6%2012%209%2015%209%2010%200-2%203-1%205%203l3%205%202%204%201%201%201-1h1l1-4-4-8-4-9-2-5c-1-4-1-4%202-4%202%200%203%200%203-2h-4c-3%200-4%200-3-1l5-1c4%200%208-1%206-2H57m75%202c-10%202-9%201-9%2010%200%206%200%208%202%208l1-1%202-2%201%202v2l2-3%202-4%201-4%202-6c2-3%202-3-4-2m76%207c1%205%206%2010%2010%2010l2-1v-4c0-2-1-3-5-6-7-5-7-5-7%201m-20%201h-12c1%202-2%203-3%201-2-1-4-2-4%200%200%201%2017%2014%2019%2014v-2c-3-2-1-3%201%200h8c7-1%208-2%206-4-3-2-2-5%200-5s2%200-2-3l-4-3-9%202m-35%201l-6%201c-4%200-4%200-4%203%201%203%200%203-3-1-5-7-6%200-1%2017l2%208h12l-7-8c-9-10-10-12-8-13l4%201c2%202%206%202%207%200l-1-2c-2-1%201-3%205-4l4-2h-4'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAMEAQIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAeRLfwMqIOlcaqK//8QAHBAAAgICAwAAAAAAAAAAAAAAAQIAAxESEyEi/9oACAEBAAEFAijKaqTYSKUgbILTkxK+zf4O7T//xAAWEQADAAAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BlksplM//xAAWEQEBAQAAAAAAAAAAAAAAAAARABD/2gAIAQIBAT8BcIv/xAAfEAACAQQCAwAAAAAAAAAAAAAAARECITFhEyJBUXH/2gAIAQEABj8CuheKfZHGn9O0TsytF4q2NMsZP//EABsQAQADAQEBAQAAAAAAAAAAAAEAESFBURAx/9oACAEBAAE/IXgons6aOwnWl3TBNu9xqUQcch+ISAbgImnOp8n/2gAMAwEAAgADAAAAEDcoAv/EABYRAQEBAAAAAAAAAAAAAAAAAABhAf/aAAgBAwEBPxCOoq6rr//EABcRAAMBAAAAAAAAAAAAAAAAAAARUQH/2gAIAQIBAT8QSjyiQSH/xAAfEAEAAwACAQUAAAAAAAAAAAABABEhMUGhUWFxkfD/2gAIAQEAAT8QIMipjCPV4XYBzR3DxQconzNow2G17Z4lxF51X+oAsjUUX4ho0LC30GWlpg54Z+wT/9k=","aspectRatio":1,"src":"/static/f56e51cac14719be4f33b4f802a1de49/eaa58/devsecops1.jpg","srcSet":"/static/f56e51cac14719be4f33b4f802a1de49/5a3ee/devsecops1.jpg 114w,\n/static/f56e51cac14719be4f33b4f802a1de49/41f8f/devsecops1.jpg 229w,\n/static/f56e51cac14719be4f33b4f802a1de49/eaa58/devsecops1.jpg 457w,\n/static/f56e51cac14719be4f33b4f802a1de49/c309b/devsecops1.jpg 686w,\n/static/f56e51cac14719be4f33b4f802a1de49/e3008/devsecops1.jpg 914w,\n/static/f56e51cac14719be4f33b4f802a1de49/0ff54/devsecops1.jpg 1200w","srcWebp":"/static/f56e51cac14719be4f33b4f802a1de49/15384/devsecops1.webp","srcSetWebp":"/static/f56e51cac14719be4f33b4f802a1de49/31fce/devsecops1.webp 114w,\n/static/f56e51cac14719be4f33b4f802a1de49/e3e25/devsecops1.webp 229w,\n/static/f56e51cac14719be4f33b4f802a1de49/15384/devsecops1.webp 457w,\n/static/f56e51cac14719be4f33b4f802a1de49/0258d/devsecops1.webp 686w,\n/static/f56e51cac14719be4f33b4f802a1de49/64ea2/devsecops1.webp 914w,\n/static/f56e51cac14719be4f33b4f802a1de49/9000d/devsecops1.webp 1200w","sizes":"(max-width: 457px) 100vw, 457px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2062v63h3c3%201%204%201%204-12v-11l1-2v-2c2%200%202%202%202%2015v15l10%205%2021%2012c6%206%2010%207%2010%206%200-2%202-1%202%202s7%2011%207%208l1-7v-5l-3-1c-3-1-4-1-4-4s0-4-3-4-3-2%200-2c2%200%203-1%203-4%200-4%200-5%203-5l4%201c1%201%201%200%201-2%200-3-2-6-4-5l-2%203-1%202c-2%200-1-5%201-6%201-2%203-2%205-2%203%201%203%201%203-3v-3c2%200%202%2010%200%2011l-1%203c0%202%200%202%201%201l2-2%202%201v12l-1%209-1-4-1%201c1%204-1%206-2%202-1-1-1%203-1%209%200%208%200%209%201%202%200-8%200-9%203-7%202%202%202%203%202%2011%200%2011%200%2015%203%2016%203%200%203%200%203-12%201-15%202-15%203%200v12h3l12%202%2010%201h10l9-1v-2c-2-1-2-2-1-6l1-5v-7l-2-2h2v-2c-2-2-3-4%200-2%201%201%201%201%201-1l-1-2v-2l-1-6c-1-3-1-3%201-3%201%200%202-1%202-3l-1-2-1-1c-1-1-2-2-7-2-6-1-6-1-2-6l3-4%2010%202%2014%201%204%201-4%204-5%203c-2-2-3%201-3%207%201%205%201%205%202%203s1-2%201%200v14h-1c-2-2-3%200-3%208%200%207%201%208%202%207%203-1%206-1%2021%201l15%202%206-3c6-3%2014-4%2019-1%201%200%203-2%205-7%204-8%2014-21%2017-22l5-3%2010-4%209-5%202-3h-2l-37-8c-1%200%201-3%205-6l4-3%2019%204%2020%205c2%200%202%200%202-3l1-2v3l2%203%201-3c0-2%200-3%201-2l1%203v2c2%200%202-1%202-3l1-3%201%202c0%202%201%202%204%200s6-2%2011-1c3%200%204%202%201%202l-3%201%202%201c2-1%202%200%202%205l2%202c2%201%202%201%202-1%200-5%203-16%208-25a147%20147%200%2001108-76l1%2030v31l-3%201a247%20247%200%2000-32%209c-2%200-2%200-1%202v1c-1%200-2%200-1-1l-2-1-3%201v2c1%201%200%202-2%201l-1%201h-2l-2%201v1l-5%202c-4%202-4%202-2%202h3l2-1%203-2c1%200%203%205%201%206v3c0%203-18%2011-19%208l-2-2-1%201c3%204-8%209-11%206-2-1-2-1-2%201%201%202%200%202-4%204l-3%203%209-4%203-1%2012-5%202-1%2010-3%209-2%201-2-1-3-1-6c0-4%201-4%203-5l7-2h6l1%201v-1l2-2c3-1%205-1%205%202l1%201v-2l1-3%201%202c-1%202%200%202%202%202%201%200%202%200%201-2l-1-1-1-1%2011-3c2%200%200%204-2%204l-1%201v2l-1%201h-1l-3%202c-2%200-2%200%200%201l-9%204-12%204v6l1-3c1-2%205-5%208-4h1l9-2c2%201%201%203-2%204l-3%201%208-1%207-1c-1%200-5%2012-4%2013l-4%202c-5%201-6%203-6%2012l-1%203-4%203c-2%203-4%204-9%205-6%201-7%202-7%203l-1%204c-3%203-1%203%207%200l5-1h-5c-7%201-4-1%204-2%206-1%207-1%206-3l1-2c3%202%201%205-3%206l-4%201h5c3%200%204%200%203%201h-3v2l-1%202v-1l-1-1-2%202c0%203%200%203-1%200s-2-3-5-2l-3%203-2%204c-1%201-1%201%205%201h5l-1%201v1c-2%201-2%201-1%202l-4%202c-8%202-10%203-8%205%203%202%2028-3%2029-6%201-2%202-2%209-4%205%200%205-2%205%2039v35h-14v7l-1%207c-1%200-2-10-1-25%200-8%200-8-2-7h-4c0-1%201-2%203-2h3v-13h-5a454%20454%200%2000-13%200c-1-2%200-3%2010-3h5l-1%201c4%202%204%201%204-3v-4l-10%201-11%201-1%2025-1%2020c-1-4-1-4-1%203l1%207h6l7%201h-8l-9-1c-1-1-1%200-1%204%200%208%201%208%2014%207l10%201v1c2%200%202%201%202%203%200%203%200%203-2%202h-1c1%202%200%202-2%202s-3%200-2%201l2%201-2%201c-1-1-2%200-2%201-1%202-3%203-3%200l-1%201v2l-14%201c-14%200-15%200-15-2h-1c-1%202-3%202-10%202-10%200-10%200-7-5%202-3%202-3%203-1s1%202%203%200l2-4%202-3%201-1h-4l-1%202c-3%200-6%203-8%208l-1%204h-11l-19-2c-11-1-16-1-9%201%204%201%203%201-8%201l-13-1-11-3-1-1h-5c0%201%204%203%2010%204%205%201%204%201-6%201l-15-1h-4l-9%201c-10%200-10-1-1-2%209%200%207-1-2-1-7%200-8%200-8%202v1l-1-1-11-1-59%202H87l1-2c0-3%200-3-3-3s-3%200-2%203l1%202h-9c-5%200-9%200-8-1s3-18%201-18l-1%204c-1%203-1%204-4%204-2%200-3%200-3-2-1-1-1-1-1%201s1%202%203%202%203%200%202%201l1%203c1%201%201%201-3%201h-5v-30H39v31l6-1%2014%201%208%201-4%201-15%202H37v-34h-3c-2%200-2%200-1-1l4-1h2l-1-1-1-34v-34l-4%201c-3%202-4%202-4%201%201-2-3-3-5-2-1%202-2%2024-1%2026v3c0%203-1%203-5%202-12-1-11%200-11-7%200-5%200-6-1-3l-1%202-3-2c-2-1-2%200-2%2079v80l3-1c3%200%203%201%200%202l-3%201v37h6c7%200%209-1%209-3%200-3%204-5%207-4l8%201h6l-3-2-3-1h3c5%201%2011%200%2014-3%204-3%204-1%200%203-2%203-8%206-11%206l-4%202c-2%201%201%201%2027%201h29l1-3%204-3h3l-3-1c-2-2-3-2-3%200h-2c-1-3%202-4%206-2%202%202%204%202%209%202h7l-1-2-1-6v-4l1%204%201%203c0-3%202%201%202%205%200%205%201%207%207%207h4l-5-7a3545%203545%200%2000-22-32l30-1%2030%201%206%204c5%205%208%206%206%202l2-1%209-2%204-1-12%201c-2%200-3%200-2-1s16-4%2017-2h14l10-1%206%204%206%206%201%201%2013%209c0%201-8%203-36%208-14%203-16%204-16%205l2%203c2%200%202%200%201%201-2%201-2%201%201%201l5%201%204%201c3%200%203%200%202-1v-2l2%202c1%201%2028%202%2028%200%200-1-3-2-7-1-6%201-7%201-7-3%200-1%200-2-1-1%200%203-1%202-5-1-3-4-3-4-1-4%204-1%205-1%206%202%201%202%201%202%206%202%205-1%205-1%208%202l3%204%206%201h6l-2-2c-3-4%200-4%205-1l4%203h151l-1-137V125l-4%201h-3l4-2h4V0H0v62m243%2077c-5%206-8%2017-6%2025l1%204v-5c0-5%202-5%203-1%201%208%203%2012%204%2012l1%201c-1%201%202%205%204%205l3-3c8-8%207-29%200-38-4-4-6-4-10%200m42%202l-3%203v1h1l1%201-1%201-1%207-1%207-1-4c0-2%200-3-4-3h-5c-1%200-2%202-2%207l-3%2013c-4%207-4%206%201%206%204-1%204%200%201%204-3%202-4%202-9%202-16%200-20-2-24-11l-2-2-1%202c-2-1-3%200-2%204%202%206%202%207%205%209%202%201%201%201-3%202l-8%202c-2%200-2%200%200%202s2%202%209%201l12-2c3%200%203%200%203-3%200-5%202-5%202-1v4h6l2-1%201%201%205%201h7l2%201%201%201h3l2%201-1%201c-1%200-1%201%201%201%201%201%201%201-1%201l-2-1h-36l17%202%2021%202c5%200%205%200%205-2s-1-3-2-3l1-1%201-1v-3l-1-2c1-1%200-1-2-1l-3-1h4c3%200%203%201%203%202l1%202%201-1v-1l1%202%201%201-1%201-2%201h2c2%200%202%200%202%202v1l1%201%202%203c3%202%201%203-3%201-2-1-4%200-5%201l-5%201v-1l-18-2-22-1%206%201c5%200%206%200%203%201l-4%201%205%205%205%205v-4l1-4c1-1%201%209%201%2028l1%2038%201%204h-7l-5%201a1508%201508%200%200124%204c4%200%204%200%204-3%200-2-1-3-2-3l-2-1h2c2%200%203-6%201-6l-4-1-1%206v6l-1-7v-6l7%201h7v-53h-7c-5%200-6%200-4-1h-5c-4%200-4%200-4%204%200%205%203%2012%207%2018l3%204%204%204c2%201%203%205%201%205s-1%202%201%202c1%201%201%201-1%201-1%201-2%200-2-1%200-2-3%202-3%205%200%201%200%202-1%201-1-2-3-1-3%203l-1%204-2-3-1-3v3c0%202%200%202-1%201-1-2-1-1-1%204a901%20901%200%2001-1-54c-1-3%200-3%209-4a462%20462%200%200130%200l-1%202-19%203c8%200%208-1%208%2029v27h3c10%202%2011%202%2015-2%205-5%209-6%2029-7%2019-1%2019-1%2018-7%200-4%200-4-5-4l-10-1h5l10-1-5-1h-7l6-1h6v-34l-6-2-15-6-11-4a504%20504%200%200011-4l4-1h-5l-4%201-6%201-6%201c-2%200-2%200-1-1l5-2%204-1h4l18-3%2021-3h14c1%202%200%203-3%203l-2%201-6%201-9%201c-1%201%200%201%205%201a975%20975%200%2000-6%204l-1%201%2019-1h6v-8c0-7%200-8-2-8a480%20480%200%2001-45%207%202717%202717%200%2001-38%204c0-3%201-4%205-4%203%200%203-1-1-5-8-9-14-20-15-30v-16l-1%203M1%20143l3%203c24%205%2054%2021%2061%2032l3%203c0-8-22-24-44-32l-23-6m83%205c-3%200-4%202-3%205%200%202%200%202-1%201h-1l3%205%203%203%202-2%202-1c1%201%203-2%203-5%200-1%200-2%201-1l1-1-1-1-4-2-3-2-2%201m-83%202c0%201%201%202%203%202l4%201%2012%204c15%205%2025%2010%2030%2016%203%203%205%205%204%206h2c-1%201%202%207%204%207%201%201%201%201-1%201-2%201-2%200-4-2%200-2-3-4-5-6-11-6-49-17-49-13l4%201%205%202%203%201c5%200%2024%206%2028%208a84%2084%200%200117%2012c1%201%201%201-1%201l-16-4-2%201%204%201%204%202c1%201-4%203-6%202s-2%200-2%2010v11l3%201%207%205%203%203v-4c0-5%202-15%205-21v-4l1-1%203%203c1%202%201%202%201%200l1-2v-1l-3-2c-1-3-1-3%203-4%202-1%203-1%203%201v4c1%202%202-3%201-7-3-11-27-25-52-32l-14-3m162%2047c-5%203-7%2012-3%2012v1l-2%201h2v1l-2%201h1l1%201v1a516%20516%200%200012%203l2%202v-2c0-2%200-2%201-1h1c0-3-6-9-8-7h-3v-1l1-3c0-3%200-4-2-4s-1-3%202-4c3-2%201-2-3-1m30%201l-5%201%204%201c2-1%203%200%203%201l7%201c6%200%206%200%200%201-4%201-6%203-3%203%201%200%202%201%201%202l-2%201c-2%200-4%202-2%203l7%201c4%200%204%200%202%201l-3%201%202%201c2%201%202%201%201%202v1c1%200%203%206%203%2013l-1%204c0-4-7-4-8%200-1%202%200%202%203%202l4%201-5%201c-5-1-7%200-7%203%200%202%201%202%205%202h6l-5%201c-5%200-6%200-6%202h3c1-1%201-1%201%201s-1%202-4%202c-4-1-5%200-2%202h4c4%200%203%203-1%203l-4%201h9v-3c1-4%201-4%204-3v1l-2%202%202%201%201%201%201%202v2c-1%201-1%203%201%203v-1c-1-2%203-2%209-1l3%201-3%201h1l2%202%202%202-1%201c-2%201-2%201%200%201%204%200%206-5%202-6h3l5-1c1-2%204-2%204-1l-1%202h-2v4l-1%201%202%201%201-1v-1c1-1%201%200%201%201l-2%202%203%201c5%202%207%201%207-2-1-1%200-2%201-2l1%204c0%202%200%203%202%203l1-6c0-4%200-5-1-4-3%202-6%200-5-2%201-3%206-3%206%200h1c2-2%203-1%202%201%200%202%200%202%202%202s2%200%202-25c0-13%200-24-1-23%200%202-1%202-4-1-4-4-4-4-10-4-11%200-22-4-31-11l-7-4-8%201m-130%209c0%207-1%2013-3%2013l-1-3-1%206c0%209%200%2010%203%2015l3%206c0%206%207%203%2011-4%203-6%205-12%203-13-1-1-1%200-1%203%200%206-9%2014-9%207%200-2%200-2-1%201-2%205-3%204-3-3v-8c-1%200%205-4%208-4%202%200%202%200%201-1l-2-1-3%201h-3l1-1%201-1-1-2v-1c1%200%201-2-1-4-1-2-1-2%201-2v-2l-1-1-1-1v-4l-1-2v6m86%203c-3%203-5%2010-5%2018-1%2016%206%2029%2010%2019%201-3%202-4%203-2l-4%207c-2%201%201%202%203%201v-1c-1-1%200-1%202-1l4%201c1%201%203%200%203-1s-1-2-3-2l-1-2v-3c-2-1-8-2-8%200l-2%201c-4%200-5-4-6-13%200-7%201-15%203-15l1-1%203-1c3%200%204-1%204-3%200-3-3-4-7-2m-38%202c-4%200-4%204%200%204l4%201c2%200%202%200%202-2%200-4%202%202%202%208v4c-1-3-1-3-1-1l-1%206c0%203%200%203%201%202h1l1%201%201-1%202-3%201-3-2-1-1-11c-1-5-2-5-10-4m66%2016l-1%208-1%203v-3l-1-3c-2%200-2%202-2%206l-2%201-1%201c0%201%203%200%205-2h1c0%202-2%204-5%204-1%200-2%201-2%203v3l1%205v5l1-3c0-2%201-3%203-4l3-1h-6l2-2c3-4%206-14%206-21l-1-5v5m123-3c-1%202-1%203%201%205l4%207%203%203%203%201c1%201%200%202-5%202-8%200-7%201%202%201%208%200%2012-1%208-3l-2-1c-3%200-2-1%201-1l3-1-6-1c-5%201-5%201-4-1%202-1%200-6-4-11-3-3-3-3-4%200M39%20238v11h19c0-1-3-8-8-15-4-7-5-8-8-8l-3%201v11m291-11l-2%201-3%201%203%201c2%200%203%201%201%204%200%201-1%202-3%202-3%200-4%201-4%202-1%202-1%202%201%202l7%201-5%201c-3%200-3%200-3%202%200%203%200%203%205%203%202%200%204%200%203-1l-2-1c-4%200-1-1%204-2%206%200%207-1%207-3h-1c-1%202-7%202-7%200l-2-1c-1%200-1-1%201-2%203-1%203-1%202-2s-1-1%201-1%203-3%201-4c-3-1-2-3%200-3%202-1%202-1-1-1l-3%201M94%20241l1%207c0%204%200%204%203%204l3-2c0-2-1-2-3-1-1%201-1%201-1-3%200-5%201-5%203-5s3%200%203%205v6h7c9%200%2010-1%209-3-1-1-1-2%201-3l1-4c0-2%200-2%201%201l1%202%201%202v4l2-1%203-2c2%200%202%200%201%201-3%200-2%202%200%203l2-1c-1-2%202-4%206-4%205%200%206%200%204-5l-1-3h-24c-23%200-24%200-23%202m194%2031c-1%205-1%206%201%206l1%201h-2l-1%201%205%203c4%201%204%201%204-1l2-4-2-2-1-2h2c1%201%204%200%203-1l-12-1M16%20316v8c0%205%201%206%203%206%207%201%2011-8%206-13-2-2-8-3-9-1m67%201c-3%203-3%207%200%2010%204%205%2010%202%2010-4%200-7-6-10-10-6m15%202c-2%200-2%201-2%208l1%207%201-2c0-2%200-3%201-2%205%201%209-9%204-11l-2-1-3%201m-41%2042l6%2014c6%2012%209%2015%209%2010%200-2%203-1%205%203l3%205%202%204%201%201%201-1h1l1-4-4-8-4-9-2-5c-1-4-1-4%202-4%202%200%203%200%203-2h-4c-3%200-4%200-3-1l5-1c4%200%208-1%206-2H57m75%202c-10%202-9%201-9%2010%200%206%200%208%202%208l1-1%202-2%201%202v2l2-3%202-4%201-4%202-6c2-3%202-3-4-2m76%207c1%205%206%2010%2010%2010l2-1v-4c0-2-1-3-5-6-7-5-7-5-7%201m-20%201h-12c1%202-2%203-3%201-2-1-4-2-4%200%200%201%2017%2014%2019%2014v-2c-3-2-1-3%201%200h8c7-1%208-2%206-4-3-2-2-5%200-5s2%200-2-3l-4-3-9%202m-35%201l-6%201c-4%200-4%200-4%203%201%203%200%203-3-1-5-7-6%200-1%2017l2%208h12l-7-8c-9-10-10-12-8-13l4%201c2%202%206%202%207%200l-1-2c-2-1%201-3%205-4l4-2h-4'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"seo":{"src":"/static/f56e51cac14719be4f33b4f802a1de49/0ff54/devsecops1.jpg"}}},"authors":[{"authorsPage":true,"bio":"Hello everybody 👋 !  My name is Luke and I am the creator and owner of the spaceout.pl. Personally, I am a big geek with huge love for Star Wars, Marvel and DC comic books, Funk and 80s music. I take most of my design inspiration from offline experiences like going to art museums, galleries and working with other creative people on various projects. I also work with various Activist and NGO groups as a pro-bono designer and developer.\n","id":"f69d27c7-7f9a-5fbd-b05d-1a324fd10c0a","name":"Luke Celitan","featured":true,"social":[{"url":"https://www.facebook.com/spaceout/"},{"url":"https://twitter.com/spaceout.pl"},{"url":"https://www.instagram.com/spaceout.pl/"},{"url":"https://huggingface.co/MassivDash"},{"url":"https://bsky.app/profile/lukecelitan.bsky.social"}],"slug":"/authors/luke-celitan","avatar":{"small":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAIFAQME/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABvOTVgtERIAH/xAAaEAEBAQEAAwAAAAAAAAAAAAACAQMEABAS/9oACAEBAAEFAmoDjs0/Oq1a9kUzN+j7/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgEDBQAAAAAAAAAAAAAAAQIAAxESECAxMlH/2gAIAQEABj8CLHgTGqmBPXSlTANsrmKyXLK0B92f/8QAHhABAAECBwAAAAAAAAAAAAAAAREAIRAgMUFhcdH/2gAIAQEAAT8hUmKFDbjke4JaIOG01Fthsd0YugnJ/9oADAMBAAIAAwAAABDzzzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAfEAEBAAEDBQEAAAAAAAAAAAABETEAQWEQICFxgZH/2gAIAQEAAT8QhmFXf0c6oSU1s8jwz0W5QpAeFf1+Gp7aimCmBvvoV0CRyUvZ/9k=","aspectRatio":1,"src":"/static/4f53b0980dc97328dd1294bbc374fd0e/fa1ea/spaceghost.jpg","srcSet":"/static/4f53b0980dc97328dd1294bbc374fd0e/afb2b/spaceghost.jpg 13w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/7c20e/spaceghost.jpg 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/fa1ea/spaceghost.jpg 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/03612/spaceghost.jpg 75w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/61cdf/spaceghost.jpg 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg 305w","srcWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/e7b2c/spaceghost.webp","srcSetWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/58718/spaceghost.webp 13w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/74aad/spaceghost.webp 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/e7b2c/spaceghost.webp 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/ed320/spaceghost.webp 75w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/66016/spaceghost.webp 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp 305w","sizes":"(max-width: 50px) 100vw, 50px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M189%2065A519%20519%200%200065%20299c-5%2020-5%2018%203%2015%208-4%2039-10%2057-12%2011-1%2010%200%2010-11%200-29%206-103%2010-121%204-21%2016-36%2033-43%206-2%208-2%2020-2%2018%200%2024%202%2036%2013%2020%2021%2025%2046%2029%20138l2%2026h10a267%20267%200%200168%2014l-6-26A607%20607%200%2000218%2071c-10-10-15-15-18-15-2%200-6%203-11%209m47%20129c-14%208-26%2015-26%2017%200%203%2018%205%2024%202%205-3%209-10%209-18%200-5%200-5-7-1m-82%201l1%205c1%2011%209%2018%2020%2017%207-1%2013-3%2013-5s-32-19-34-17'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"medium":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAIFAQME/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABvOTVgtERIAH/xAAaEAEBAQEAAwAAAAAAAAAAAAACAQMEABAS/9oACAEBAAEFAmoDjs0/Oq1a9kUzN+j7/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgEDBQAAAAAAAAAAAAAAAQIAAxESECAxMlH/2gAIAQEABj8CLHgTGqmBPXSlTANsrmKyXLK0B92f/8QAHhABAAECBwAAAAAAAAAAAAAAAREAIRAgMUFhcdH/2gAIAQEAAT8hUmKFDbjke4JaIOG01Fthsd0YugnJ/9oADAMBAAIAAwAAABDzzzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAfEAEBAAEDBQEAAAAAAAAAAAABETEAQWEQICFxgZH/2gAIAQEAAT8QhmFXf0c6oSU1s8jwz0W5QpAeFf1+Gp7aimCmBvvoV0CRyUvZ/9k=","aspectRatio":1,"src":"/static/4f53b0980dc97328dd1294bbc374fd0e/61cdf/spaceghost.jpg","srcSet":"/static/4f53b0980dc97328dd1294bbc374fd0e/7c20e/spaceghost.jpg 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/fa1ea/spaceghost.jpg 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/61cdf/spaceghost.jpg 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/59538/spaceghost.jpg 150w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/fd013/spaceghost.jpg 200w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg 305w","srcWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/66016/spaceghost.webp","srcSetWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/74aad/spaceghost.webp 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/e7b2c/spaceghost.webp 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/66016/spaceghost.webp 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/d9b14/spaceghost.webp 150w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/6b183/spaceghost.webp 200w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp 305w","sizes":"(max-width: 100px) 100vw, 100px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M189%2065A519%20519%200%200065%20299c-5%2020-5%2018%203%2015%208-4%2039-10%2057-12%2011-1%2010%200%2010-11%200-29%206-103%2010-121%204-21%2016-36%2033-43%206-2%208-2%2020-2%2018%200%2024%202%2036%2013%2020%2021%2025%2046%2029%20138l2%2026h10a267%20267%200%200168%2014l-6-26A607%20607%200%2000218%2071c-10-10-15-15-18-15-2%200-6%203-11%209m47%20129c-14%208-26%2015-26%2017%200%203%2018%205%2024%202%205-3%209-10%209-18%200-5%200-5-7-1m-82%201l1%205c1%2011%209%2018%2020%2017%207-1%2013-3%2013-5s-32-19-34-17'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"large":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAIFAQME/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABvOTVgtERIAH/xAAaEAEBAQEAAwAAAAAAAAAAAAACAQMEABAS/9oACAEBAAEFAmoDjs0/Oq1a9kUzN+j7/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgEDBQAAAAAAAAAAAAAAAQIAAxESECAxMlH/2gAIAQEABj8CLHgTGqmBPXSlTANsrmKyXLK0B92f/8QAHhABAAECBwAAAAAAAAAAAAAAAREAIRAgMUFhcdH/2gAIAQEAAT8hUmKFDbjke4JaIOG01Fthsd0YugnJ/9oADAMBAAIAAwAAABDzzzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAfEAEBAAEDBQEAAAAAAAAAAAABETEAQWEQICFxgZH/2gAIAQEAAT8QhmFXf0c6oSU1s8jwz0W5QpAeFf1+Gp7aimCmBvvoV0CRyUvZ/9k=","aspectRatio":1,"src":"/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg","srcSet":"/static/4f53b0980dc97328dd1294bbc374fd0e/a2637/spaceghost.jpg 82w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/15203/spaceghost.jpg 164w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg 305w","srcWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp","srcSetWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/2d087/spaceghost.webp 82w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/29d87/spaceghost.webp 164w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp 305w","sizes":"(max-width: 305px) 100vw, 305px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M189%2065A519%20519%200%200065%20299c-5%2020-5%2018%203%2015%208-4%2039-10%2057-12%2011-1%2010%200%2010-11%200-29%206-103%2010-121%204-21%2016-36%2033-43%206-2%208-2%2020-2%2018%200%2024%202%2036%2013%2020%2021%2025%2046%2029%20138l2%2026h10a267%20267%200%200168%2014l-6-26A607%20607%200%2000218%2071c-10-10-15-15-18-15-2%200-6%203-11%209m47%20129c-14%208-26%2015-26%2017%200%203%2018%205%2024%202%205-3%209-10%209-18%200-5%200-5-7-1m-82%201l1%205c1%2011%209%2018%2020%2017%207-1%2013-3%2013-5s-32-19-34-17'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"}}}],"basePath":"/","tech":["TS","Nodejs","ReactIcon","Rust"],"category":"Post","slug":"/dev-sec-ops","id":"e581c596-4e2a-5188-8646-6c6b8ca3221a","title":"Dev Sec Ops","appDescription":null,"mailchimp":false,"next":[{"id":"79f1f069-bbdb-5962-9786-3a737da58129","slug":"/esbuild-react-typescript-template","secret":false,"title":"Esbuild react typescript template","author":"Luke Celitan","date":"November 1st, 2021","dateForSEO":"2021-11-01T00:00:00.000Z","timeToRead":2,"excerpt":"Esbuild template with typescript, react, and tailwindcss","subscription":true,"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Esbuild react typescript template\",\n  \"author\": \"Luke Celitan\",\n  \"date\": \"2021-11-01T00:00:00.000Z\",\n  \"hero\": \"./esbuildcover1.jpg\",\n  \"excerpt\": \"Esbuild template with typescript, react, and tailwindcss\",\n  \"category\": \"Project\",\n  \"tech\": [\"ReactIcon\", \"Tailwind\", \"TS\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"div\", {\n    \"style\": {\n      \"display\": \"flex\",\n      \"justifyContent\": \"flex-start\",\n      \"gap\": \"10px\",\n      \"width\": \"100%\",\n      \"margin\": \"auto\",\n      \"maxWidth\": \"1150px\"\n    }\n  }, \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://github.com/MassivDash/typescript-react-express-esbuild/\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Version\",\n    \"src\": \"https://img.shields.io/badge/version-0.0.1-red.svg?cacheSeconds=2592000\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"#\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"License: MIT\",\n    \"src\": \"https://img.shields.io/badge/License-MIT-yellow.svg\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://twitter.com/spaceoutPL\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Twitter: spaceoutPL\",\n    \"src\": \"https://img.shields.io/twitter/follow/spaceoutPL.svg?style=social\"\n  }), \"\\n  \")), mdx(\"h1\", {\n    \"id\": \"esbuild-template-with-typescript-react-and-tailwindcss\"\n  }, \"Esbuild template with typescript, react, and tailwindcss\"), mdx(\"h2\", {\n    \"id\": \"introduction\"\n  }, \"Introduction\"), mdx(\"p\", null, \"I\\u2019ve have been working with webpack for a very long time now, I am still using\\nthis solution for any proffesional (job) projects in my current employment, the\\nfine grain control it gives its a very fundmanetal for web development process.\"), mdx(\"p\", null, \"That being said, webpack with each iteration, with each new feature, niche bug\\nfix is becoming slower and slower. You can definetly see this in large\\nmonolithic projects using typescript. Some time ago I have come across a\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://esbuild.github.io/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"esbuild bundler\"), \", the author promises to make\\nwebpack and other bundlers obsolete but is true ?\"), mdx(\"p\", null, \"In reality esbuild is way faster than webpack, but less stable and less\\ndeveloped ecosystem around the bundler. It\\u2019s biggest tradeoff and source of\\nspeed is dropping the es5 support, it only supports bundeling with es6 therefore\\ntargeting the modern browsers.\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"2092px\"\n    }\n  }, \"\\n      \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"90.05736137667304%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAABYlAAAWJQFJUiTwAAACpUlEQVQ4y31US27bQAzVCVugSHuULrtp0Qv0HD1AgRRF993EvziKFUu2JFuOJOv/n3khR5ZiO0AJPJBDDTmP5Gg0z9vjUV/CXBswVjosc41eJKTs3gBX9iUEtDDwsDGX2Fo66Qc420ccQxdVeaQNRQ+UPciWIr8AlC6UhqihSSkhhETXCQiyWZqW1z3Pqm4RxRmSNEdR1ngVroBx7gG0sx1omhZJ7KMuI/pKwbJCmUeIQg9xdECeheQriUAfPCaSfXLOro0LCNhuCOfxJ+TTO8INhPEBMD+ecANYnyCN9yjXnxHvbtHmC1RVNSZkXDHsiB31rjGA2qCAB7Kf0BV6b7drNNmS+vBARFdo8o1q1TlTrW1b1HVNyRqw3bQCVUP5GO1Jn1DVvaZzaR8TkBjiWbNoURTBsixst1ulXdche4ONZZJtw3FsbDcWNie4tF4/GTgcPKRpAo4/Ho/IsqxnKE9jGjRvCIKAGi8QhiF836fgg7IZtm2r7/v9HnEc41q0iymRDIEd3RtOVpalajwzSJJEVcKaWfH383h5PmVmNDBkRhzAeghgVnyI53mKWZqmyvcm4TXloigUQ240sxokz3MVwMkG1pz0TckcxNT5tKEMBpfFPgazZt+gh32s+ftut6MBuupQjZt8d3eH5XKJ2WyGxWKB+/sF5vMZradk34/QdZ38c0wmE0ynUxWzWq1gGAZM01Qt0fj+cQnMNMtSsivkBZWTFer/jWOugAflKyRJhDA42XE03r9hqBc95Ftf5DFEy9eBXxlKnno4eDaegxRZ3uF/Ii//ZeDZT+AYt+icL8D+Ozr3K+B9A/wfqINfNJm/kMkfdNFv0rQv/TcO5uLavDqYZdO/b/SqdE0G0fXvXlv5EA29Nl2EhmzZHgnJ+DgMOV4AWVZkeQX2uPUAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/37a21f47130422c48ab4a92eff362cc4/9c780/esbuildbenchmark.webp 2092w\"],\n    \"sizes\": \"(max-width: 2092px) 100vw, 2092px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/37a21f47130422c48ab4a92eff362cc4/ffbc1/esbuildbenchmark.png 2092w\"],\n    \"sizes\": \"(max-width: 2092px) 100vw, 2092px\",\n    \"type\": \"image/png\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/37a21f47130422c48ab4a92eff362cc4/ffbc1/esbuildbenchmark.png\",\n    \"alt\": \"esbuild_benchmark\",\n    \"title\": \"esbuild_benchmark\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  }), \"\\n        \"), \"\\n    \")), mdx(\"p\", null, \"While constructing this template I have challanged myself to fully recrate the\\nstandard webpack development cycle, with linters, typescript and hot module\\nreloading. The hot module replacement was the main deal breaker for me, esbuild\\ncan rebuild the entire package fast, but there is no out of the box solution for\\nhot relead, the devloper is forced to hit the refresh button on each file\\nchange. Since that is a big no go, in my opinion, the hot module replacement is\\nthe most important feature of the bundler setup. With pure esbuild (and not\\nwanting anything from the webpack family), I was forced to look for some other\\nsolutions, unfortunately there are not many projects like this as\\nwebpack-dev-server seems to be a primary solution for this problem.\"), mdx(\"p\", null, \"The truth is that the webpack ecosytem and stableness far outweighs the speed of\\nesbuild. Hopefully with time the esbuild ecosystem will rise enough to provide\\nthe standard of DX that all the developers have currently with other more\\nproffesional open source bundlers or frameworks.\"), mdx(\"p\", null, \"You can get more info on esbuild\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://esbuild.github.io/faq/#why-is-esbuild-fast\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"here\")), mdx(\"h2\", {\n    \"id\": \"starter-kit\"\n  }, \"Starter kit\"), mdx(\"p\", null, \"React and Node.js template with esbuild, typescript, jest, testing libary,\\ntailwind React and Node.js and Typescript with only esbuild packages, starter is\\nstill experimental however fully functional. Since i opted to drop all webpack\\nand webpack family related packages the process of hooking up some kind of live\\nreload proved to be the most difficult to achieve. Project uses \\u201Cservor\\u201D\\npackage, it has a longer booting time than webpack-dev-server\"), mdx(\"p\", null, \"includes\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Server (express)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Static React app with live reload\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Tailwind css (postCSS, Autoprefixer)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Jest / react testing library\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Typescript\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Eslint, husky,\")), mdx(\"h2\", {\n    \"id\": \"🤝-contributing\"\n  }, \"\\uD83E\\uDD1D Contributing\"), mdx(\"p\", null, \"Contributions, issues and feature requests are welcome!\", mdx(\"br\", null), \"Feel free to check\\nin out on\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/MassivDash/typescript-react-express-esbuild/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"github\"), \".\"), mdx(\"h2\", {\n    \"id\": \"show-your-support\"\n  }, \"Show your support\"), mdx(\"p\", null, \"Give a \\u2B50\\uFE0F if this project helped you!\"));\n}\n;\nMDXContent.isMDXComponent = true;","tech":["ReactIcon","Tailwind","TS"],"category":"Project","appDescription":null,"hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAQFAQID/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAb2JxiS3aKNwuAf/xAAaEAACAwEBAAAAAAAAAAAAAAACAwABEhQR/9oACAEBAAEFAruaOjAtgxoekV6ByQHnVOdU5lT/xAAWEQADAAAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BlksplM//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFUR//EACAQAAIBAwQDAAAAAAAAAAAAAAABAhExMgMSIaEiQWH/2gAIAQEABj8CG2/GlhSXs3QnyVWovooqdjHsx7MT/8QAHRABAAMAAQUAAAAAAAAAAAAAAQARIfAxQYGhsf/aAAgBAQABPyGnDWVJ0TU2GEQF7G+A3R8nd1yz19QKNRyKcinGs//aAAwDAQACAAMAAAAQZP8APP/EABYRAAMAAAAAAAAAAAAAAAAAAAABYf/aAAgBAwEBPxCLIsqyrP/EABcRAAMBAAAAAAAAAAAAAAAAAAARUQH/2gAIAQIBAT8QeUSiQSH/xAAgEAEAAgEEAgMAAAAAAAAAAAABABFhITFB8FGhscHR/9oACAEBAAE/ECaFHHiVIwN11rq8SnoIbiBblK3Dxdr1EKoIaNOUftGfCoUb+JmdMzI6ZnZ+0//Z","aspectRatio":1,"src":"/static/995b0ed79c4a49daa3eb65b62fa586ec/58fe7/esbuildcover1.jpg","srcSet":"/static/995b0ed79c4a49daa3eb65b62fa586ec/e0f30/esbuildcover1.jpg 236w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/86afd/esbuildcover1.jpg 472w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/58fe7/esbuildcover1.jpg 944w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/0ff54/esbuildcover1.jpg 1200w","srcWebp":"/static/995b0ed79c4a49daa3eb65b62fa586ec/99fbb/esbuildcover1.webp","srcSetWebp":"/static/995b0ed79c4a49daa3eb65b62fa586ec/77392/esbuildcover1.webp 236w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/1f177/esbuildcover1.webp 472w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/99fbb/esbuildcover1.webp 944w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/9000d/esbuildcover1.webp 1200w","sizes":"(max-width: 944px) 100vw, 944px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M234%2040l-7%203c-5%201-6%203-5%205v1l-1%201%202%201%201-3c-1-2%200-3%201-3%204-1%205-1%205%202v4l-8%201-11%203c-6%202-10%202-11%201h-1l-2%202-2-2c-1-1-1-1-1%201%200%203-4%203-6%200-1-1-1-1-1%201v4c-2%201-1%202%202%202%205%200%206%201%203%203l-4%203c-1%201-1%201%201%201s3%201%203%203c1%203-2%206-4%205-1-1-5%203-4%203h2c2-1%202-1%204%201%203%204%202%209-3%207-2%200-2%200-2%202v3l-1%204-1%204c-1%200-2-2-2-5%200-4%200-5-2-5s-2%200-1%201c3%200%203%208%200%208h-2l-2-1c-3%200-3%202%200%202%202%201%202%201-1%201a93%2093%200%2000-11%201l-4%201%204-1%207-2%202-1h-3c-2%200-3%200-3-2h-1c0%203-7%203-7%200l-1%201c-1%201-1%201-1-1%200-6-1-8-3-7-3%204%200%209%205%2010%202%201%202%201%200%201-4%200-10%204-6%204l2-1c1-2%203-2%203%200l2%201h2l5%201%206-1%202-1h2c4%200%2021-2%2027-4l7-2c8-1%2012-1%2015-3a159%20159%200%200130-5l4-1c2%200%202%200%201-1-2-2-1-11%201-12l1-1c-2%200-2%200-1-1%203-2%2013-4%2022-4%206%200%207-1%207-2%200-2-2-3-2-1l-1%201-1-3v-4l-1-3c-1-4-3-2-3%203l-1%205-1-3c1-3%201-4-1-4l-1-1%201-1v-2c0-2%200-3%202-3l-1-1h-8c-3%200-4%200-3-1s-4-4-8-4l-1-1h-3l-1-1-1-1c-3%201-3%200-3-3v-4l-1%208v8l-1-8v-7l-4%201c-3%200-4%200-3-1%200-2-6-2-8%200m-34%2033c-1%200-2%201-2%203l-1%203-1%201c0%202%207%201%2012-1l4-4c0-3-4-3-12-2m9%207l-6%202c-6%201-10%204-8%206s1%204-1%204h-2c0%202%201%202%203%202%204%200%204-1%204-4%201-4%206-8%208-6l-1%202h-3c-3%201-2%206%200%206s2%200%202-2c-1-2%200-3%202-1%201%201%201%201%201-1h1c1%202%203-3%203-6l-3-2m98%2016v14l-1%2012v2c2%201%201%2026-1%2027v1c2%201%203%2029%201%2029v1l1%208c0%205%200%207-1%206l-9-1a635%20635%200%2001-36%202l-7%201v-11c0-11%202-24%204-29%201-1%202-2%205-2l5-1v-38h-5l-21%204c-1%201%200%2029%201%2029l1-1h1c1%202%202%202%202%201h3l1%201%201%201v1h2l1-1%205-1c1%201%200%201-2%202l-3%201-3%201h-3l2%201v12c-1%202-1%202-4-3l-3-8c0-1-6-2-14-1-15%202-14%202-13%200%201-3%204-4%208-4%205%200%208-1%207-3l-4-1c-12%202-14%202-14%201s2-2%209-2h9v-7h-4l-11%201-6%201v8l1%209v10h-6c-8%200-8%200-7%207v6h6l7%201v4l1%204%201%202h-1l-4-1-16%202-48%202c-19%202-24%202-25-1-2-3-12-3-13%201-1%202-2%203-4%203a7567%207567%200%2000-12-2l-2-2-2-1c-1-2-14-1-15%200-2%202-6%201-8-1l-10-17-2-4v11c-1-2-1-1-1%202l-1%201c-2%200-1%202%201%208l3%206-3%201-2%201h3c4%200%208%206%205%207-1%201%201%201%203%201h5l-4%201c-6%201-6%202-1%202%203-1%205-1%207%201l6%201%2016%204%207%201%205%201c1%203%204%202%209-3l5-4h1c1-2%206-1%207%201%202%201%2013%201%2014-1%201-1%201-1%202%201h15l5-1c5-2%208-3%207-1l1%201h4c4-3%206-3%205%200h2l6-3c4%200%204%200%203%202-1%203%200%203%209%203%207%200%208-1%2012-3%204-3%206-4%206-1l-1%201v1c1%201-5%2010-7%2010v1c2%201%203%205%202%206l-1%201h1c1-1%203%201%206%207l5%208h8l14%201c4%200%205%200%205-2l2-2v9l-1-2v-3l-1%201h-24c-4-1-5%200-5%201l-1%203v1l1%202-1%201h-1l1%201v5c-2%201-3%201-3-1h-3v1c2%202-16%201-19%200h-3l-2%201h-4l-1%201%202%201%201%201h1l-1%201v1l9%203c8%203%2028%204%2028%202-1-2%203-4%207-5%204%200%205%200%207%203l3%201-1-1v-3c3%201%205%200%205-2%200-1%201-2%203-2l3-2-1-1h-1l2-1%202-1h-7l-7-1c-1-1%201-1%205-1l7-1c0-3%206-2%209%201%202%203%202%204-1%203l-1%201c0%201%204%203%205%202l2%202c1%203%202%203%205%203l6%202c5%203%2017%203%2021%200l8-2c8%200%209%200%209-2%200-1%201-2%203-2%203%200%204-3%204-11%200-4%200-6-6-14l-6-9v-1c0-2%200-2-3-2-5%200-2-1%207-1l8-1%201%203c2%205%205%205%207%202s5-5%208-6c3%200%204-1%204-2%200-2%200-3%205-3%206%200%208-2%203-2l-30-2-4-7%201-1c1%200%202-1%202-3l1-3h4c2%200%202%200%202%206-1%207-2%207%2015%208%2012%201%2012%201%2013-5l2-4v-2c4%201%204-3%204-26%200-16-1-23-2-24l-1-3c0-2-1-2-3-3l-5-2h-1l-1%202-1-1%201-2%201-4%201-4%201-1%202-5%206-18%201-2-1-3-2-4-1-1v1l-1%201-1-1-2-1c-2%201-14-1-17-3h-3c0%201-17-3-19-5h-1m-119%2012l-5%209%201%205%201%205-1%202c-2%200-1%202%201%201%208-1%208-1%208%201l1%202%201-11%201-11%202-3c0-2-9-1-10%200M65%20138c-7%206-8%2010-8%2016-1%207%201%208%202%202%200-3%201-4%203-5l2-1h-2c-2%200-2%200%200-3%203-5%203-5%205-2l3%203c2%200%202%200%202-4l-2-4v-3c3-4-1-4-5%201m53%2020c0%205%200%206-2%206-1%200-2%201-1%203%200%203%200%203-3%203-9%202-14%202-14%201l4-1%203-1c0-2-1-2-4-2-4%201-4%201-4%203s-5%203-17%203c-5%200-6%200-6-2l1-2h2l1-1c0-1-3%200-4%202l-3%201c-2%201-2%201%200%201l2%201h-5c-1-2%200-4%203-4%202%200%202%200%202-3%200-4-2-5-10-3-4%200-4%200-3%203v6l1%203%202%202%202%201c2%200%201%203-1%204-2%200-2%201-1%203h3c2-3%203-2%202%202%200%203%200%204%202%204%203%201%203%200%203-2s0-2%201%200c0%201%201%202%202%200%201-1%201-1-1-2-3-3%202-4%207-2l6%201c4%200%204%200%204-3%200-4%201-4%2014-6h9c3-1%205-6%205-15l-1-10-1%206m155%2015l-1%208-1%208h5c5%200%205-1%205-10v-7h-4l-4%201m-32%202h-5c-4%200-4%200-1%201s-1%201-11%201c-5%201-7%204-3%204%202%200%202%200%200%201s0%201%205%201c9%200%2015-1%2015-2v-6m-98%2051l-1%205%201%201h-3c0%202-2%202-15%202-8%200-13%200-12-1%205%200%206-3%202-3l-4%201-2%202c-1%202%200%202%2015%202h17v5c0%205-1%206-3%206l-3-1c-1-2-3-2-5-2l-3%201v4l-1%205v2c1%202%200%205-1%205l-4%201-2%203-1-2-2-2-1%201-5%201a77%2077%200%2000-13%201H83c-2%201-1%201%204%201%209%201%209%201%209%204v3h7c5%200%208%200%2011%202l12%202c7%200%208%200%2012-3%205-4%2011-4%2015-1l2%201c-2-4-2-8-1-8l1%203%201%202%201-2%202-2%206-4c3-4%204-5%204-8v-4l7%204c7%203%207%203%209%202l3-2%201-11c0-9%200-11-1-10h-27l2-1c2%200%204-2%204-3%200-2-6-1-6%201-1%203-9%205-14%204-3%200-3%200-2-2v-1c-2%201-2%201-2-1l1-2h3c1-1%201-1-1-1h-3m55%2016h-3v8c0%2011%200%2011%207%2011h5v-4c0-8%200-12-2-14l-3-2-4%201M92%20253v1l1%203c0%202%200%202%208%202h7v-8h-7c-5%200-8%201-9%202M0%20324v37h401v-75H0v38'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAQFAQID/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAb2JxiS3aKNwuAf/xAAaEAACAwEBAAAAAAAAAAAAAAACAwABEhQR/9oACAEBAAEFAruaOjAtgxoekV6ByQHnVOdU5lT/xAAWEQADAAAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BlksplM//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFUR//EACAQAAIBAwQDAAAAAAAAAAAAAAABAhExMgMSIaEiQWH/2gAIAQEABj8CG2/GlhSXs3QnyVWovooqdjHsx7MT/8QAHRABAAMAAQUAAAAAAAAAAAAAAQARIfAxQYGhsf/aAAgBAQABPyGnDWVJ0TU2GEQF7G+A3R8nd1yz19QKNRyKcinGs//aAAwDAQACAAMAAAAQZP8APP/EABYRAAMAAAAAAAAAAAAAAAAAAAABYf/aAAgBAwEBPxCLIsqyrP/EABcRAAMBAAAAAAAAAAAAAAAAAAARUQH/2gAIAQIBAT8QeUSiQSH/xAAgEAEAAgEEAgMAAAAAAAAAAAABABFhITFB8FGhscHR/9oACAEBAAE/ECaFHHiVIwN11rq8SnoIbiBblK3Dxdr1EKoIaNOUftGfCoUb+JmdMzI6ZnZ+0//Z","aspectRatio":1,"src":"/static/995b0ed79c4a49daa3eb65b62fa586ec/1dc0b/esbuildcover1.jpg","srcSet":"/static/995b0ed79c4a49daa3eb65b62fa586ec/3a5ce/esbuildcover1.jpg 163w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/05730/esbuildcover1.jpg 327w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/1dc0b/esbuildcover1.jpg 653w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/f72c7/esbuildcover1.jpg 980w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/0ff54/esbuildcover1.jpg 1200w","srcWebp":"/static/995b0ed79c4a49daa3eb65b62fa586ec/0acdf/esbuildcover1.webp","srcSetWebp":"/static/995b0ed79c4a49daa3eb65b62fa586ec/ac59e/esbuildcover1.webp 163w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/7660b/esbuildcover1.webp 327w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/0acdf/esbuildcover1.webp 653w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/75470/esbuildcover1.webp 980w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/9000d/esbuildcover1.webp 1200w","sizes":"(max-width: 653px) 100vw, 653px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M234%2040l-7%203c-5%201-6%203-5%205v1l-1%201%202%201%201-3c-1-2%200-3%201-3%204-1%205-1%205%202v4l-8%201-11%203c-6%202-10%202-11%201h-1l-2%202-2-2c-1-1-1-1-1%201%200%203-4%203-6%200-1-1-1-1-1%201v4c-2%201-1%202%202%202%205%200%206%201%203%203l-4%203c-1%201-1%201%201%201s3%201%203%203c1%203-2%206-4%205-1-1-5%203-4%203h2c2-1%202-1%204%201%203%204%202%209-3%207-2%200-2%200-2%202v3l-1%204-1%204c-1%200-2-2-2-5%200-4%200-5-2-5s-2%200-1%201c3%200%203%208%200%208h-2l-2-1c-3%200-3%202%200%202%202%201%202%201-1%201a93%2093%200%2000-11%201l-4%201%204-1%207-2%202-1h-3c-2%200-3%200-3-2h-1c0%203-7%203-7%200l-1%201c-1%201-1%201-1-1%200-6-1-8-3-7-3%204%200%209%205%2010%202%201%202%201%200%201-4%200-10%204-6%204l2-1c1-2%203-2%203%200l2%201h2l5%201%206-1%202-1h2c4%200%2021-2%2027-4l7-2c8-1%2012-1%2015-3a159%20159%200%200130-5l4-1c2%200%202%200%201-1-2-2-1-11%201-12l1-1c-2%200-2%200-1-1%203-2%2013-4%2022-4%206%200%207-1%207-2%200-2-2-3-2-1l-1%201-1-3v-4l-1-3c-1-4-3-2-3%203l-1%205-1-3c1-3%201-4-1-4l-1-1%201-1v-2c0-2%200-3%202-3l-1-1h-8c-3%200-4%200-3-1s-4-4-8-4l-1-1h-3l-1-1-1-1c-3%201-3%200-3-3v-4l-1%208v8l-1-8v-7l-4%201c-3%200-4%200-3-1%200-2-6-2-8%200m-34%2033c-1%200-2%201-2%203l-1%203-1%201c0%202%207%201%2012-1l4-4c0-3-4-3-12-2m9%207l-6%202c-6%201-10%204-8%206s1%204-1%204h-2c0%202%201%202%203%202%204%200%204-1%204-4%201-4%206-8%208-6l-1%202h-3c-3%201-2%206%200%206s2%200%202-2c-1-2%200-3%202-1%201%201%201%201%201-1h1c1%202%203-3%203-6l-3-2m98%2016v14l-1%2012v2c2%201%201%2026-1%2027v1c2%201%203%2029%201%2029v1l1%208c0%205%200%207-1%206l-9-1a635%20635%200%2001-36%202l-7%201v-11c0-11%202-24%204-29%201-1%202-2%205-2l5-1v-38h-5l-21%204c-1%201%200%2029%201%2029l1-1h1c1%202%202%202%202%201h3l1%201%201%201v1h2l1-1%205-1c1%201%200%201-2%202l-3%201-3%201h-3l2%201v12c-1%202-1%202-4-3l-3-8c0-1-6-2-14-1-15%202-14%202-13%200%201-3%204-4%208-4%205%200%208-1%207-3l-4-1c-12%202-14%202-14%201s2-2%209-2h9v-7h-4l-11%201-6%201v8l1%209v10h-6c-8%200-8%200-7%207v6h6l7%201v4l1%204%201%202h-1l-4-1-16%202-48%202c-19%202-24%202-25-1-2-3-12-3-13%201-1%202-2%203-4%203a7567%207567%200%2000-12-2l-2-2-2-1c-1-2-14-1-15%200-2%202-6%201-8-1l-10-17-2-4v11c-1-2-1-1-1%202l-1%201c-2%200-1%202%201%208l3%206-3%201-2%201h3c4%200%208%206%205%207-1%201%201%201%203%201h5l-4%201c-6%201-6%202-1%202%203-1%205-1%207%201l6%201%2016%204%207%201%205%201c1%203%204%202%209-3l5-4h1c1-2%206-1%207%201%202%201%2013%201%2014-1%201-1%201-1%202%201h15l5-1c5-2%208-3%207-1l1%201h4c4-3%206-3%205%200h2l6-3c4%200%204%200%203%202-1%203%200%203%209%203%207%200%208-1%2012-3%204-3%206-4%206-1l-1%201v1c1%201-5%2010-7%2010v1c2%201%203%205%202%206l-1%201h1c1-1%203%201%206%207l5%208h8l14%201c4%200%205%200%205-2l2-2v9l-1-2v-3l-1%201h-24c-4-1-5%200-5%201l-1%203v1l1%202-1%201h-1l1%201v5c-2%201-3%201-3-1h-3v1c2%202-16%201-19%200h-3l-2%201h-4l-1%201%202%201%201%201h1l-1%201v1l9%203c8%203%2028%204%2028%202-1-2%203-4%207-5%204%200%205%200%207%203l3%201-1-1v-3c3%201%205%200%205-2%200-1%201-2%203-2l3-2-1-1h-1l2-1%202-1h-7l-7-1c-1-1%201-1%205-1l7-1c0-3%206-2%209%201%202%203%202%204-1%203l-1%201c0%201%204%203%205%202l2%202c1%203%202%203%205%203l6%202c5%203%2017%203%2021%200l8-2c8%200%209%200%209-2%200-1%201-2%203-2%203%200%204-3%204-11%200-4%200-6-6-14l-6-9v-1c0-2%200-2-3-2-5%200-2-1%207-1l8-1%201%203c2%205%205%205%207%202s5-5%208-6c3%200%204-1%204-2%200-2%200-3%205-3%206%200%208-2%203-2l-30-2-4-7%201-1c1%200%202-1%202-3l1-3h4c2%200%202%200%202%206-1%207-2%207%2015%208%2012%201%2012%201%2013-5l2-4v-2c4%201%204-3%204-26%200-16-1-23-2-24l-1-3c0-2-1-2-3-3l-5-2h-1l-1%202-1-1%201-2%201-4%201-4%201-1%202-5%206-18%201-2-1-3-2-4-1-1v1l-1%201-1-1-2-1c-2%201-14-1-17-3h-3c0%201-17-3-19-5h-1m-119%2012l-5%209%201%205%201%205-1%202c-2%200-1%202%201%201%208-1%208-1%208%201l1%202%201-11%201-11%202-3c0-2-9-1-10%200M65%20138c-7%206-8%2010-8%2016-1%207%201%208%202%202%200-3%201-4%203-5l2-1h-2c-2%200-2%200%200-3%203-5%203-5%205-2l3%203c2%200%202%200%202-4l-2-4v-3c3-4-1-4-5%201m53%2020c0%205%200%206-2%206-1%200-2%201-1%203%200%203%200%203-3%203-9%202-14%202-14%201l4-1%203-1c0-2-1-2-4-2-4%201-4%201-4%203s-5%203-17%203c-5%200-6%200-6-2l1-2h2l1-1c0-1-3%200-4%202l-3%201c-2%201-2%201%200%201l2%201h-5c-1-2%200-4%203-4%202%200%202%200%202-3%200-4-2-5-10-3-4%200-4%200-3%203v6l1%203%202%202%202%201c2%200%201%203-1%204-2%200-2%201-1%203h3c2-3%203-2%202%202%200%203%200%204%202%204%203%201%203%200%203-2s0-2%201%200c0%201%201%202%202%200%201-1%201-1-1-2-3-3%202-4%207-2l6%201c4%200%204%200%204-3%200-4%201-4%2014-6h9c3-1%205-6%205-15l-1-10-1%206m155%2015l-1%208-1%208h5c5%200%205-1%205-10v-7h-4l-4%201m-32%202h-5c-4%200-4%200-1%201s-1%201-11%201c-5%201-7%204-3%204%202%200%202%200%200%201s0%201%205%201c9%200%2015-1%2015-2v-6m-98%2051l-1%205%201%201h-3c0%202-2%202-15%202-8%200-13%200-12-1%205%200%206-3%202-3l-4%201-2%202c-1%202%200%202%2015%202h17v5c0%205-1%206-3%206l-3-1c-1-2-3-2-5-2l-3%201v4l-1%205v2c1%202%200%205-1%205l-4%201-2%203-1-2-2-2-1%201-5%201a77%2077%200%2000-13%201H83c-2%201-1%201%204%201%209%201%209%201%209%204v3h7c5%200%208%200%2011%202l12%202c7%200%208%200%2012-3%205-4%2011-4%2015-1l2%201c-2-4-2-8-1-8l1%203%201%202%201-2%202-2%206-4c3-4%204-5%204-8v-4l7%204c7%203%207%203%209%202l3-2%201-11c0-9%200-11-1-10h-27l2-1c2%200%204-2%204-3%200-2-6-1-6%201-1%203-9%205-14%204-3%200-3%200-2-2v-1c-2%201-2%201-2-1l1-2h3c1-1%201-1-1-1h-3m55%2016h-3v8c0%2011%200%2011%207%2011h5v-4c0-8%200-12-2-14l-3-2-4%201M92%20253v1l1%203c0%202%200%202%208%202h7v-8h-7c-5%200-8%201-9%202M0%20324v37h401v-75H0v38'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAQFAQID/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAb2JxiS3aKNwuAf/xAAaEAACAwEBAAAAAAAAAAAAAAACAwABEhQR/9oACAEBAAEFAruaOjAtgxoekV6ByQHnVOdU5lT/xAAWEQADAAAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BlksplM//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFUR//EACAQAAIBAwQDAAAAAAAAAAAAAAABAhExMgMSIaEiQWH/2gAIAQEABj8CG2/GlhSXs3QnyVWovooqdjHsx7MT/8QAHRABAAMAAQUAAAAAAAAAAAAAAQARIfAxQYGhsf/aAAgBAQABPyGnDWVJ0TU2GEQF7G+A3R8nd1yz19QKNRyKcinGs//aAAwDAQACAAMAAAAQZP8APP/EABYRAAMAAAAAAAAAAAAAAAAAAAABYf/aAAgBAwEBPxCLIsqyrP/EABcRAAMBAAAAAAAAAAAAAAAAAAARUQH/2gAIAQIBAT8QeUSiQSH/xAAgEAEAAgEEAgMAAAAAAAAAAAABABFhITFB8FGhscHR/9oACAEBAAE/ECaFHHiVIwN11rq8SnoIbiBblK3Dxdr1EKoIaNOUftGfCoUb+JmdMzI6ZnZ+0//Z","aspectRatio":1,"src":"/static/995b0ed79c4a49daa3eb65b62fa586ec/eaa58/esbuildcover1.jpg","srcSet":"/static/995b0ed79c4a49daa3eb65b62fa586ec/5a3ee/esbuildcover1.jpg 114w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/41f8f/esbuildcover1.jpg 229w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/eaa58/esbuildcover1.jpg 457w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/c309b/esbuildcover1.jpg 686w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/e3008/esbuildcover1.jpg 914w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/0ff54/esbuildcover1.jpg 1200w","srcWebp":"/static/995b0ed79c4a49daa3eb65b62fa586ec/15384/esbuildcover1.webp","srcSetWebp":"/static/995b0ed79c4a49daa3eb65b62fa586ec/31fce/esbuildcover1.webp 114w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/e3e25/esbuildcover1.webp 229w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/15384/esbuildcover1.webp 457w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/0258d/esbuildcover1.webp 686w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/64ea2/esbuildcover1.webp 914w,\n/static/995b0ed79c4a49daa3eb65b62fa586ec/9000d/esbuildcover1.webp 1200w","sizes":"(max-width: 457px) 100vw, 457px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M234%2040l-7%203c-5%201-6%203-5%205v1l-1%201%202%201%201-3c-1-2%200-3%201-3%204-1%205-1%205%202v4l-8%201-11%203c-6%202-10%202-11%201h-1l-2%202-2-2c-1-1-1-1-1%201%200%203-4%203-6%200-1-1-1-1-1%201v4c-2%201-1%202%202%202%205%200%206%201%203%203l-4%203c-1%201-1%201%201%201s3%201%203%203c1%203-2%206-4%205-1-1-5%203-4%203h2c2-1%202-1%204%201%203%204%202%209-3%207-2%200-2%200-2%202v3l-1%204-1%204c-1%200-2-2-2-5%200-4%200-5-2-5s-2%200-1%201c3%200%203%208%200%208h-2l-2-1c-3%200-3%202%200%202%202%201%202%201-1%201a93%2093%200%2000-11%201l-4%201%204-1%207-2%202-1h-3c-2%200-3%200-3-2h-1c0%203-7%203-7%200l-1%201c-1%201-1%201-1-1%200-6-1-8-3-7-3%204%200%209%205%2010%202%201%202%201%200%201-4%200-10%204-6%204l2-1c1-2%203-2%203%200l2%201h2l5%201%206-1%202-1h2c4%200%2021-2%2027-4l7-2c8-1%2012-1%2015-3a159%20159%200%200130-5l4-1c2%200%202%200%201-1-2-2-1-11%201-12l1-1c-2%200-2%200-1-1%203-2%2013-4%2022-4%206%200%207-1%207-2%200-2-2-3-2-1l-1%201-1-3v-4l-1-3c-1-4-3-2-3%203l-1%205-1-3c1-3%201-4-1-4l-1-1%201-1v-2c0-2%200-3%202-3l-1-1h-8c-3%200-4%200-3-1s-4-4-8-4l-1-1h-3l-1-1-1-1c-3%201-3%200-3-3v-4l-1%208v8l-1-8v-7l-4%201c-3%200-4%200-3-1%200-2-6-2-8%200m-34%2033c-1%200-2%201-2%203l-1%203-1%201c0%202%207%201%2012-1l4-4c0-3-4-3-12-2m9%207l-6%202c-6%201-10%204-8%206s1%204-1%204h-2c0%202%201%202%203%202%204%200%204-1%204-4%201-4%206-8%208-6l-1%202h-3c-3%201-2%206%200%206s2%200%202-2c-1-2%200-3%202-1%201%201%201%201%201-1h1c1%202%203-3%203-6l-3-2m98%2016v14l-1%2012v2c2%201%201%2026-1%2027v1c2%201%203%2029%201%2029v1l1%208c0%205%200%207-1%206l-9-1a635%20635%200%2001-36%202l-7%201v-11c0-11%202-24%204-29%201-1%202-2%205-2l5-1v-38h-5l-21%204c-1%201%200%2029%201%2029l1-1h1c1%202%202%202%202%201h3l1%201%201%201v1h2l1-1%205-1c1%201%200%201-2%202l-3%201-3%201h-3l2%201v12c-1%202-1%202-4-3l-3-8c0-1-6-2-14-1-15%202-14%202-13%200%201-3%204-4%208-4%205%200%208-1%207-3l-4-1c-12%202-14%202-14%201s2-2%209-2h9v-7h-4l-11%201-6%201v8l1%209v10h-6c-8%200-8%200-7%207v6h6l7%201v4l1%204%201%202h-1l-4-1-16%202-48%202c-19%202-24%202-25-1-2-3-12-3-13%201-1%202-2%203-4%203a7567%207567%200%2000-12-2l-2-2-2-1c-1-2-14-1-15%200-2%202-6%201-8-1l-10-17-2-4v11c-1-2-1-1-1%202l-1%201c-2%200-1%202%201%208l3%206-3%201-2%201h3c4%200%208%206%205%207-1%201%201%201%203%201h5l-4%201c-6%201-6%202-1%202%203-1%205-1%207%201l6%201%2016%204%207%201%205%201c1%203%204%202%209-3l5-4h1c1-2%206-1%207%201%202%201%2013%201%2014-1%201-1%201-1%202%201h15l5-1c5-2%208-3%207-1l1%201h4c4-3%206-3%205%200h2l6-3c4%200%204%200%203%202-1%203%200%203%209%203%207%200%208-1%2012-3%204-3%206-4%206-1l-1%201v1c1%201-5%2010-7%2010v1c2%201%203%205%202%206l-1%201h1c1-1%203%201%206%207l5%208h8l14%201c4%200%205%200%205-2l2-2v9l-1-2v-3l-1%201h-24c-4-1-5%200-5%201l-1%203v1l1%202-1%201h-1l1%201v5c-2%201-3%201-3-1h-3v1c2%202-16%201-19%200h-3l-2%201h-4l-1%201%202%201%201%201h1l-1%201v1l9%203c8%203%2028%204%2028%202-1-2%203-4%207-5%204%200%205%200%207%203l3%201-1-1v-3c3%201%205%200%205-2%200-1%201-2%203-2l3-2-1-1h-1l2-1%202-1h-7l-7-1c-1-1%201-1%205-1l7-1c0-3%206-2%209%201%202%203%202%204-1%203l-1%201c0%201%204%203%205%202l2%202c1%203%202%203%205%203l6%202c5%203%2017%203%2021%200l8-2c8%200%209%200%209-2%200-1%201-2%203-2%203%200%204-3%204-11%200-4%200-6-6-14l-6-9v-1c0-2%200-2-3-2-5%200-2-1%207-1l8-1%201%203c2%205%205%205%207%202s5-5%208-6c3%200%204-1%204-2%200-2%200-3%205-3%206%200%208-2%203-2l-30-2-4-7%201-1c1%200%202-1%202-3l1-3h4c2%200%202%200%202%206-1%207-2%207%2015%208%2012%201%2012%201%2013-5l2-4v-2c4%201%204-3%204-26%200-16-1-23-2-24l-1-3c0-2-1-2-3-3l-5-2h-1l-1%202-1-1%201-2%201-4%201-4%201-1%202-5%206-18%201-2-1-3-2-4-1-1v1l-1%201-1-1-2-1c-2%201-14-1-17-3h-3c0%201-17-3-19-5h-1m-119%2012l-5%209%201%205%201%205-1%202c-2%200-1%202%201%201%208-1%208-1%208%201l1%202%201-11%201-11%202-3c0-2-9-1-10%200M65%20138c-7%206-8%2010-8%2016-1%207%201%208%202%202%200-3%201-4%203-5l2-1h-2c-2%200-2%200%200-3%203-5%203-5%205-2l3%203c2%200%202%200%202-4l-2-4v-3c3-4-1-4-5%201m53%2020c0%205%200%206-2%206-1%200-2%201-1%203%200%203%200%203-3%203-9%202-14%202-14%201l4-1%203-1c0-2-1-2-4-2-4%201-4%201-4%203s-5%203-17%203c-5%200-6%200-6-2l1-2h2l1-1c0-1-3%200-4%202l-3%201c-2%201-2%201%200%201l2%201h-5c-1-2%200-4%203-4%202%200%202%200%202-3%200-4-2-5-10-3-4%200-4%200-3%203v6l1%203%202%202%202%201c2%200%201%203-1%204-2%200-2%201-1%203h3c2-3%203-2%202%202%200%203%200%204%202%204%203%201%203%200%203-2s0-2%201%200c0%201%201%202%202%200%201-1%201-1-1-2-3-3%202-4%207-2l6%201c4%200%204%200%204-3%200-4%201-4%2014-6h9c3-1%205-6%205-15l-1-10-1%206m155%2015l-1%208-1%208h5c5%200%205-1%205-10v-7h-4l-4%201m-32%202h-5c-4%200-4%200-1%201s-1%201-11%201c-5%201-7%204-3%204%202%200%202%200%200%201s0%201%205%201c9%200%2015-1%2015-2v-6m-98%2051l-1%205%201%201h-3c0%202-2%202-15%202-8%200-13%200-12-1%205%200%206-3%202-3l-4%201-2%202c-1%202%200%202%2015%202h17v5c0%205-1%206-3%206l-3-1c-1-2-3-2-5-2l-3%201v4l-1%205v2c1%202%200%205-1%205l-4%201-2%203-1-2-2-2-1%201-5%201a77%2077%200%2000-13%201H83c-2%201-1%201%204%201%209%201%209%201%209%204v3h7c5%200%208%200%2011%202l12%202c7%200%208%200%2012-3%205-4%2011-4%2015-1l2%201c-2-4-2-8-1-8l1%203%201%202%201-2%202-2%206-4c3-4%204-5%204-8v-4l7%204c7%203%207%203%209%202l3-2%201-11c0-9%200-11-1-10h-27l2-1c2%200%204-2%204-3%200-2-6-1-6%201-1%203-9%205-14%204-3%200-3%200-2-2v-1c-2%201-2%201-2-1l1-2h3c1-1%201-1-1-1h-3m55%2016h-3v8c0%2011%200%2011%207%2011h5v-4c0-8%200-12-2-14l-3-2-4%201M92%20253v1l1%203c0%202%200%202%208%202h7v-8h-7c-5%200-8%201-9%202M0%20324v37h401v-75H0v38'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"seo":{"src":"/static/995b0ed79c4a49daa3eb65b62fa586ec/0ff54/esbuildcover1.jpg"}}},{"id":"923998f8-d109-5d31-98d1-ffcca67d3530","slug":"/imagermachine","secret":false,"title":"Imagermachine","author":"Luke Celitan","date":"November 1st, 2021","dateForSEO":"2021-11-01T00:00:00.000Z","timeToRead":2,"excerpt":"Rewriting the sharpmachine to rust.","subscription":true,"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Imagermachine\",\n  \"author\": \"Luke Celitan\",\n  \"date\": \"2021-11-01T00:00:00.000Z\",\n  \"hero\": \"./imagermachine.jpg\",\n  \"excerpt\": \"Rewriting the sharpmachine to rust.\",\n  \"category\": \"Project\",\n  \"tech\": [\"Rust\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"div\", {\n    \"style\": {\n      \"display\": \"flex\",\n      \"justifyContent\": \"flex-start\",\n      \"gap\": \"10px\",\n      \"width\": \"100%\",\n      \"margin\": \"auto\",\n      \"maxWidth\": \"1150px\"\n    }\n  }, \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://github.com/MassivDash/cargo-imagermachine\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Version\",\n    \"src\": \"https://img.shields.io/badge/version-0.2.0-blue.svg?cacheSeconds=2592000\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://github.com/MassivDash/cargo-imagermachine\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Documentation\",\n    \"src\": \"https://img.shields.io/badge/documentation-yes-brightgreen.svg\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"#\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"License: MIT\",\n    \"src\": \"https://img.shields.io/badge/License-MIT-yellow.svg\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://twitter.com/spaceoutPL\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Twitter: spaceoutPL\",\n    \"src\": \"https://img.shields.io/twitter/follow/spaceoutPL.svg?style=social\"\n  }), \"\\n  \")), mdx(\"h2\", {\n    \"id\": \"introduction\"\n  }, \"Introduction\"), mdx(\"p\", null, \"In recent times I have decided to start learing a new programming language. Out\\nof all the possibilities I have found Rust to be the most suitable. Rust is a\\nsafe, fast, and memory safe language for writing software, I see a lot of\\npotential in Rust esspeciall in building software for future IoT devices. Rust\\nis also a heavily typed proggraming language which makes it easy to write code\\nthat is more readable and easy to debug.\"), mdx(\"p\", null, \"I have embarked on a mission to build something useful with it, the idea for\\nrewritting my previous optimization intercative cli build with typescript to\\nrust came as an obvious choice for me.\"), mdx(\"h2\", {\n    \"id\": \"cargo-imagermachine\"\n  }, \"Cargo-imagermachine\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Rust cli for batch optimizing images\")), mdx(\"p\", null, \"Cargo-imagermachine was designed as a subtool of cargo package manger, so user\\ncan run the interactive cli from the command line inside folders that contain\\npictures.\"), mdx(\"p\", null, \"Imagermachine uses turbo-jpeg library for jpeg files optimization and oxi png\\nfor png images. You must install the turbo-jpeg yourself as the cli uses only\\nthe bindings to the turbo-jpeg library. Installation guide for respective\\nsystems below.\"), mdx(\"p\", null, \"Imagermachine can:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Optimize png and jpg images.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Resize and crop images.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Rename the transformed files based on provided\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"name\"), \"(index).ext\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Convert files to Webp\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"todo: set optimalisation custom config\")), mdx(\"h3\", {\n    \"id\": \"dependencies\"\n  }, \"Dependencies\"), mdx(\"p\", null, \"So far the cli has been tested on unix systems (Debian, Mac).\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Before using cargo-imagermachine you must install\"), mdx(\"h4\", {\n    \"id\": \"rust\"\n  }, \"Rust\"), mdx(\"p\", null, \"Follow the official guideline for installing rust on your system\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.rust-lang.org/tools/install\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://www.rust-lang.org/tools/install\")), mdx(\"h4\", {\n    \"id\": \"libturbojpeg\"\n  }, \"Libturbojpeg\"), mdx(\"p\", null, \"Offical webiste and documentation \\uD83D\\uDC49 \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.libjpeg-turbo.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://www.libjpeg-turbo.org/\")), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Debian\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo apt-get install libturbojpeg libturbojpeg0-dev\\n\")), mdx(\"p\", null, \"This should be enough to get started on Ubuntu\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Mac\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"brew install jpeg-turbo\\n\")), mdx(\"p\", null, \"! Remember to copy all the export paths that brew will print out after\\ninstallation, I am using the following config in the cargo.toml file, pkg-config\\n(also via brew) installation is needed for this setup to work.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yml\"\n  }, \"turbojpeg = {version = \\\"0.4\\\", features = [\\\"image\\\", \\\"pkg-config\\\"]}\\n\")), mdx(\"p\", null, \"If you have troubles linking the cli to your libturbo, you can try to edit the\\ncargo.toml file and add feature flags into turbojpeg features array, for more\\nreference follow this\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/honzasp/rust-turbojpeg#requirements\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"link\"), \".\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"3584px\"\n    }\n  }, \"\\n      \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"62.519999999999996%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAADRElEQVQ4y12S62+TZRjGn7d9D33ftlvfHtZuq1tljLCyukGnAYK6GIMh4swQUAabyGBDk+qHRU1ISEwwxmR+wRMIRnSzgx26qjvRgYNMNMTNGg6dI1GnLtE/4+ezIov64cp1P19+z3UfRH5zmvzj51h89n2unTjN8NglsqOXGM1Ok8nmGB6ZZKA/Q3ZonMnsRSaHJpgaHGfi/JdMfpylcGGOwsmvuZ3qp/BiH+LbjcPMJ8/z89Yv6KppQTV1Ip4QftNHwLQp1b14NDeaqqKuSFPRdB2hCGLRan48meOnVJpC92csHJXAi4kMsxL4y5YJDoafxqcEaLKSxPQYIWeIBquBhJnAEAZCiP+oMhgh/2qaxaMynYQVgYPrxhjdMMLcQ1O0l7cS1iI86G2i0qikTCuj1lxL0rMJ02EWIYpQcChKsY76ysh3n70LlAkL3RJ4qirH2So5m7pZngnuplyPUONaQ5VRRcKqx1ZtGtwNq8B70CLQGyTfeZrFrj4KR2TL0kVvNMe70SkuVH/PzpJ9VOhhQmpIQmvYJJN5nB7WmbVFX00oHKvA+YOnWOjs59YhCT2cRhwLzXC8bJoPKufY7m2TibzEjBi1rlrWm+tlXV1834P8W1G5vOvPneHWgTQ32ge4uT+D6AnOkLKv0uO7zUajg2pXmC3ercU2k54kdVZdsY5LXwHHrXgxsVOolFtBrrV8Sr51hPmWcb5rnkW02RN02FO85LtJQu+guXQzXeEu2kMH2B9q4+GSbewN7qEzfIgWfwsvV6Q4EjmMx+GhzOVn5rFBrjdf5krjHNPxG4hWO8tT9jC7/Jdli/sQToHDoaKrBqZmyvvT/2lRQVW0Yq0rd0+owogyVvcNufsXGC2/Q+a+O4id/hF22EPs8I+ztmQXmiWw3JY8Yjl8VcJXPpBHrEiJ/ymkRugrLTDgXeYT3xLvlS4hHg2cYZv/Ix4JfE6N7wW8JWvwldTjlkuxjUZs5wP4HBuwHQkqHUmqFCnp5UqChONJ3laXOKH/RY+xzCtSoinQS2PgTeqDb1Dnl7LfIu7vJR54h0b7Q5q9X/GE+wrbravsdv3Aa9qvHFf/4Jj6O69LTzn/5Hl1mb3ab+zRlvgbfjrclJjPqf8AAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/fd6625f4b12cb7ea9ed986f357ea0678/a3bc4/imagermachine.webp 2500w\", \"/static/fd6625f4b12cb7ea9ed986f357ea0678/4875e/imagermachine.webp 3584w\"],\n    \"sizes\": \"(max-width: 3584px) 100vw, 3584px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/fd6625f4b12cb7ea9ed986f357ea0678/412e4/imagermachine.png 2500w\", \"/static/fd6625f4b12cb7ea9ed986f357ea0678/5d8bd/imagermachine.png 3584w\"],\n    \"sizes\": \"(max-width: 3584px) 100vw, 3584px\",\n    \"type\": \"image/png\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/fd6625f4b12cb7ea9ed986f357ea0678/5d8bd/imagermachine.png\",\n    \"alt\": \"Screenshot of cargo-imagermachine\",\n    \"title\": \"Screenshot of cargo-imagermachine\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  }), \"\\n        \"), \"\\n    \")), mdx(\"h3\", {\n    \"id\": \"install\"\n  }, \"Install\"), mdx(\"p\", null, \"In order to install cargo-imagermachine on your computer, clone the project then\\nrun the following command from the project folder:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-sh\"\n  }, \"cargo install --path .\\n\")), mdx(\"h3\", {\n    \"id\": \"usage\"\n  }, \"Usage\"), mdx(\"p\", null, \"If you followed the offical rust documentation and cargo / rustc is in scope,\\nnavigate to a input folder and run\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-sh\"\n  }, \"cargo imagermachine\\n\")), mdx(\"p\", null, \"Follow directions on the interactive cli to optimize, resize, rename the images.\"), mdx(\"h2\", {\n    \"id\": \"show-your-support\"\n  }, \"Show your support\"), mdx(\"p\", null, \"Give a \\u2B50\\uFE0F if this project helped you!\"));\n}\n;\nMDXContent.isMDXComponent = true;","tech":["Rust"],"category":"Project","appDescription":null,"hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIEBQH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdunGqa2lJHZAhX/xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBQREhP/2gAIAQEAAQUCIqGC0u89l2YEFWt66AsdfGsqayp//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZZLKZTP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqoj/xAAgEAACAAUFAQAAAAAAAAAAAAAAAQIRISJBEBIxMoGh/9oACAEBAAY/AqlzW3RzipguYpxGV6cfTqf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIWFx8P/aAAgBAQABPyEAtV5MC447BEsilJBXDLmSGFsDBuYp6I8xj4rP/9oADAMBAAIAAwAAABDjGIL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAWH/2gAIAQMBAT8QiyLKsqz/xAAWEQADAAAAAAAAAAAAAAAAAAAAEVH/2gAIAQIBAT8QSiUSCQ//xAAfEAEAAwACAQUAAAAAAAAAAAABABEhQVExgaHB0fD/2gAIAQEAAT8QrhdxPdQQR7ZFU+OcgBBEse4iMIlDZvrHN0m62sxgHQNG1PaPd4cp8wyWsVq2fl90/9k=","aspectRatio":1,"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/58fe7/imagermachine.jpg","srcSet":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/e0f30/imagermachine.jpg 236w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/86afd/imagermachine.jpg 472w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/58fe7/imagermachine.jpg 944w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg 1200w","srcWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/99fbb/imagermachine.webp","srcSetWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/77392/imagermachine.webp 236w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/1f177/imagermachine.webp 472w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/99fbb/imagermachine.webp 944w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/9000d/imagermachine.webp 1200w","sizes":"(max-width: 944px) 100vw, 944px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M260%2051c-17%201-44%206-48%209-3%201-4%203-5%207-3%207-4%2024-2%2028l1%203h13l12%201c-1%202-8%203-20%203-9%200-12-1-20-4l-10-2a145%20145%200%2001-33%204l-2%201h2c2%200%202%200%201%201h-4l-1%201h8c3-2%2010-4%208-2h5l-3%202c-5%202-3%202%202%200%206-3%2010-3%204%200-4%202-7%207-5%209l1-1%206-6c1%200%200%202-2%203l-3%204h4c3%201%203%200%204-1%201-2%201-2%201%200s5%203%2015%203c5%200%205%200%205%203%200%202%200%202%204%202l4%201%201%201c2-2%201-3-3-3-3%200-4%200-4-2h37l5-3c5-3%2010-4%2010-3l-1%201v1l3-2%2010-1c5%200%206%200%204-1-4%200-4-1-3-1h9l-1%201%2015-4a313%20313%200%2000-52-5c0-2%204-3%2017-5%2012-2%2016-3%2019-5l2-1-4%206v1c3%200%204-2%206-10l4-7c1%200%206-6%206-8h-1l-1-2c1-4-1-4-2-1l-1-5v-9c-2%200-2%201-2%205v12l-2%207v-9c0-14-3-19-8-18l-5%201m-9%205l-6%205-3%203-3-3c-5-3-15-3-19%200l-3%201-3%201-1%202%202%201-2%201-3%201%201%201%202%201h-2c-1%200-3%201-3%203s3%201%203%200c1-1%201%201%201%205%200%205%200%206%203%207%202%201%202%201%202-1l2%202%201%204-1-6c0-6%204-17%209-20%208-3%2013-1%2015%208l2%206-1-6%201-6c1-1%201%200%201%201%200%202%200%202%201%201s1-1%201%201c-2%206-2%207-1%207l1-3c0-7%209-16%2015-14%202%200%202%200%201-1v-1l-1-1h-4c-3%200-3%200-2-1%203-2-1-1-6%201m-95%206l1%203c1%201%200%207-1%209-1%201%200%204%201%204l1-1c-2-2%202-1%2018%205l17%206V78l1-9-4-2-6-2-3-2h-1l-10-2c-13-3-14-3-14%201m-52%2055c-3%203-5%2012-5%2029l-1%2012c-2%201-14%200-13-2h-2c-1%201%202%207%203%206%202-1%201%201-1%204-2%202-1%203%202%201h1c0%202%207%201%209-1h1c-1%201%200%202%201%203v5h-1l-3%204-2%205%203%206c3%206%204%206%201-1l-1-4c1-1%206%201%207%203l1%202%202%201c1%201%200%201-2%203-6%204-6%204-10-4-3-6-4-7-6-7-1%200-2%200-1%202l-1%202v2l-11%201-11%201%202%202c4%201-5%2012-9%2011-1%200-2%200-1%201v4c-3%202-8%2012-8%2013v4c-1%203-5%204-5%201l-1%201c-1%203-2%203-2%202-2-3%202-11%206-11l1-1-2-1c-4%200-9%207-9%2015%200%206-2%207-4%202-1-2-1-2-1%200s6%209%208%209v6c-1%202-1%202%201%202l2%201h-3l-1%201%202%202c2%200%202%200%201%201-2%200-3%202-1%202v6c-2%207-1%2014%202%2018%202%203%203%204%203%202%200-3%201-3%203%201%201%202%201%202-1%202H0v75h77l-1%202%201%202%203-1-1-1c0-2%201-2%2011-2h11v4c0%203%200%203%201%201l1-1a432%20432%200%20002%206c1%202%201%202-1%202l-3%201%2010%203h2c1%202%2013%202%2013%201l6-2h5v-6c0-6%201-6%201-4%202%205%200%2018-2%2018l-1%201h1l2%201%207%202h6l3-6%203-8c0-2%201-2%208-2%2012%200%2031-3%2035-5%202-2%201-2-2-1l-6%202c-5%201-5%201-5-2l-1-4c-1-1%203-1%2017-1h19v3l3%203%205%202c5%203%2010%204%2026%202%209%200%2010%200%2017-5l8-5h120v-75h-60l-1-5-2-8-1-3%204-1c11-1%2020-18%2016-30-1-5-3-10-4-9l1%204c2%204%202%204%201%206h-2c0-8-10-11-15-5-3%202-3%204-3%208%200%203%200%204%201%203%200-5%201-7%202-7l7%207c0%202%200%202%201%200l4-3c2%200%202%200%202%203-2%204-8%209-8%205h-1l-2%201c-2%200-2%200-1%201l6%201c4-1%205%201%202%204h-3c0-2-2-3-5-3s-6-3-8-7c-1-3-1-3-2-2v2l1%203%203%205c3%203%202%204-2%201s-6-7-7-12l-1-4v4c0%202%200%203-1%202l-2-1c-1%201-1%200-1-1%200-2%200-2-1%200-1%201-1%201-1-1l-1-2c-2-2-1%202%201%206s2%205-1%202c-2-1-2-1-2%201%201%204%200%204-2%200-2-3-2-3-4-1s-5%203-7%201h-1c0%202%204%204%208%204l4%201c2%201-5%206-7%204l-1%201%202%203%201%202%201%202v-1c0-2%200-2%202-2s5%202%204%204l1%201v1h-3c-2-2-3-2-1%201s-8%208-11%206l-1%202c2%204-11%209-13%205l-1-1v1l-4%201c-6%200-6%200-3-7v-11c-2-9-3-10-6-5l-2%205-2%2010-1%208h-94v-8c0-14-3-19-11-19-3%200-5%200-4%201v2h3a4318%204318%200%2001-5%2015c2-5%202-3%201%204l-1%205H96v-2l-1-3c-1-2-2-2-2-1%200%203-5%203-8%201-2-2-3-1-1%201%203%202%202%204-1%204l-2-2-2-5c-2-4-1-5%202-2%202%203%203%201%200-1-2-4%205-6%208-3h1l-1-2-1-1-2-5c-5-8-6-9-4-11%201-3%201-3-2-7l-3-2v2l-2%202-2%204-10%205c-1%202-2%201-2-2%200-2%200-2-1%201%200%204-1%205-7%208l-6%205-2%204c-2%203-2%203-3%201-1-4-1-14%202-19l1-5c-2%201-2-2%200-3l1%202c0%201%201%201%203-1%204-4%206-5%2013-4s11%200%208-2c-4-1%200-3%204-2%209%203%2014%200%2017-10%201-5-1-16-3-14l-1-1c0-2%203-6%204-6l11-12%203-4c3%200%205-5%205-11l1-6%202-2%202-6c0-4%206-18%207-18l2%202%201%203v-3c-1-2%200-2%203-2%202%200%203%200%203%202s2%204%202%202l3%202c4%204%206%2010%207%2015l1%201%205%202%203%202c-2%200-5%203-5%204h2l6-2h5l-5%201c-4%200-4%201-4%204l-1%204c-1%201%201%207%203%207l2%204%203%203v-4%201l1%201h2l85%207c1-1-3-19-4-20l-20-2a2921%202921%200%2001-40-5c-5%200-7-2-7-5%200-1%208-1%2011%201h2l-2-3-8-2h14a453%20453%200%200040%202h5v-15l1-8c3%201%202%200-2-5l-2-3-1-1v1c0%202%200%202-3%202a2602%202602%200%2001-93-7l-3%206c0%207-2%208-1%201%200-3%200-4-1-2s-1%201-1-3l1-6v-1l-1-2h-1v9c1%207%200%208-1%209-4%204-6%201-7-6-1-5-1-6-4-6-2%200-2-1-2-3%200-3%200-3-1-1l-1%202h-4c-1%201-1%201-2-1-1-1-1%200-1%206%201%206%201%206-1%204-4-11%202-24%2011-23h3l-2-3c0-2-12-2-14%200m190%203l-12%206-5%202v1h-1v1l-1%201v1h-2v2l-1%201v1h-2v2l-3%203c-2%203-2%205-2%2020v17h-6l3%201%203%202%201%203c0%201%200%202-2%201l-1%201c0%203%200%204-2%204l-2-1h-3c-1-1-1-1-1%201s-2-3-2-8c0-3%200-3%203-3s2-2-1-2c-2%200-3-2-3-8-1-9-1-27%201-28l1-3v-3l-2%202-2%207c0%204%200%204-1%201%200-3-2-4-2-1-1%201-1%200-1-2%200-3%200-3%201-2s1%201%201-2v-3l-2%202-2%204c1%201%200%202-1%202l-2%201h2c2%200%202%201%202%2018%201%2021%201%2019%204%2036l3%2014a121%20121%200%2001-45-2l-25-1c-27-2-24-1-33-16-4-7-5-9-7-9l-4-2c-3-3-2-1%203%208%204%208%209%2013%2011%2013l1%201%201%201%203%204%205%205%204%202%201%201c1-1%2011%201%2012%203h2c0%203%204%209%207%2011l3%202-2%203-3%204v-5c-1-7-6-11-8-7h-5c-6-4-21-2-21%202h2c1-2%202-2%202-1h2c1-1%203-2%206-1h4l-2%203c-1%202-2%202-5%202l-5-2-2%202v5l1-3c0-2%201-2%203-2%203%201%205%204%204%205v1c2%200%202%201%202%204v5l-4-1-5-2-1%201-1%201h-1c0%202%2012%206%2017%205l1%202c1%201%201-2%201-6v-7c1%200%202%203%202%209%200%2011%200%2011%204%2012s7%200%208-3l1%205c1%2011%203%2015%204%207%201-3%201-3%201%201l-1%206c-2%200-1%202%201%202%201%200%202%200%201-1%200-2%200-2%203-1%205%201%207%202%204%202-2%200-3%200-2%201l3%201h5l5%201h1l2-1c2%200%205-4%208-9%201-5%201-5%205-4%203%200%204%200%205-3l1-5c0-1%200-2%201-1l1%203c0%204%202%204%203%200%201-2%201-2%203-1l1%204%201%201%204%201c3%200%203%200%204-5%201-4%203-6%205-5l-2%205c-3%205-4%207-2%205l10-1h8l2-4%203-4h-9l-9-1%203-1h5c3-4%205-21%203-22v-2c0-1-2-2-7-2-7-1-7-1-10%201-2%202-2%202-3%201-3-4-8%200-8%206l1-1c1-3%202-1%202%2010l-1%2014c-1%200-2-4-2-13%200-7%200-8-2-8-4%202-8-13-5-16%203-2%209-3%2013-2%203%201%205%201%208-1h5l3-4c3-4%209-9%2012-9l13-14c4-5%204-6%205-15a65%2065%200%20015-19c0-2%202-2%204-1l5%201c4%200%205%201%206%203l1%202c0-2%202%200%202%202h-1l-1%201%202%201%203%203c1%202%201%203-1%203l-1%202-1%205c-3%203-2%207%201%2014%203%206%204%207%208%205%203-1%203-15%201-15l-2-1%202-1c1%200%202%200%202-2v-5l-2%201-1%201-1%201v2c0%202%200%202-1%201h-1l2%204%201%202c-2%200-3-2-4-3l-1-2v2l1%205v2l-2-8v-2l1-1%203-3c4-3%205-4%203-9-2-4%201-5%203%200l2%204%203-3%201-4-1-2h1c1%202%202%201%204-1%202-3%202-3%200-3-3%201-5-4-5-12%200-6-3-19-5-21-1-2-5%202-6%206-1%203-1%204-3%203l-1%201%201%201v5c0%204%200%204-3%204-2-1-3-1-3-3-1-2-1-2-1%201s0%203-6%203l-7-1h-3l-2-2-1-1v-9c1-7%203-11%206-11l3-1-1-1c-2%201-2%200%200-3l4-2%202-1c0-2-3-1-12%202m-147%2025c-2%201-2%202-2%2011a226%20226%200%20011%2015h4c3%200%203%200%201%201l8-1%203%201-5%201h-4l5%201%206-1c0-2%202-1%202%201s3%201%204-1l1-2%201-5c0-4%200-5-2-4v-2c1-1%202-3%201-5l1-5c3-2-1-3-10-3l-10-2c-2-2-2-2-5%200m30%203c-1%201-2%202-2%205v13c-3%204%200%203%203-1%204-4%204-5%204-9s-2-11-2-7l-1-1h-2m161%2020c-2%205-3%207-2%208v5l-1%208c0%205-1%207-2%203l-1-5-1-3v16l-1%204c-2%200-1%202%201%203%203%200%203%200%203%203%200%202%200%203-5%204-6%202-8%203-6%204l2-1c3-3%207%200%207%207%200%203%200%203%204%201l6-1c1%200%202%200%202-2-1-1%200-2%201-2%203%200%203-2%203-8%200-5%200-5%202-4%207%202%2012-5%2012-18%201-8-3-16-6-16v1l-2%204-2%204%201-1c2-4%203-1%201%205-2%208-3%209-3%202v-3l-1%205c0%205-1%206-3%205-2%200-3-1-3-3-1-1-1-2-2-1l-1-1c0-1%200-2-1-1l-1-2h-1c-1%202-2%200-1-4l1-3c0%201%201%201%202-1%203-3%204-4%203-1%200%201%201%201%204-2%204-2%204-2%202-4-2-1-3-4-4-7l-3-5-4%207M70%20192l-4%207-3%205h5c4%200%206%200%207-2s2-2%202-1l2-1h-1c-2%201-1-1%201-5%203-3%203-6%201-3h-2l-1-1h-3c-1-1-3%200-4%201m-2%2016l-1%201h-8c-1-1-1%200-1%201l-3%202-1%201v2l-2%203-1%206-1%204h12l4%202v-4c0-4%202-12%204-12v-7c0-2-1-1-2%201m10%204l-2%201c-8-1-9%2021-1%2026%202%201%202%201%202-4l-2-8%201-3%201%202c0%203%205%208%208%208%202%200%205-2%205-4l-3%201c-3%201-5%201-5-1l1-1v-3c0-3%200-4%202-6%203-2%201-4-3-2-3%201-3%201-2-3l-1-4-1%201m130%204v3l31%202c10%200%207-2-3-2-5%200-5%200-3-1l3-1h-3c-18-1-22-2-24-3-2%200-2%200-1%202m-15%206h-5l-1%201%201%203%201-1%201%201h1l1%201%204%202%206-1%206-1%206-1-1-1c-2%200-2-1-2-3h-18m122%209l1%201v2c-1%200-2%200-3%202-2%202-3%202-5%201-3-1-3-1-5%202-4%205%200%2010%204%205h2l2-3%205-5c3-2%205-3%203-1v3h2l1-1v-4h-2c2-1-1-3-4-3-2%200-2%200-1%201m-66%205c-2%202-2%202-2%200l-1%201-2%205%201-1c1-2%202-2%207-2s7%200%208-2v1l-2%205c-1%202-1%202-2%200-2-4-10%200-10%205%200%203%201%204%208%204l5%201%202-7a120%20120%200%20012-11c-1%201-2%200-3-1-2-2-9-1-11%202m-57%2019c-1%203-1%205%201%205h1l6%201c11%200%2011%201%2012%208%201%205%201%205%201-3%200-6-1-8-2-8l-1-1-2-2h-16m-121%204l-1%201c-2-2-4%203-3%207%202%206%203%207%205%205%202-3%204-2%202%200l-1%202%202-2%207-3c4-2%204-2%200-7l-6-3-2-1-1-1-2%202m243%200c0%205%207%2012%209%2010l1%201v2l5%202c5%202%206%202%205-2-1-6-6-10-9-8h-1c0-1-2-3-5-4l-5-3v2m-119%208c0%203%200%204-1%203-1-4-2-2-2%202%201%204%201%204%209%205h7v-10l-1-1-2-1-6-2h-4v4m-142%205c-2%201-2%203-1%205l3%206h2l6-3%202-1c1%200%202%200%201-1v-1l-1-1-1-1c1-1%200-2-1-2h-2l-2-1c-3-2-4-3-6%200m258%208l-4%202-4%202-3%202h14c15%200%2015%200%2016-3%203-5-5-8-9-3l-2%201-3-3c-3-1-2-1-5%202'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIEBQH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdunGqa2lJHZAhX/xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBQREhP/2gAIAQEAAQUCIqGC0u89l2YEFWt66AsdfGsqayp//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZZLKZTP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqoj/xAAgEAACAAUFAQAAAAAAAAAAAAAAAQIRISJBEBIxMoGh/9oACAEBAAY/AqlzW3RzipguYpxGV6cfTqf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIWFx8P/aAAgBAQABPyEAtV5MC447BEsilJBXDLmSGFsDBuYp6I8xj4rP/9oADAMBAAIAAwAAABDjGIL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAWH/2gAIAQMBAT8QiyLKsqz/xAAWEQADAAAAAAAAAAAAAAAAAAAAEVH/2gAIAQIBAT8QSiUSCQ//xAAfEAEAAwACAQUAAAAAAAAAAAABABEhQVExgaHB0fD/2gAIAQEAAT8QrhdxPdQQR7ZFU+OcgBBEse4iMIlDZvrHN0m62sxgHQNG1PaPd4cp8wyWsVq2fl90/9k=","aspectRatio":1,"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/1dc0b/imagermachine.jpg","srcSet":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/3a5ce/imagermachine.jpg 163w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/05730/imagermachine.jpg 327w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/1dc0b/imagermachine.jpg 653w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/f72c7/imagermachine.jpg 980w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg 1200w","srcWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/0acdf/imagermachine.webp","srcSetWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/ac59e/imagermachine.webp 163w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/7660b/imagermachine.webp 327w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0acdf/imagermachine.webp 653w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/75470/imagermachine.webp 980w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/9000d/imagermachine.webp 1200w","sizes":"(max-width: 653px) 100vw, 653px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M260%2051c-17%201-44%206-48%209-3%201-4%203-5%207-3%207-4%2024-2%2028l1%203h13l12%201c-1%202-8%203-20%203-9%200-12-1-20-4l-10-2a145%20145%200%2001-33%204l-2%201h2c2%200%202%200%201%201h-4l-1%201h8c3-2%2010-4%208-2h5l-3%202c-5%202-3%202%202%200%206-3%2010-3%204%200-4%202-7%207-5%209l1-1%206-6c1%200%200%202-2%203l-3%204h4c3%201%203%200%204-1%201-2%201-2%201%200s5%203%2015%203c5%200%205%200%205%203%200%202%200%202%204%202l4%201%201%201c2-2%201-3-3-3-3%200-4%200-4-2h37l5-3c5-3%2010-4%2010-3l-1%201v1l3-2%2010-1c5%200%206%200%204-1-4%200-4-1-3-1h9l-1%201%2015-4a313%20313%200%2000-52-5c0-2%204-3%2017-5%2012-2%2016-3%2019-5l2-1-4%206v1c3%200%204-2%206-10l4-7c1%200%206-6%206-8h-1l-1-2c1-4-1-4-2-1l-1-5v-9c-2%200-2%201-2%205v12l-2%207v-9c0-14-3-19-8-18l-5%201m-9%205l-6%205-3%203-3-3c-5-3-15-3-19%200l-3%201-3%201-1%202%202%201-2%201-3%201%201%201%202%201h-2c-1%200-3%201-3%203s3%201%203%200c1-1%201%201%201%205%200%205%200%206%203%207%202%201%202%201%202-1l2%202%201%204-1-6c0-6%204-17%209-20%208-3%2013-1%2015%208l2%206-1-6%201-6c1-1%201%200%201%201%200%202%200%202%201%201s1-1%201%201c-2%206-2%207-1%207l1-3c0-7%209-16%2015-14%202%200%202%200%201-1v-1l-1-1h-4c-3%200-3%200-2-1%203-2-1-1-6%201m-95%206l1%203c1%201%200%207-1%209-1%201%200%204%201%204l1-1c-2-2%202-1%2018%205l17%206V78l1-9-4-2-6-2-3-2h-1l-10-2c-13-3-14-3-14%201m-52%2055c-3%203-5%2012-5%2029l-1%2012c-2%201-14%200-13-2h-2c-1%201%202%207%203%206%202-1%201%201-1%204-2%202-1%203%202%201h1c0%202%207%201%209-1h1c-1%201%200%202%201%203v5h-1l-3%204-2%205%203%206c3%206%204%206%201-1l-1-4c1-1%206%201%207%203l1%202%202%201c1%201%200%201-2%203-6%204-6%204-10-4-3-6-4-7-6-7-1%200-2%200-1%202l-1%202v2l-11%201-11%201%202%202c4%201-5%2012-9%2011-1%200-2%200-1%201v4c-3%202-8%2012-8%2013v4c-1%203-5%204-5%201l-1%201c-1%203-2%203-2%202-2-3%202-11%206-11l1-1-2-1c-4%200-9%207-9%2015%200%206-2%207-4%202-1-2-1-2-1%200s6%209%208%209v6c-1%202-1%202%201%202l2%201h-3l-1%201%202%202c2%200%202%200%201%201-2%200-3%202-1%202v6c-2%207-1%2014%202%2018%202%203%203%204%203%202%200-3%201-3%203%201%201%202%201%202-1%202H0v75h77l-1%202%201%202%203-1-1-1c0-2%201-2%2011-2h11v4c0%203%200%203%201%201l1-1a432%20432%200%20002%206c1%202%201%202-1%202l-3%201%2010%203h2c1%202%2013%202%2013%201l6-2h5v-6c0-6%201-6%201-4%202%205%200%2018-2%2018l-1%201h1l2%201%207%202h6l3-6%203-8c0-2%201-2%208-2%2012%200%2031-3%2035-5%202-2%201-2-2-1l-6%202c-5%201-5%201-5-2l-1-4c-1-1%203-1%2017-1h19v3l3%203%205%202c5%203%2010%204%2026%202%209%200%2010%200%2017-5l8-5h120v-75h-60l-1-5-2-8-1-3%204-1c11-1%2020-18%2016-30-1-5-3-10-4-9l1%204c2%204%202%204%201%206h-2c0-8-10-11-15-5-3%202-3%204-3%208%200%203%200%204%201%203%200-5%201-7%202-7l7%207c0%202%200%202%201%200l4-3c2%200%202%200%202%203-2%204-8%209-8%205h-1l-2%201c-2%200-2%200-1%201l6%201c4-1%205%201%202%204h-3c0-2-2-3-5-3s-6-3-8-7c-1-3-1-3-2-2v2l1%203%203%205c3%203%202%204-2%201s-6-7-7-12l-1-4v4c0%202%200%203-1%202l-2-1c-1%201-1%200-1-1%200-2%200-2-1%200-1%201-1%201-1-1l-1-2c-2-2-1%202%201%206s2%205-1%202c-2-1-2-1-2%201%201%204%200%204-2%200-2-3-2-3-4-1s-5%203-7%201h-1c0%202%204%204%208%204l4%201c2%201-5%206-7%204l-1%201%202%203%201%202%201%202v-1c0-2%200-2%202-2s5%202%204%204l1%201v1h-3c-2-2-3-2-1%201s-8%208-11%206l-1%202c2%204-11%209-13%205l-1-1v1l-4%201c-6%200-6%200-3-7v-11c-2-9-3-10-6-5l-2%205-2%2010-1%208h-94v-8c0-14-3-19-11-19-3%200-5%200-4%201v2h3a4318%204318%200%2001-5%2015c2-5%202-3%201%204l-1%205H96v-2l-1-3c-1-2-2-2-2-1%200%203-5%203-8%201-2-2-3-1-1%201%203%202%202%204-1%204l-2-2-2-5c-2-4-1-5%202-2%202%203%203%201%200-1-2-4%205-6%208-3h1l-1-2-1-1-2-5c-5-8-6-9-4-11%201-3%201-3-2-7l-3-2v2l-2%202-2%204-10%205c-1%202-2%201-2-2%200-2%200-2-1%201%200%204-1%205-7%208l-6%205-2%204c-2%203-2%203-3%201-1-4-1-14%202-19l1-5c-2%201-2-2%200-3l1%202c0%201%201%201%203-1%204-4%206-5%2013-4s11%200%208-2c-4-1%200-3%204-2%209%203%2014%200%2017-10%201-5-1-16-3-14l-1-1c0-2%203-6%204-6l11-12%203-4c3%200%205-5%205-11l1-6%202-2%202-6c0-4%206-18%207-18l2%202%201%203v-3c-1-2%200-2%203-2%202%200%203%200%203%202s2%204%202%202l3%202c4%204%206%2010%207%2015l1%201%205%202%203%202c-2%200-5%203-5%204h2l6-2h5l-5%201c-4%200-4%201-4%204l-1%204c-1%201%201%207%203%207l2%204%203%203v-4%201l1%201h2l85%207c1-1-3-19-4-20l-20-2a2921%202921%200%2001-40-5c-5%200-7-2-7-5%200-1%208-1%2011%201h2l-2-3-8-2h14a453%20453%200%200040%202h5v-15l1-8c3%201%202%200-2-5l-2-3-1-1v1c0%202%200%202-3%202a2602%202602%200%2001-93-7l-3%206c0%207-2%208-1%201%200-3%200-4-1-2s-1%201-1-3l1-6v-1l-1-2h-1v9c1%207%200%208-1%209-4%204-6%201-7-6-1-5-1-6-4-6-2%200-2-1-2-3%200-3%200-3-1-1l-1%202h-4c-1%201-1%201-2-1-1-1-1%200-1%206%201%206%201%206-1%204-4-11%202-24%2011-23h3l-2-3c0-2-12-2-14%200m190%203l-12%206-5%202v1h-1v1l-1%201v1h-2v2l-1%201v1h-2v2l-3%203c-2%203-2%205-2%2020v17h-6l3%201%203%202%201%203c0%201%200%202-2%201l-1%201c0%203%200%204-2%204l-2-1h-3c-1-1-1-1-1%201s-2-3-2-8c0-3%200-3%203-3s2-2-1-2c-2%200-3-2-3-8-1-9-1-27%201-28l1-3v-3l-2%202-2%207c0%204%200%204-1%201%200-3-2-4-2-1-1%201-1%200-1-2%200-3%200-3%201-2s1%201%201-2v-3l-2%202-2%204c1%201%200%202-1%202l-2%201h2c2%200%202%201%202%2018%201%2021%201%2019%204%2036l3%2014a121%20121%200%2001-45-2l-25-1c-27-2-24-1-33-16-4-7-5-9-7-9l-4-2c-3-3-2-1%203%208%204%208%209%2013%2011%2013l1%201%201%201%203%204%205%205%204%202%201%201c1-1%2011%201%2012%203h2c0%203%204%209%207%2011l3%202-2%203-3%204v-5c-1-7-6-11-8-7h-5c-6-4-21-2-21%202h2c1-2%202-2%202-1h2c1-1%203-2%206-1h4l-2%203c-1%202-2%202-5%202l-5-2-2%202v5l1-3c0-2%201-2%203-2%203%201%205%204%204%205v1c2%200%202%201%202%204v5l-4-1-5-2-1%201-1%201h-1c0%202%2012%206%2017%205l1%202c1%201%201-2%201-6v-7c1%200%202%203%202%209%200%2011%200%2011%204%2012s7%200%208-3l1%205c1%2011%203%2015%204%207%201-3%201-3%201%201l-1%206c-2%200-1%202%201%202%201%200%202%200%201-1%200-2%200-2%203-1%205%201%207%202%204%202-2%200-3%200-2%201l3%201h5l5%201h1l2-1c2%200%205-4%208-9%201-5%201-5%205-4%203%200%204%200%205-3l1-5c0-1%200-2%201-1l1%203c0%204%202%204%203%200%201-2%201-2%203-1l1%204%201%201%204%201c3%200%203%200%204-5%201-4%203-6%205-5l-2%205c-3%205-4%207-2%205l10-1h8l2-4%203-4h-9l-9-1%203-1h5c3-4%205-21%203-22v-2c0-1-2-2-7-2-7-1-7-1-10%201-2%202-2%202-3%201-3-4-8%200-8%206l1-1c1-3%202-1%202%2010l-1%2014c-1%200-2-4-2-13%200-7%200-8-2-8-4%202-8-13-5-16%203-2%209-3%2013-2%203%201%205%201%208-1h5l3-4c3-4%209-9%2012-9l13-14c4-5%204-6%205-15a65%2065%200%20015-19c0-2%202-2%204-1l5%201c4%200%205%201%206%203l1%202c0-2%202%200%202%202h-1l-1%201%202%201%203%203c1%202%201%203-1%203l-1%202-1%205c-3%203-2%207%201%2014%203%206%204%207%208%205%203-1%203-15%201-15l-2-1%202-1c1%200%202%200%202-2v-5l-2%201-1%201-1%201v2c0%202%200%202-1%201h-1l2%204%201%202c-2%200-3-2-4-3l-1-2v2l1%205v2l-2-8v-2l1-1%203-3c4-3%205-4%203-9-2-4%201-5%203%200l2%204%203-3%201-4-1-2h1c1%202%202%201%204-1%202-3%202-3%200-3-3%201-5-4-5-12%200-6-3-19-5-21-1-2-5%202-6%206-1%203-1%204-3%203l-1%201%201%201v5c0%204%200%204-3%204-2-1-3-1-3-3-1-2-1-2-1%201s0%203-6%203l-7-1h-3l-2-2-1-1v-9c1-7%203-11%206-11l3-1-1-1c-2%201-2%200%200-3l4-2%202-1c0-2-3-1-12%202m-147%2025c-2%201-2%202-2%2011a226%20226%200%20011%2015h4c3%200%203%200%201%201l8-1%203%201-5%201h-4l5%201%206-1c0-2%202-1%202%201s3%201%204-1l1-2%201-5c0-4%200-5-2-4v-2c1-1%202-3%201-5l1-5c3-2-1-3-10-3l-10-2c-2-2-2-2-5%200m30%203c-1%201-2%202-2%205v13c-3%204%200%203%203-1%204-4%204-5%204-9s-2-11-2-7l-1-1h-2m161%2020c-2%205-3%207-2%208v5l-1%208c0%205-1%207-2%203l-1-5-1-3v16l-1%204c-2%200-1%202%201%203%203%200%203%200%203%203%200%202%200%203-5%204-6%202-8%203-6%204l2-1c3-3%207%200%207%207%200%203%200%203%204%201l6-1c1%200%202%200%202-2-1-1%200-2%201-2%203%200%203-2%203-8%200-5%200-5%202-4%207%202%2012-5%2012-18%201-8-3-16-6-16v1l-2%204-2%204%201-1c2-4%203-1%201%205-2%208-3%209-3%202v-3l-1%205c0%205-1%206-3%205-2%200-3-1-3-3-1-1-1-2-2-1l-1-1c0-1%200-2-1-1l-1-2h-1c-1%202-2%200-1-4l1-3c0%201%201%201%202-1%203-3%204-4%203-1%200%201%201%201%204-2%204-2%204-2%202-4-2-1-3-4-4-7l-3-5-4%207M70%20192l-4%207-3%205h5c4%200%206%200%207-2s2-2%202-1l2-1h-1c-2%201-1-1%201-5%203-3%203-6%201-3h-2l-1-1h-3c-1-1-3%200-4%201m-2%2016l-1%201h-8c-1-1-1%200-1%201l-3%202-1%201v2l-2%203-1%206-1%204h12l4%202v-4c0-4%202-12%204-12v-7c0-2-1-1-2%201m10%204l-2%201c-8-1-9%2021-1%2026%202%201%202%201%202-4l-2-8%201-3%201%202c0%203%205%208%208%208%202%200%205-2%205-4l-3%201c-3%201-5%201-5-1l1-1v-3c0-3%200-4%202-6%203-2%201-4-3-2-3%201-3%201-2-3l-1-4-1%201m130%204v3l31%202c10%200%207-2-3-2-5%200-5%200-3-1l3-1h-3c-18-1-22-2-24-3-2%200-2%200-1%202m-15%206h-5l-1%201%201%203%201-1%201%201h1l1%201%204%202%206-1%206-1%206-1-1-1c-2%200-2-1-2-3h-18m122%209l1%201v2c-1%200-2%200-3%202-2%202-3%202-5%201-3-1-3-1-5%202-4%205%200%2010%204%205h2l2-3%205-5c3-2%205-3%203-1v3h2l1-1v-4h-2c2-1-1-3-4-3-2%200-2%200-1%201m-66%205c-2%202-2%202-2%200l-1%201-2%205%201-1c1-2%202-2%207-2s7%200%208-2v1l-2%205c-1%202-1%202-2%200-2-4-10%200-10%205%200%203%201%204%208%204l5%201%202-7a120%20120%200%20012-11c-1%201-2%200-3-1-2-2-9-1-11%202m-57%2019c-1%203-1%205%201%205h1l6%201c11%200%2011%201%2012%208%201%205%201%205%201-3%200-6-1-8-2-8l-1-1-2-2h-16m-121%204l-1%201c-2-2-4%203-3%207%202%206%203%207%205%205%202-3%204-2%202%200l-1%202%202-2%207-3c4-2%204-2%200-7l-6-3-2-1-1-1-2%202m243%200c0%205%207%2012%209%2010l1%201v2l5%202c5%202%206%202%205-2-1-6-6-10-9-8h-1c0-1-2-3-5-4l-5-3v2m-119%208c0%203%200%204-1%203-1-4-2-2-2%202%201%204%201%204%209%205h7v-10l-1-1-2-1-6-2h-4v4m-142%205c-2%201-2%203-1%205l3%206h2l6-3%202-1c1%200%202%200%201-1v-1l-1-1-1-1c1-1%200-2-1-2h-2l-2-1c-3-2-4-3-6%200m258%208l-4%202-4%202-3%202h14c15%200%2015%200%2016-3%203-5-5-8-9-3l-2%201-3-3c-3-1-2-1-5%202'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIEBQH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdunGqa2lJHZAhX/xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBQREhP/2gAIAQEAAQUCIqGC0u89l2YEFWt66AsdfGsqayp//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZZLKZTP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqoj/xAAgEAACAAUFAQAAAAAAAAAAAAAAAQIRISJBEBIxMoGh/9oACAEBAAY/AqlzW3RzipguYpxGV6cfTqf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIWFx8P/aAAgBAQABPyEAtV5MC447BEsilJBXDLmSGFsDBuYp6I8xj4rP/9oADAMBAAIAAwAAABDjGIL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAWH/2gAIAQMBAT8QiyLKsqz/xAAWEQADAAAAAAAAAAAAAAAAAAAAEVH/2gAIAQIBAT8QSiUSCQ//xAAfEAEAAwACAQUAAAAAAAAAAAABABEhQVExgaHB0fD/2gAIAQEAAT8QrhdxPdQQR7ZFU+OcgBBEse4iMIlDZvrHN0m62sxgHQNG1PaPd4cp8wyWsVq2fl90/9k=","aspectRatio":1,"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/eaa58/imagermachine.jpg","srcSet":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/5a3ee/imagermachine.jpg 114w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/41f8f/imagermachine.jpg 229w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/eaa58/imagermachine.jpg 457w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/c309b/imagermachine.jpg 686w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/e3008/imagermachine.jpg 914w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg 1200w","srcWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/15384/imagermachine.webp","srcSetWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/31fce/imagermachine.webp 114w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/e3e25/imagermachine.webp 229w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/15384/imagermachine.webp 457w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0258d/imagermachine.webp 686w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/64ea2/imagermachine.webp 914w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/9000d/imagermachine.webp 1200w","sizes":"(max-width: 457px) 100vw, 457px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M260%2051c-17%201-44%206-48%209-3%201-4%203-5%207-3%207-4%2024-2%2028l1%203h13l12%201c-1%202-8%203-20%203-9%200-12-1-20-4l-10-2a145%20145%200%2001-33%204l-2%201h2c2%200%202%200%201%201h-4l-1%201h8c3-2%2010-4%208-2h5l-3%202c-5%202-3%202%202%200%206-3%2010-3%204%200-4%202-7%207-5%209l1-1%206-6c1%200%200%202-2%203l-3%204h4c3%201%203%200%204-1%201-2%201-2%201%200s5%203%2015%203c5%200%205%200%205%203%200%202%200%202%204%202l4%201%201%201c2-2%201-3-3-3-3%200-4%200-4-2h37l5-3c5-3%2010-4%2010-3l-1%201v1l3-2%2010-1c5%200%206%200%204-1-4%200-4-1-3-1h9l-1%201%2015-4a313%20313%200%2000-52-5c0-2%204-3%2017-5%2012-2%2016-3%2019-5l2-1-4%206v1c3%200%204-2%206-10l4-7c1%200%206-6%206-8h-1l-1-2c1-4-1-4-2-1l-1-5v-9c-2%200-2%201-2%205v12l-2%207v-9c0-14-3-19-8-18l-5%201m-9%205l-6%205-3%203-3-3c-5-3-15-3-19%200l-3%201-3%201-1%202%202%201-2%201-3%201%201%201%202%201h-2c-1%200-3%201-3%203s3%201%203%200c1-1%201%201%201%205%200%205%200%206%203%207%202%201%202%201%202-1l2%202%201%204-1-6c0-6%204-17%209-20%208-3%2013-1%2015%208l2%206-1-6%201-6c1-1%201%200%201%201%200%202%200%202%201%201s1-1%201%201c-2%206-2%207-1%207l1-3c0-7%209-16%2015-14%202%200%202%200%201-1v-1l-1-1h-4c-3%200-3%200-2-1%203-2-1-1-6%201m-95%206l1%203c1%201%200%207-1%209-1%201%200%204%201%204l1-1c-2-2%202-1%2018%205l17%206V78l1-9-4-2-6-2-3-2h-1l-10-2c-13-3-14-3-14%201m-52%2055c-3%203-5%2012-5%2029l-1%2012c-2%201-14%200-13-2h-2c-1%201%202%207%203%206%202-1%201%201-1%204-2%202-1%203%202%201h1c0%202%207%201%209-1h1c-1%201%200%202%201%203v5h-1l-3%204-2%205%203%206c3%206%204%206%201-1l-1-4c1-1%206%201%207%203l1%202%202%201c1%201%200%201-2%203-6%204-6%204-10-4-3-6-4-7-6-7-1%200-2%200-1%202l-1%202v2l-11%201-11%201%202%202c4%201-5%2012-9%2011-1%200-2%200-1%201v4c-3%202-8%2012-8%2013v4c-1%203-5%204-5%201l-1%201c-1%203-2%203-2%202-2-3%202-11%206-11l1-1-2-1c-4%200-9%207-9%2015%200%206-2%207-4%202-1-2-1-2-1%200s6%209%208%209v6c-1%202-1%202%201%202l2%201h-3l-1%201%202%202c2%200%202%200%201%201-2%200-3%202-1%202v6c-2%207-1%2014%202%2018%202%203%203%204%203%202%200-3%201-3%203%201%201%202%201%202-1%202H0v75h77l-1%202%201%202%203-1-1-1c0-2%201-2%2011-2h11v4c0%203%200%203%201%201l1-1a432%20432%200%20002%206c1%202%201%202-1%202l-3%201%2010%203h2c1%202%2013%202%2013%201l6-2h5v-6c0-6%201-6%201-4%202%205%200%2018-2%2018l-1%201h1l2%201%207%202h6l3-6%203-8c0-2%201-2%208-2%2012%200%2031-3%2035-5%202-2%201-2-2-1l-6%202c-5%201-5%201-5-2l-1-4c-1-1%203-1%2017-1h19v3l3%203%205%202c5%203%2010%204%2026%202%209%200%2010%200%2017-5l8-5h120v-75h-60l-1-5-2-8-1-3%204-1c11-1%2020-18%2016-30-1-5-3-10-4-9l1%204c2%204%202%204%201%206h-2c0-8-10-11-15-5-3%202-3%204-3%208%200%203%200%204%201%203%200-5%201-7%202-7l7%207c0%202%200%202%201%200l4-3c2%200%202%200%202%203-2%204-8%209-8%205h-1l-2%201c-2%200-2%200-1%201l6%201c4-1%205%201%202%204h-3c0-2-2-3-5-3s-6-3-8-7c-1-3-1-3-2-2v2l1%203%203%205c3%203%202%204-2%201s-6-7-7-12l-1-4v4c0%202%200%203-1%202l-2-1c-1%201-1%200-1-1%200-2%200-2-1%200-1%201-1%201-1-1l-1-2c-2-2-1%202%201%206s2%205-1%202c-2-1-2-1-2%201%201%204%200%204-2%200-2-3-2-3-4-1s-5%203-7%201h-1c0%202%204%204%208%204l4%201c2%201-5%206-7%204l-1%201%202%203%201%202%201%202v-1c0-2%200-2%202-2s5%202%204%204l1%201v1h-3c-2-2-3-2-1%201s-8%208-11%206l-1%202c2%204-11%209-13%205l-1-1v1l-4%201c-6%200-6%200-3-7v-11c-2-9-3-10-6-5l-2%205-2%2010-1%208h-94v-8c0-14-3-19-11-19-3%200-5%200-4%201v2h3a4318%204318%200%2001-5%2015c2-5%202-3%201%204l-1%205H96v-2l-1-3c-1-2-2-2-2-1%200%203-5%203-8%201-2-2-3-1-1%201%203%202%202%204-1%204l-2-2-2-5c-2-4-1-5%202-2%202%203%203%201%200-1-2-4%205-6%208-3h1l-1-2-1-1-2-5c-5-8-6-9-4-11%201-3%201-3-2-7l-3-2v2l-2%202-2%204-10%205c-1%202-2%201-2-2%200-2%200-2-1%201%200%204-1%205-7%208l-6%205-2%204c-2%203-2%203-3%201-1-4-1-14%202-19l1-5c-2%201-2-2%200-3l1%202c0%201%201%201%203-1%204-4%206-5%2013-4s11%200%208-2c-4-1%200-3%204-2%209%203%2014%200%2017-10%201-5-1-16-3-14l-1-1c0-2%203-6%204-6l11-12%203-4c3%200%205-5%205-11l1-6%202-2%202-6c0-4%206-18%207-18l2%202%201%203v-3c-1-2%200-2%203-2%202%200%203%200%203%202s2%204%202%202l3%202c4%204%206%2010%207%2015l1%201%205%202%203%202c-2%200-5%203-5%204h2l6-2h5l-5%201c-4%200-4%201-4%204l-1%204c-1%201%201%207%203%207l2%204%203%203v-4%201l1%201h2l85%207c1-1-3-19-4-20l-20-2a2921%202921%200%2001-40-5c-5%200-7-2-7-5%200-1%208-1%2011%201h2l-2-3-8-2h14a453%20453%200%200040%202h5v-15l1-8c3%201%202%200-2-5l-2-3-1-1v1c0%202%200%202-3%202a2602%202602%200%2001-93-7l-3%206c0%207-2%208-1%201%200-3%200-4-1-2s-1%201-1-3l1-6v-1l-1-2h-1v9c1%207%200%208-1%209-4%204-6%201-7-6-1-5-1-6-4-6-2%200-2-1-2-3%200-3%200-3-1-1l-1%202h-4c-1%201-1%201-2-1-1-1-1%200-1%206%201%206%201%206-1%204-4-11%202-24%2011-23h3l-2-3c0-2-12-2-14%200m190%203l-12%206-5%202v1h-1v1l-1%201v1h-2v2l-1%201v1h-2v2l-3%203c-2%203-2%205-2%2020v17h-6l3%201%203%202%201%203c0%201%200%202-2%201l-1%201c0%203%200%204-2%204l-2-1h-3c-1-1-1-1-1%201s-2-3-2-8c0-3%200-3%203-3s2-2-1-2c-2%200-3-2-3-8-1-9-1-27%201-28l1-3v-3l-2%202-2%207c0%204%200%204-1%201%200-3-2-4-2-1-1%201-1%200-1-2%200-3%200-3%201-2s1%201%201-2v-3l-2%202-2%204c1%201%200%202-1%202l-2%201h2c2%200%202%201%202%2018%201%2021%201%2019%204%2036l3%2014a121%20121%200%2001-45-2l-25-1c-27-2-24-1-33-16-4-7-5-9-7-9l-4-2c-3-3-2-1%203%208%204%208%209%2013%2011%2013l1%201%201%201%203%204%205%205%204%202%201%201c1-1%2011%201%2012%203h2c0%203%204%209%207%2011l3%202-2%203-3%204v-5c-1-7-6-11-8-7h-5c-6-4-21-2-21%202h2c1-2%202-2%202-1h2c1-1%203-2%206-1h4l-2%203c-1%202-2%202-5%202l-5-2-2%202v5l1-3c0-2%201-2%203-2%203%201%205%204%204%205v1c2%200%202%201%202%204v5l-4-1-5-2-1%201-1%201h-1c0%202%2012%206%2017%205l1%202c1%201%201-2%201-6v-7c1%200%202%203%202%209%200%2011%200%2011%204%2012s7%200%208-3l1%205c1%2011%203%2015%204%207%201-3%201-3%201%201l-1%206c-2%200-1%202%201%202%201%200%202%200%201-1%200-2%200-2%203-1%205%201%207%202%204%202-2%200-3%200-2%201l3%201h5l5%201h1l2-1c2%200%205-4%208-9%201-5%201-5%205-4%203%200%204%200%205-3l1-5c0-1%200-2%201-1l1%203c0%204%202%204%203%200%201-2%201-2%203-1l1%204%201%201%204%201c3%200%203%200%204-5%201-4%203-6%205-5l-2%205c-3%205-4%207-2%205l10-1h8l2-4%203-4h-9l-9-1%203-1h5c3-4%205-21%203-22v-2c0-1-2-2-7-2-7-1-7-1-10%201-2%202-2%202-3%201-3-4-8%200-8%206l1-1c1-3%202-1%202%2010l-1%2014c-1%200-2-4-2-13%200-7%200-8-2-8-4%202-8-13-5-16%203-2%209-3%2013-2%203%201%205%201%208-1h5l3-4c3-4%209-9%2012-9l13-14c4-5%204-6%205-15a65%2065%200%20015-19c0-2%202-2%204-1l5%201c4%200%205%201%206%203l1%202c0-2%202%200%202%202h-1l-1%201%202%201%203%203c1%202%201%203-1%203l-1%202-1%205c-3%203-2%207%201%2014%203%206%204%207%208%205%203-1%203-15%201-15l-2-1%202-1c1%200%202%200%202-2v-5l-2%201-1%201-1%201v2c0%202%200%202-1%201h-1l2%204%201%202c-2%200-3-2-4-3l-1-2v2l1%205v2l-2-8v-2l1-1%203-3c4-3%205-4%203-9-2-4%201-5%203%200l2%204%203-3%201-4-1-2h1c1%202%202%201%204-1%202-3%202-3%200-3-3%201-5-4-5-12%200-6-3-19-5-21-1-2-5%202-6%206-1%203-1%204-3%203l-1%201%201%201v5c0%204%200%204-3%204-2-1-3-1-3-3-1-2-1-2-1%201s0%203-6%203l-7-1h-3l-2-2-1-1v-9c1-7%203-11%206-11l3-1-1-1c-2%201-2%200%200-3l4-2%202-1c0-2-3-1-12%202m-147%2025c-2%201-2%202-2%2011a226%20226%200%20011%2015h4c3%200%203%200%201%201l8-1%203%201-5%201h-4l5%201%206-1c0-2%202-1%202%201s3%201%204-1l1-2%201-5c0-4%200-5-2-4v-2c1-1%202-3%201-5l1-5c3-2-1-3-10-3l-10-2c-2-2-2-2-5%200m30%203c-1%201-2%202-2%205v13c-3%204%200%203%203-1%204-4%204-5%204-9s-2-11-2-7l-1-1h-2m161%2020c-2%205-3%207-2%208v5l-1%208c0%205-1%207-2%203l-1-5-1-3v16l-1%204c-2%200-1%202%201%203%203%200%203%200%203%203%200%202%200%203-5%204-6%202-8%203-6%204l2-1c3-3%207%200%207%207%200%203%200%203%204%201l6-1c1%200%202%200%202-2-1-1%200-2%201-2%203%200%203-2%203-8%200-5%200-5%202-4%207%202%2012-5%2012-18%201-8-3-16-6-16v1l-2%204-2%204%201-1c2-4%203-1%201%205-2%208-3%209-3%202v-3l-1%205c0%205-1%206-3%205-2%200-3-1-3-3-1-1-1-2-2-1l-1-1c0-1%200-2-1-1l-1-2h-1c-1%202-2%200-1-4l1-3c0%201%201%201%202-1%203-3%204-4%203-1%200%201%201%201%204-2%204-2%204-2%202-4-2-1-3-4-4-7l-3-5-4%207M70%20192l-4%207-3%205h5c4%200%206%200%207-2s2-2%202-1l2-1h-1c-2%201-1-1%201-5%203-3%203-6%201-3h-2l-1-1h-3c-1-1-3%200-4%201m-2%2016l-1%201h-8c-1-1-1%200-1%201l-3%202-1%201v2l-2%203-1%206-1%204h12l4%202v-4c0-4%202-12%204-12v-7c0-2-1-1-2%201m10%204l-2%201c-8-1-9%2021-1%2026%202%201%202%201%202-4l-2-8%201-3%201%202c0%203%205%208%208%208%202%200%205-2%205-4l-3%201c-3%201-5%201-5-1l1-1v-3c0-3%200-4%202-6%203-2%201-4-3-2-3%201-3%201-2-3l-1-4-1%201m130%204v3l31%202c10%200%207-2-3-2-5%200-5%200-3-1l3-1h-3c-18-1-22-2-24-3-2%200-2%200-1%202m-15%206h-5l-1%201%201%203%201-1%201%201h1l1%201%204%202%206-1%206-1%206-1-1-1c-2%200-2-1-2-3h-18m122%209l1%201v2c-1%200-2%200-3%202-2%202-3%202-5%201-3-1-3-1-5%202-4%205%200%2010%204%205h2l2-3%205-5c3-2%205-3%203-1v3h2l1-1v-4h-2c2-1-1-3-4-3-2%200-2%200-1%201m-66%205c-2%202-2%202-2%200l-1%201-2%205%201-1c1-2%202-2%207-2s7%200%208-2v1l-2%205c-1%202-1%202-2%200-2-4-10%200-10%205%200%203%201%204%208%204l5%201%202-7a120%20120%200%20012-11c-1%201-2%200-3-1-2-2-9-1-11%202m-57%2019c-1%203-1%205%201%205h1l6%201c11%200%2011%201%2012%208%201%205%201%205%201-3%200-6-1-8-2-8l-1-1-2-2h-16m-121%204l-1%201c-2-2-4%203-3%207%202%206%203%207%205%205%202-3%204-2%202%200l-1%202%202-2%207-3c4-2%204-2%200-7l-6-3-2-1-1-1-2%202m243%200c0%205%207%2012%209%2010l1%201v2l5%202c5%202%206%202%205-2-1-6-6-10-9-8h-1c0-1-2-3-5-4l-5-3v2m-119%208c0%203%200%204-1%203-1-4-2-2-2%202%201%204%201%204%209%205h7v-10l-1-1-2-1-6-2h-4v4m-142%205c-2%201-2%203-1%205l3%206h2l6-3%202-1c1%200%202%200%201-1v-1l-1-1-1-1c1-1%200-2-1-2h-2l-2-1c-3-2-4-3-6%200m258%208l-4%202-4%202-3%202h14c15%200%2015%200%2016-3%203-5-5-8-9-3l-2%201-3-3c-3-1-2-1-5%202'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"seo":{"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg"}}}]}},"staticQueryHashes":["1609575157","2068910035","2361467917","2361467917","3838421970","500183989","5650841"]}