Compare commits

..

No commits in common. "master" and "hugo-resume" have entirely different histories.

31 changed files with 193 additions and 1004 deletions

6
.gitmodules vendored
View File

@ -1,6 +0,0 @@
[submodule "themes/hugo-coder"]
path = themes/hugo-coder
url = https://github.com/luizdepra/hugo-coder.git
[submodule "themes/PaperMod"]
path = themes/PaperMod
url = https://github.com/adityatelange/hugo-PaperMod.git

View File

61
config.toml Normal file
View File

@ -0,0 +1,61 @@
baseURL = "https://example.com/"
languageCode = "en-us"
title = "Eddie Webb"
theme = "hugo-resume"
[taxonomies]
tag = "tags"
[params]
firstName = "Abijeet"
lastName = "Patro"
profileImage = "img/TechChat.png"
phone = "91-949-405-9105"
contactNote = "Software Engineer and Open Source Enthusiast"
address = "Hyderabad, India"
email = "abijeetpatro@gmail.com"
description = "Open source enthusiast and full stack software engineer with experience in designing scalable platfroms on the IoT, Healthcare, Sports, Project management and Automobile insurance domain."
favicon = "images/favicon.ico"
# what sections
showSkills = true
showProjects = true
showOpenSource = true
showPublications = false
showExperience = true
showEducation = true
showQr = true
# do you want to show git hash on page footer and link to repo? Add commit prefix here.
gitCommitPrefix = "https://github.com/eddiewebb/json-resume/commit/"
[[params.handles]]
name = "LinkedIn"
link = "https://www.linkedin.com/in/edwardwebb/"
[[params.handles]]
name = "Twitter"
link = "https://twitter.com/edwardawebb/"
[[params.handles]]
name = "GitHub"
link = "https://github.com/eddiewebb/"
[[params.handles]]
name = "Blog"
link = "https://blog.thecurlybraces.com"
icon = "rss"
[[params.handles]]
name = "StackOverflow"
link = "https://stackoverflow.com/users/story/82880"
icon = "stack-overflow"
# [params.google.analytics]
# trackerID = "UA-28342049-2"
[outputs]
home = ["HTML", "JSON"]

View File

@ -1,42 +0,0 @@
baseURL: https://thecurlybraces.com
languagecode: en
defaultcontentlanguage: en
title: Abijeet Patro
theme: PaperMod
params:
author: Abijeet Patro
description: Abijeet's personal website
since: 2015
colorScheme: auto
assets:
favicon: "/images/fav-32x32.png"
favicon16x16: "/images/fav-16x16.png"
favicon32x32: "/images/fav-32x32.png"
profileMode:
enabled: true
subtitle: "Full stack developer and an open source contributor"
imageUrl: "/images/profile-pic.jpg" # optional
imageWidth: 240 # custom size
imageHeight: 240 # custom size
socialIcons: # optional
- name: GitHub
url: https://github.com/abijeet/
- name: "Twitter"
url: https://twitter.com/abijeetpatro/
- name: LinkedIn
url: https://www.linkedin.com/in/abijeet-patro/
- name: StackOverflow
url: https://stackoverflow.com/users/903324/abijeet-patro?tab=profile
menu:
main:
- name: About
weight: 1
url: https://blog.thecurlybraces.com/about/
- name: Blog
weight: 3
url: https://blog.thecurlybraces.com

12
content/_index.md Normal file
View File

@ -0,0 +1,12 @@
---
title: "Home"
date: 2018-02-10T18:56:13-05:00
sitemap:
priority : 1.0
outputs:
- html
- rss
- json
---
<p>Open source enthusiast and full stack software engineer with experience in designing scalable platfroms on the IoT, healthcare, sports, project management and automobile insurance domain.

View File

@ -0,0 +1,6 @@
---
title: "Projects"
sitemap:
priority : 0.9
---
<p>This section contains projects <a href="/projects/creations">created</a> and <a href="/projects/contributions">contbriuted</a> to by Eddie. Everything listed is an open source effort, the distinction is only my role as owner or contributor.</p>

View File

@ -0,0 +1,7 @@
---
title: "Open Source Contributions"
sitemap:
priority : 0.5
weight: 20
---
<p>A collection of efforts to which I contributed, but did not create. Contributing back to Open Source projects is a strong passion of mine, and requires a considerate approach to learn norms, standards and approach for each community for a successful merge!</p>

View File

@ -0,0 +1,7 @@
---
title: "Work Projects"
sitemap:
priority : 0.5
weight: 10
---
<p>This section lists projects that I have worked on as a part of my day job.</p>

View File

@ -0,0 +1,12 @@
---
title: "Baseline Telematics"
date: 2018-04-22T09:14:29+05:30
description: "SimpliCity is a 100% web-based solution that provides comprehensive management of Public Works operations all year long, including work order management and municipal assets inspections (often mandated by law). I was involved in handling large data imports when new clients migrated to our system and needed their existing data on the SimpliCity platform."
tags: ["PHP", "CakePHP", "RabbitMQ", "MariaDB", "Microservices", "Lua"]
image: ""
link: "http://simplicity.operasoft.ca/"
weight: 500
sitemap:
priority : 0.
---

View File

@ -0,0 +1,27 @@
---
title: "PineStem"
date: 2018-04-22T09:14:29+05:30
description: "PineStem is a project management tool that has been build with an Agile philosophy in mind. It has an integrated bug tracking tool, kanban board, billing system and various reports that provide insights into an employee's performance."
tags: ["AngularJS", "Material Design", "MariaDB", "NSQ", "Gitlab CI / CD", "Microservices", "Profiling"]
image: "/img/pinestem.png"
link: "https://pinestem.com"
weight: 500,
featured: true
sitemap:
priority : 0.
---
<p>PineStem is a project management tool that has been build with an Agile philosophy in mind. It has an integrated bug tracking tool, kanban board, billing system and various reports that provide insights into an employee's performance.</p>
<p>I was responsible to provide technical guidance on the project. Following are the some of the key areas that I worked on,
<ul>
<li>Set up the base for the frontend code. Took into account the size of the project, functionalities needed and recommended guidelines when structuring the project.</li>
<li>Provided directions to break down the monolithic backend codebase into smaller microservices.</li>
<li>Approved and oversaw the integration of any new plugin that were needed.</li>
<li>Architechted the module based ACL system on both the frontend and the backend.</li>
<li>Designed the system that allows users to select their own timezone and date formats.</li>
<li>Designed the backend notification system through which all user notifications are sent, based on their preferences.</li>
<li>Analyzed and improved frontend portal performance specifically on Internet Explorer and Edge.</li>
<li>DevOps - Performed the productions server setup and laid down instructions to be followed for future deployments.</li>
</ul>
</p>

View File

@ -0,0 +1,28 @@
---
title: "Powerpath"
date: 2018-04-22T09:14:29+05:30
description: "PowerPath helps healthcare industry employees improve workflow, achieve lower costs, and enhance the quality of clinical care. It measures the AC power consumption and temperature over time for clinical assets such as patient monitors, bed warmers and refridgeration units etc."
tags: ["Node.js", "MariaDB", "Redis", "Cassandra", "NSQ", "Ansible", "Linux", "Microservices"]
image: "/img/powerpath.jpg"
link: "http://emanatewireless.com"
weight: 500,
featured: true
sitemap:
priority : 0.
---
<p>PowerPath is a clinical asset monitoring (CAM) unit that helps healthcare industry employees improve workflow, achieve lower costs, and enhance the quality of clinical care. It measures the AC power consumption and temperature over time for clinical assets such as patient monitors, bed warmers and refridgeration units etc.</p>
<p>The PowerPath cloud server uses analytics on the collected data to provide actionable information via various reports to the medical staff. It allows medical staff to configure the PowerPath device and set thresholds for each device individually based on the clinical asset that it is connected to. It then sends alerts whenever the asset's readings exceed the configured thresholds. The server also features a full role based system that allows administrators to provide fine grained access to users.</p>
<p>I was the Tech Lead for the cloud server. Some of the aspects of the project that I was involved in include,
<ul>
<li>Setting up the base on top of which further development for the API and the portal was done.</li>
<li>Designing and coding the interface between the cloud server and the Powerpath device.</li>
<li>Designing and coding the token based authentication system and the user role system.</li>
<li>Writing a common interface to communicate between different databases.</li>
<li>Designing and developing the various components involved in the alert notification system.</li>
<li>Designing the structure for the incident management system.</li>
<li>DevOps - Manual setup of the production server.</li>
<li>DevOps - Developing Ansible scripts to automate deployments and reduce downtime.</li>
</ul>
</p>

View File

@ -0,0 +1,6 @@
---
title: "Raceone"
date: 2018-04-22T13:13:36+05:30
draft: true
---

26
data/skills.json Normal file
View File

@ -0,0 +1,26 @@
[
{
"grouping":"Programming languages",
"skills":[ "JavaScript","PHP","Rust"]
},{
"grouping":"Frameworks",
"skills": [ "NodeJS","Express","CakePHP","Laravel","WordPress", "React","AngularJS","BootStrap","jQuery"]
}, {
"grouping":"Databases",
"skills": [ "Cassandra","Redis","MySQL","MariaDB"]
},
{
"grouping":"DevOps",
"skills": ["Linux","Ansible","Nginx","MySQL","Redis","Wordpress", "NodeJS", "pm2", "DataDog", "Gitlab"]
},
{
"grouping": "Software & Tools",
"skills": ["Bash", "Postman", "Gimp", "Meld", "Code", "NetBeans", "Geany", "nano", "git", "nsq", "RabbitMQ", "grunt"]
},
{
"grouping": "Project Management",
"skills": [
{"name":"PineStem","link":"https://pinestem.com"}, "JIRA", "Trello", "Asana"]
}
]

View File

@ -1,209 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>404 Page not found | Abijeet Patro</title>
<meta name="keywords" content="">
<meta name="description" content="Abijeet&#39;s personal website">
<meta name="author" content="Abijeet Patro">
<link rel="canonical" href="https://thecurlybraces.com/404.html">
<link crossorigin="anonymous" href="/assets/css/stylesheet.bc1149f4a72aa4858d3a9f71462f75e5884ffe8073ea9d6d5761d5663d651e20.css" integrity="sha256-vBFJ9KcqpIWNOp9xRi915YhP/oBz6p1tV2HVZj1lHiA=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://thecurlybraces.com/images/fav-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="apple-touch-icon" href="https://thecurlybraces.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://thecurlybraces.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="en" href="https://thecurlybraces.com/404.html">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--hljs-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<meta property="og:title" content="404 Page not found" />
<meta property="og:description" content="Abijeet&#39;s personal website" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://thecurlybraces.com/404.html" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="404 Page not found"/>
<meta name="twitter:description" content="Abijeet&#39;s personal website"/>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://thecurlybraces.com/" accesskey="h" title="Abijeet Patro (Alt + H)">Abijeet Patro</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://blog.thecurlybraces.com/about/" title="About">
<span>About</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://blog.thecurlybraces.com" title="Blog">
<span>Blog</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<div class="not-found">404</div>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://thecurlybraces.com/">Abijeet Patro</a></span>
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,215 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Categories | Abijeet Patro</title>
<meta name="keywords" content="">
<meta name="description" content="Abijeet&#39;s personal website">
<meta name="author" content="Abijeet Patro">
<link rel="canonical" href="https://thecurlybraces.com/categories/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.bc1149f4a72aa4858d3a9f71462f75e5884ffe8073ea9d6d5761d5663d651e20.css" integrity="sha256-vBFJ9KcqpIWNOp9xRi915YhP/oBz6p1tV2HVZj1lHiA=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://thecurlybraces.com/images/fav-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="apple-touch-icon" href="https://thecurlybraces.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://thecurlybraces.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://thecurlybraces.com/categories/index.xml">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--hljs-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<meta property="og:title" content="Categories" />
<meta property="og:description" content="Abijeet&#39;s personal website" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://thecurlybraces.com/categories/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Categories"/>
<meta name="twitter:description" content="Abijeet&#39;s personal website"/>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://thecurlybraces.com/" accesskey="h" title="Abijeet Patro (Alt + H)">Abijeet Patro</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://blog.thecurlybraces.com/about/" title="About">
<span>About</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://blog.thecurlybraces.com" title="Blog">
<span>Blog</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<header class="page-header">
<h1>Categories</h1>
</header>
<ul class="terms-tags">
</ul>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://thecurlybraces.com/">Abijeet Patro</a></span>
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Categories on Abijeet Patro</title>
<link>https://thecurlybraces.com/categories/</link>
<description>Recent content in Categories on Abijeet Patro</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language><atom:link href="https://thecurlybraces.com/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,264 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head>
<meta name="generator" content="Hugo 0.128.0"><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Abijeet Patro</title>
<meta name="description" content="Abijeet&#39;s personal website">
<meta name="author" content="Abijeet Patro">
<link rel="canonical" href="https://thecurlybraces.com/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.bc1149f4a72aa4858d3a9f71462f75e5884ffe8073ea9d6d5761d5663d651e20.css" integrity="sha256-vBFJ9KcqpIWNOp9xRi915YhP/oBz6p1tV2HVZj1lHiA=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://thecurlybraces.com/images/fav-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="apple-touch-icon" href="https://thecurlybraces.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://thecurlybraces.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://thecurlybraces.com/index.xml">
<link rel="alternate" hreflang="en" href="https://thecurlybraces.com/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--hljs-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<meta property="og:title" content="Abijeet Patro" />
<meta property="og:description" content="Abijeet&#39;s personal website" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://thecurlybraces.com/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Abijeet Patro"/>
<meta name="twitter:description" content="Abijeet&#39;s personal website"/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Abijeet Patro",
"url": "https://thecurlybraces.com/",
"description": "Abijeet\u0026#39;s personal website",
"thumbnailUrl": "https://thecurlybraces.com/images/fav-32x32.png",
"sameAs": [
"https://github.com/abijeet/", "https://twitter.com/abijeetpatro/", "https://www.linkedin.com/in/abijeet-patro/", "https://stackoverflow.com/users/903324/abijeet-patro?tab=profile"
]
}
</script>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://thecurlybraces.com/" accesskey="h" title="Abijeet Patro (Alt + H)">Abijeet Patro</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://blog.thecurlybraces.com/about/" title="About">
<span>About</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://blog.thecurlybraces.com" title="Blog">
<span>Blog</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
</ul>
</nav>
</header>
<main class="main"><div class="profile">
<div class="profile_inner">
<img draggable="false" src="https://thecurlybraces.com/images/profile-pic.jpg" alt="profile image" title=""
height="240" width="240" />
<h1>Abijeet Patro</h1>
<span>Full stack developer and an open source contributor</span><div class="social-icons">
<a href="https://github.com/abijeet/" target="_blank" rel="noopener noreferrer me" title="GitHub">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
</path>
</svg>
</a>
<a href="https://twitter.com/abijeetpatro/" target="_blank" rel="noopener noreferrer me" title="Twitter">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z">
</path>
</svg>
</a>
<a href="https://www.linkedin.com/in/abijeet-patro/" target="_blank" rel="noopener noreferrer me" title="LinkedIn">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path>
<rect x="2" y="9" width="4" height="12"></rect>
<circle cx="4" cy="4" r="2"></circle>
</svg>
</a>
<a href="https://stackoverflow.com/users/903324/abijeet-patro?tab=profile" target="_blank" rel="noopener noreferrer me" title="StackOverflow">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M2.913 16.041v6.848h17.599v-6.848M7.16 18.696h8.925M7.65 13.937l8.675 1.8M9.214 9.124l8.058 3.758M12.086 4.65l6.849 5.66M15.774 1.111l5.313 7.162" />
</svg>
</a>
</div>
</div>
</div>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://thecurlybraces.com/">Abijeet Patro</a></span>
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Abijeet Patro</title>
<link>https://thecurlybraces.com/</link>
<description>Recent content on Abijeet Patro</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language><atom:link href="https://thecurlybraces.com/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://thecurlybraces.com/</loc>
</url><url>
<loc>https://thecurlybraces.com/categories/</loc>
</url><url>
<loc>https://thecurlybraces.com/tags/</loc>
</url>
</urlset>

View File

@ -1,219 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Tags | Abijeet Patro</title>
<meta name="keywords" content="">
<meta name="description" content="Abijeet&#39;s personal website">
<meta name="author" content="Abijeet Patro">
<link rel="canonical" href="https://thecurlybraces.com/tags/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.bc1149f4a72aa4858d3a9f71462f75e5884ffe8073ea9d6d5761d5663d651e20.css" integrity="sha256-vBFJ9KcqpIWNOp9xRi915YhP/oBz6p1tV2HVZj1lHiA=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://thecurlybraces.com/images/fav-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://thecurlybraces.com/images/fav-32x32.png">
<link rel="apple-touch-icon" href="https://thecurlybraces.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://thecurlybraces.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://thecurlybraces.com/tags/index.xml">
<link rel="alternate" hreflang="en" href="https://thecurlybraces.com/tags/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--hljs-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<meta property="og:title" content="Tags" />
<meta property="og:description" content="Abijeet&#39;s personal website" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://thecurlybraces.com/tags/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Tags"/>
<meta name="twitter:description" content="Abijeet&#39;s personal website"/>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://thecurlybraces.com/" accesskey="h" title="Abijeet Patro (Alt + H)">Abijeet Patro</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
<ul class="lang-switch"><li>|</li>
</ul>
</div>
</div>
<ul id="menu">
<li>
<a href="https://blog.thecurlybraces.com/about/" title="About">
<span>About</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://blog.thecurlybraces.com" title="Blog">
<span>Blog</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<header class="page-header">
<h1>Tags</h1>
</header>
<ul class="terms-tags">
</ul>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://thecurlybraces.com/">Abijeet Patro</a></span>
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Tags on Abijeet Patro</title>
<link>https://thecurlybraces.com/tags/</link>
<description>Recent content in Tags on Abijeet Patro</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language><atom:link href="https://thecurlybraces.com/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

BIN
static/img/pinestem.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
static/img/powerpath.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

@ -1 +0,0 @@
Subproject commit 3e544a3ebd21008f8119cbd8971f74fe2c958374

1
themes/hugo-resume Submodule

@ -0,0 +1 @@
Subproject commit 595fd11ac860212f7712d1337ccb6b4d4f0ed75f