-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
6 lines (6 loc) · 33.5 KB
/
index.html
1
2
3
4
5
6
<!DOCTYPE html><html lang="en"><head><title>Pablo Gamito - Software Engineer</title><meta name="description" content="Pablo Gamito's little part of the web — Pablo Gamito is a software engineer that is passionate about building quality software."><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.f3998aad.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.206d527b.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.72fae165.png"><link rel="manifest" href="/site.a3469b8c.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.472a5196.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="theme-color" content="#ffffff"><link rel="stylesheet" href="/style.c8dbaa09.css"><script async src="https://www.googletagmanager.com/gtag/js?id=UA-44179721-7"></script><script>!function(){function a(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],a("js",new Date),a("config","UA-44179721-7")}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJtYXBwaW5ncyI6IllBQ0EsU0FBU0EsSUFBT0MsVUFBVUMsS0FBS0MsV0FEL0JDLE9BQU9ILFVBQVlHLE9BQU9ILFdBQWEsR0FFdkNELEVBQUssS0FBTSxJQUFJSyxNQUNmTCxFQUFLLFNBQVUiLCJzb3VyY2VzIjpbInNyYy9pbmRleC5wdWciXSwibmFtZXMiOlsiZ3RhZyIsImRhdGFMYXllciIsInB1c2giLCJhcmd1bWVudHMiLCJ3aW5kb3ciLCJEYXRlIl0sInZlcnNpb24iOjMsImZpbGUiOiJ3ZWJzaXRlLkhBU0hfUkVGX2ZjMzhkODhlNjdmYWZiODFjZmJjNDM0NWY5NzVmYzUxLmpzLm1hcCIsInNvdXJjZXNDb250ZW50IjpbImRvY3R5cGUgaHRtbFxuaHRtbChsYW5nPVwiZW5cIilcbiAgaGVhZFxuICAgIHRpdGxlIFBhYmxvIEdhbWl0byAtIFNvZnR3YXJlIEVuZ2luZWVyXG4gICAgbWV0YShuYW1lPVwiZGVzY3JpcHRpb25cIiBjb250ZW50PVwiUGFibG8gR2FtaXRvJ3MgbGl0dGxlIHBhcnQgb2YgdGhlIHdlYiDigJQgUGFibG8gR2FtaXRvIGlzIGEgc29mdHdhcmUgZW5naW5lZXIgdGhhdCBpcyBwYXNzaW9uYXRlIGFib3V0IGJ1aWxkaW5nIHF1YWxpdHkgc29mdHdhcmUuXCIpXG4gICAgbWV0YShuYW1lPVwidmlld3BvcnRcIiwgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjBcIilcbiAgICBsaW5rKHJlbD0nYXBwbGUtdG91Y2gtaWNvbicgc2l6ZXM9JzE4MHgxODAnIGhyZWY9Jy4vaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmcnKVxuICAgIGxpbmsocmVsPSdpY29uJyB0eXBlPSdpbWFnZS9wbmcnIHNpemVzPSczMngzMicgaHJlZj0nLi9pY29ucy9mYXZpY29uLTMyeDMyLnBuZycpXG4gICAgbGluayhyZWw9J2ljb24nIHR5cGU9J2ltYWdlL3BuZycgc2l6ZXM9JzE2eDE2JyBocmVmPScuL2ljb25zL2Zhdmljb24tMTZ4MTYucG5nJylcbiAgICBsaW5rKHJlbD0nbWFuaWZlc3QnIGhyZWY9Jy4vaWNvbnMvc2l0ZS53ZWJtYW5pZmVzdCcpXG4gICAgbGluayhyZWw9J21hc2staWNvbicgaHJlZj0nLi9pY29ucy9zYWZhcmktcGlubmVkLXRhYi5zdmcnIGNvbG9yPScjNWJiYWQ1JylcbiAgICBtZXRhKG5hbWU9J21zYXBwbGljYXRpb24tVGlsZUNvbG9yJyBjb250ZW50PScjZmZjNDBkJylcbiAgICBtZXRhKG5hbWU9J3RoZW1lLWNvbG9yJyBjb250ZW50PScjZmZmZmZmJylcblxuICAgIGxpbmsocmVsPVwic3R5bGVzaGVldFwiLCBocmVmPVwiLi9zdHlsZS5zYXNzXCIpXG5cbiAgICAvLyBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljc1xuICAgIHNjcmlwdChhc3luYz0nJyBzcmM9J2h0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9VUEtNDQxNzk3MjEtNycpXG4gICAgc2NyaXB0LlxuICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcbiAgICAgICAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fVxuICAgICAgICBndGFnKCdqcycsIG5ldyBEYXRlKCkpO1xuICAgICAgICBndGFnKCdjb25maWcnLCAnVUEtNDQxNzk3MjEtNycpO1xuXG4gIGJvZHlcbiAgICBuYXYubmF2XG4gICAgICAgIC5sb2NhdGlvbiBcbiAgICAgICAgICAgIGEoaHJlZj1cIiNcIikgaG9tZS9wYWJsby9cbiAgICAgICAgLnNlY3Rpb25zXG4gICAgICAgICAgICBhKGhyZWY9XCIjcmVzdW1lXCIpLnNlY3Rpb24tbGluayByZXN1bcOpXG4gICAgICAgICAgICBhKGhyZWY9XCIjY29udGFjdFwiKS5zZWN0aW9uLWxpbmsgY29udGFjdFxuXG4gICAgLmxhbmRpbmdcbiAgICAgICAgLy8tIC5nbGl0Y2gudGV4dC0zeGwubWQtLXRleHQtNXhsKGRhdGEtdGV4dD1cIkhpXCIpIEhpXG4gICAgICAgIC50aXRsZS50ZXh0LTN4bC5tZC0tdGV4dC01eGwoZGF0YS10ZXh0PVwiSGlcXG5JJ20gUGFibG8gR2FtaXRvXCIpXG4gICAgICAgICAgICB8IEhpXG4gICAgICAgICAgICBiclxuICAgICAgICAgICAgfCBJJ20gXG4gICAgICAgICAgICBoMSBQYWJsbyBHYW1pdG9cblxuICAgICAgICAuc3VidGl0bGUudGV4dC1nbGl0Y2gudGV4dC1sZy5tZC0tdGV4dC0yeGxcbiAgICAgICAgICAgIHwgJmd0OyZuYnNwO1xuICAgICAgICAgICAgc3Bhbi50ZXh0XG4gICAgICAgICAgICBzcGFuLmN1cnNvciAmYmxvY2s7XG5cbiAgICAgICAgLnNvY2lhbC1tZWRpYS1pY29uc1xuICAgICAgICAgICAgYShocmVmPVwiaHR0cHM6Ly9saW5rLmdhbWl0by5tZS9saW5rZWRpblwiLCB0YXJnZXQ9XCJfYmxhbmtcIikubWVkaWEtaWNvbi5mYWIuZmEtbGlua2VkaW5cbiAgICAgICAgICAgIGEoaHJlZj1cImh0dHBzOi8vbGluay5nYW1pdG8ubWUvZ2l0aHViXCIsIHRhcmdldD1cIl9ibGFua1wiKS5tZWRpYS1pY29uLmZhYi5mYS1naXRodWJcbiAgICAgICAgICAgIGEoaHJlZj1cImh0dHBzOi8vbGluay5nYW1pdG8ubWUvbWVkaXVtXCIsIHRhcmdldD1cIl9ibGFua1wiKS5tZWRpYS1pY29uLmZhYi5mYS1tZWRpdW1cblxuICAgICAgICAuc2Nyb2xsLWljb25cbiAgICAgICAgICAgIGEoaHJlZj1cIiNcIilcbiAgICAgICAgICAgICAgICBzdmcoeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgYXJpYS1oaWRkZW49J3RydWUnIFxuICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9J2ZhbHNlJyB3aWR0aD0nMWVtJyBoZWlnaHQ9JzFlbScgXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPSctbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOycgXG4gICAgICAgICAgICAgICAgICAgIHByZXNlcnZlYXNwZWN0cmF0aW89J3hNaWRZTWlkIG1lZXQnIHZpZXdib3g9JzAgMCAyNCAyNCcpXG4gICAgICAgICAgICAgICAgICAgIHBhdGgoZD0nTTEyIDZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAyIDBWN2ExIDEgMCAwIDAtMS0xem0wLTRhNyA3IDAgMCAwLTcgN3Y2YTcgNyAwIDAgMCAxNCAwVjlhNyA3IDAgMCAwLTctN3ptNSAxM2E1IDUgMCAwIDEtMTAgMFY5YTUgNSAwIDAgMSAxMCAweicpXG5cbiAgICAuc2VjdGlvbi13cmFwcGVyXG4gICAgICAgIC5zZWN0aW9uI3Jlc3VtZVxuICAgICAgICAgICAgLnRpdGxlLnRleHQtM3hsLm1kLS10ZXh0LTV4bFxuICAgICAgICAgICAgICAgIHwgJmd0OyByZXN1bcOpJm5ic3A7XG4gICAgICAgICAgICAgICAgc3Bhbi5jdXJzb3IgJmJsb2NrO1xuXG4gICAgICAgICAgICAuc3Vic2VjdGlvblxuICAgICAgICAgICAgICAgIC50aXRsZSBcbiAgICAgICAgICAgICAgICAgICAgfCBhYm91dCBtZVxuICAgICAgICAgICAgICAgICAgICBzcGFuLmdsaXRjaC1jb2xvciAuXG5cbiAgICAgICAgICAgICAgICAuY29udGVudFxuICAgICAgICAgICAgICAgICAgICAudGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBJJ20gUGFibG8sIGEgc29mdHdhcmUgZW5naW5lZXIgdGhhdCBpcyBwYXNzaW9uYXRlIGFib3V0IGJ1aWxkaW5nIHF1YWxpdHkgc29mdHdhcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICB8IEkgYWx3YXlzIGVuam95IGEgY2hhbGxlbmdpbmcgZW5naW5lZXJpbmcgcHJvYmxlbS4gQnV0IGFib3ZlIGFsbCDigJQgSSBsb3ZlIGJ1aWxkaW5nIHRoaW5ncy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHwgSSBhbSBtb3N0IGF0dHJhY3RlZCB0byBidWlsZGluZyB0aGluZ3MgdGhhdCBzb2x2ZSByZWFsIHdvcmxkIHByb2JsZW1zLlxuXG4gICAgICAgICAgICAgICAgICAgIC5kZXRhaWxzLmdyaWQuZ3JpZC1jb2xzLTEubWQtLWdyaWQtY29scy0zXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZGV0YWlscy1pdGVtLXRpdGxlIE5hbWU6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFibG8gR2FtaXRvXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZGV0YWlscy1pdGVtLXRpdGxlIFBob25lOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICs0NCA3NzU5IDQ2MzM0MlxuICAgICAgICAgICAgICAgICAgICAgICAgLml0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmRldGFpbHMtaXRlbS10aXRsZSBFbWFpbDogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwYWJsb0BnYW1pdG8ubWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5kZXRhaWxzLWl0ZW0tdGl0bGUgSm9iOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNvZnR3YXJlIEVuZ2luZWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZGV0YWlscy1pdGVtLXRpdGxlIENpdGl6ZW5zaGlwOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEZyYW5jZSAmIFNwYWluXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZGV0YWlscy1pdGVtLXRpdGxlIFJlc2lkZW5jZTogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb25kb24sIFVLXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAuZG93bmxvYWQtY3ZcbiAgICAgICAgICAgICAgICAgICAgICAgIGEoaHJlZj0nLi9zdGF0aWMvUEFCTE9fR0FNSVRPX0NWLnBkZicsIGRvd25sb2FkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLSBidXR0b24gRG93bmxvYWQgUmVzdW3DqVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJmx0O0Rvd25sb2FkIFJlc3Vtw6kmZ3Q7XG5cbiAgICAgICAgICAgIC5zdWJzZWN0aW9uXG4gICAgICAgICAgICAgICAgLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgIHwgZWR1Y2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZ2xpdGNoLWNvbG9yIC5cblxuICAgICAgICAgICAgICAgIC5jb250ZW50XG4gICAgICAgICAgICAgICAgICAgIC50aW1lbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgLml0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGltZWxpbmUtZGF0ZXMgT2N0LiAyMDE3IC0gSnVuLiAyMDIxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRpbWVsaW5lLXRpdGxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmluc3RpdHV0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShocmVmPVwiaHR0cHM6Ly93d3cuaW1wZXJpYWwuYWMudWsvXCIpIEltcGVyaWFsIENvbGxlZ2UgTG9uZG9uJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ucG9zaXRpb24g4oCUIE1FbmcgQ29tcHV0aW5nXG5cbiAgICAgICAgICAgIC5zdWJzZWN0aW9uXG4gICAgICAgICAgICAgICAgLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgIHwgd29yayBleHBlcmllbmNlXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZ2xpdGNoLWNvbG9yIC5cblxuICAgICAgICAgICAgICAgIC5jb250ZW50XG4gICAgICAgICAgICAgICAgICAgIC50aW1lbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgLml0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGltZWxpbmUtZGF0ZXMgTWF5LiAyMDIwIC0gT2N0LiAyMDIwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRpbWVsaW5lLXRpdGxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmNvbXBhbnkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKGhyZWY9XCJodHRwczovL2Fib3V0Lmdvb2dsZS9cIikgR29vZ2xlJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ucG9zaXRpb24g4oCUIFNvZnR3YXJlIEVuZ2luZWVyaW5nIEludGVyblxuICAgICAgICAgICAgICAgICAgICAgICAgLml0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGltZWxpbmUtZGF0ZXMgSnVuLiAyMDE5IC0gU2VwLiAyMDE5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRpbWVsaW5lLXRpdGxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmNvbXBhbnkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKGhyZWY9XCJodHRwczovL3d3dy5ncmVzZWFyY2guY28udWsvXCIpIEctUmVzZWFyY2gmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5wb3NpdGlvbiDigJQgU29mdHdhcmUgRW5naW5lZXJpbmcgSW50ZXJuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRpbWVsaW5lLWRhdGVzIEp1bC4gMjAxOCAtIFNlcC4gMjAxOFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aW1lbGluZS10aXRsZSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5jb21wYW55IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShocmVmPVwiaHR0cDovL25ldGNyYWZ0LmNvbS9cIikgTmV0Y3JhZnQmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5wb3NpdGlvbiDigJQgU29mdHdhcmUgRGV2ZWxvcGVyIEludGVyblxuXG4gICAgICAgICAgICAuc3Vic2VjdGlvblxuICAgICAgICAgICAgICAgIC50aXRsZVxuICAgICAgICAgICAgICAgICAgICB8IHBlcnNvbmFsIHByb2plY3RzXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZ2xpdGNoLWNvbG9yIC5cblxuICAgICAgICAgICAgICAgIC5jb250ZW50LmdyaWQuZ3JpZC1jb2xzLTEubWQtLWdyaWQtY29scy0zXG4gICAgICAgICAgICAgICAgICAgIC5wcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvamVjdC10aXRsZSBMaW5lIE51bWJlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5saW5rc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmFzLmZhLWxpbmsoaHJlZj1cImh0dHBzOi8vbGluZW51bWJlcnMuYXBwXCIsIHRhcmdldD1cIl9ibGFua1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmFiLmZhLWdpdGh1YihocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL0xpbmUtTnVtYmVycy1mb3ItR29vZ2xlLURvY3NcIiwgdGFyZ2V0PVwiX2JsYW5rXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvamVjdC1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB8IEEgYnJvd3NlciBleHRlbnNpb24gdG8gYWRkIGxpbmUgbnVtYmVycyB3aXRoIGFkdmFuY2VkIGZvcm1hdHRpbmcgb3B0aW9ucyB0byBHb29nbGUgRG9jcyBkb2N1bWVudHMuXG4gICAgICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICAucHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2plY3QtdGl0bGUgU3ByaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAubGlua3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmZhcy5mYS1saW5rKGhyZWY9XCJodHRwczovL3NwcmludGxhbmcub3JnXCIsIHRhcmdldD1cIl9ibGFua1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmFiLmZhLWdpdGh1YihocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL3NwcmludGxhbmdcIiwgdGFyZ2V0PVwiX2JsYW5rXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvamVjdC1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB8IEEgZG9tYWluLXNwZWNpZmljIGxhbmd1YWdlIGZvciB3cml0aW5nIGZpbmFuY2lhbCBjb250cmFjdHMgdGFyZ2V0aW5nIExpYnJhJ3MgTW92ZSBsYW5ndWFnZS5cblxuICAgICAgICAgICAgICAgICAgICAucHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2plY3QtdGl0bGUgSUxZTVVOLm9yZ1xuICAgICAgICAgICAgICAgICAgICAgICAgLmxpbmtzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5mYXMuZmEtbGluayhocmVmPVwiaHR0cHM6Ly9pbHltdW4ub3JnXCIsIHRhcmdldD1cIl9ibGFua1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmFiLmZhLWdpdGh1YihocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2lseW11blwiLCB0YXJnZXQ9XCJfYmxhbmtcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9qZWN0LXN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQSBtb2Rlcm4gd2Vic2l0ZSBmb3IgYW4gbm9uLXByb2ZpdCBlZHVjYXRpb25hbCBvcmdhbml6YXRpb24gdGhhdCBpcyBkZXNpZ25lZCB0byBiZSBlYXNpbHkgdXBkYXRhYmxlLlxuXG4gICAgICAgICAgICAgICAgICAgIC5wcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvamVjdC10aXRsZSBLbm9jayBLbm9jayBVbmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC5saW5rc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmFzLmZhLWxpbmsoaHJlZj1cImh0dHBzOi8vZGV2cG9zdC5jb20vc29mdHdhcmUva25vY2sta25vY2stdW5sb2NrXCIsIHRhcmdldD1cIl9ibGFua1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmFiLmZhLWdpdGh1YihocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2l2YW4ta2FwZWx5dWtoL2tub2NrLWtub2NrLXVubG9ja1wiLCB0YXJnZXQ9XCJfYmxhbmtcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9qZWN0LXN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQXV0aGVudGljYXRpb24gdGhyb3VnaCBrbm9ja2luZy4gSUMgSGFjayAyMDIwIEFtZXJpY2FuIEV4cHJlc3MgcHJpemUgd2lubmluZyBwcm9qZWN0LiBcblxuICAgICAgICAgICAgICAgICAgICAucHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2plY3QtdGl0bGUgQ29va29mZlxuICAgICAgICAgICAgICAgICAgICAgICAgLmxpbmtzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5mYXMuZmEtbGluayhocmVmPVwiaHR0cHM6Ly9hcGsuY29va29mZi5tZVwiLCB0YXJnZXQ9XCJfYmxhbmtcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmZhYi5mYS1naXRodWIoaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9QYWJpR2FtaXRvL2Nvb2tvZmZcIiwgdGFyZ2V0PVwiX2JsYW5rXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvamVjdC1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB8IEEgY3Jvc3MtcGxhdGZvcm0gbW9iaWxlIGFwcGxpY2F0aW9uIHRvIGVuY291cmFnZSBwZW9wbGUgdG8gY29vayBkaXNoZXMgdGhyb3VnaCBjb21wZXRpdGlvbi5cblxuICAgICAgICAgICAgICAgICAgICAucHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2plY3QtdGl0bGUgQmxvY2t0YWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgLmxpbmtzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5mYWIuZmEtZ2l0aHViKGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vemFrY3V0bmVyL2Jsb2NrdGFsZXNcIiwgdGFyZ2V0PVwiX2JsYW5rXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvamVjdC1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB8IEEgd2ViIGFwcCBmb3IgZGVjZW50cmFsaXplZCBzdG9yeXRlbGxpbmcgdXRpbGl6aW5nIGJsb2NrY2hhaW4gdGVjaG5vbG9neS4gICAgICAgICAgIFxuXG4gICAgLnNlY3Rpb24td3JhcHBlclxuICAgICAgICAuc2VjdGlvbiNjb250YWN0XG4gICAgICAgICAgICAudGl0bGVcbiAgICAgICAgICAgICAgICB8ICZndDsgY29udGFjdCBtZSZuYnNwO1xuICAgICAgICAgICAgICAgIHNwYW4uY3Vyc29yICZibG9jaztcblxuICAgICAgICAgICAgLmdyaWQuZ3JpZC1jb2xzLTEubWQtLWdyaWQtY29scy0xMVxuXG4gICAgICAgICAgICAgICAgLnN1YnNlY3Rpb24ubWQtLWNvbC1zdGFydC04Lm1kLS1jb2wtZW5kLTEyXG4gICAgICAgICAgICAgICAgICAgIC50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBjb250YWN0IGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmdsaXRjaC1jb2xvciAuXG5cbiAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb250YWN0LW1ldGhvZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKGhyZWY9XCJodHRwczovL2xpbmsuZ2FtaXRvLm1lL3doYXRzYXBwXCIsIHRhcmdldD1cIl9ibGFua1wiKS5jb250YWN0LW1ldGhvZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5tZWRpYS1pY29uLmZhYi5mYS13aGF0c2FwcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHdhLm1lLzQ0Nzc1OTQ2MzM0MlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoaHJlZj1cImh0dHBzOi8vbGluay5nYW1pdG8ubWUvbWVzc2VuZ2VyXCIsIHRhcmdldD1cIl9ibGFua1wiKS5jb250YWN0LW1ldGhvZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5tZWRpYS1pY29uLmZhYi5mYS1mYWNlYm9vay1tZXNzZW5nZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtLm1lL3BhYmxvLmdhbWl0b1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYShocmVmPVwiaHR0cHM6Ly9saW5rLmdhbWl0by5tZS9saW5rZWRpblwiLCB0YXJnZXQ9XCJfYmxhbmtcIikuY29udGFjdC1tZXRob2RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkubWVkaWEtaWNvbi5mYWIuZmEtbGlua2VkaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpbi9wYWJsb2dhbWl0b1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYShocmVmPVwibWFpbHRvOnBhYmxvQGdhbWl0by5tZVwiLCB0YXJnZXQ9XCJfYmxhbmtcIikuY29udGFjdC1tZXRob2RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkubWVkaWEtaWNvbi5mYXIuZmEtZW52ZWxvcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwYWJsb0BnYW1pdG8ubWVcblxuICAgICAgICAgICAgICAgIC5zdWJzZWN0aW9uLm1kLS1jb2wtc3RhcnQtMS5tZC0tY29sLWVuZC04Lm1kLS1yb3ctc3RhcnQtMVxuICAgICAgICAgICAgICAgICAgICAudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VuZCBtZSBhbiBlbWFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5nbGl0Y2gtY29sb3IgLlxuXG4gICAgICAgICAgICAgICAgICAgIC5jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtI2NvbnRhY3QtZm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lc3RhYmxpc2gtc210cC1jb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXJ2ZXIgMjIwIHNtdHAucGFibG9nYW1pdG8uY29tIFNpbXBsZSBNYWlsIFRyYW5zZmVyIFNlcnZpY2UgUmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8tIGJyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdiAmZ3Q7IEhFTE8gY2xpZW50LmdhbWl0by5tZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2VydmVyIDI1MCBIZWxsbyBjbGllbnQucGFibG9nYW1pdG8uY29tXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RlcC5zdGVwLTFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhlbHAuc2VydmVyIEVudGVyIHlvdXIgZW1haWwgYWRkcmVzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5wdXQuZW1haWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsICZndDsgTUFJTCBGUk9NOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmlucHV0LXRleHQuaW5wdXQtbGluZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5wdXQtbGluZXZpZXctY29udGVudChjb250ZW50RWRpdGFibGU9XCJ0cnVlXCIpLmVtcHR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy0gaW5wdXQobmFtZT1cImVtYWlsXCIgdHlwZT1cImVtYWlsXCIsIHBsYWNlaG9sZGVyPVwidGltQGJlcm5lcnNsZWUuY29tXCIgcmVxdWlyZWQ9XCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlc3VsdC5oaWRkZW4gMjUwIE9LXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RlcC5zdGVwLTIuaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdiAmZ3Q7IERBVEFcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVscC5zZXJ2ZXIgRW50ZXIgeW91ciBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCAmZ3Q7IEZyb206XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5wdXQtdGV4dC5pbnB1dC1saW5ldmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC1saW5ldmlldy1jb250ZW50KGNvbnRlbnRFZGl0YWJsZT1cInRydWVcIikuZW1wdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLSBpbnB1dChuYW1lPVwibmFtZVwiLCB0eXBlPVwidGV4dFwiLCBwbGFjZWhvbGRlcj1cIlRpbW90aHkgQmVybmVycy1MZWVcIiwgcmVxdWlyZWQ9XCJcIilcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdGVwLnN0ZXAtMy5oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmlucHV0LnN1YmplY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsICZndDsgU3ViamVjdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC10ZXh0LmlucHV0LWxpbmV2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmlucHV0LWxpbmV2aWV3LWNvbnRlbnQoY29udGVudEVkaXRhYmxlPVwidHJ1ZVwiKS5lbXB0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8tIGlucHV0KHR5cGU9XCJ0ZXh0XCIsIHBsYWNlaG9sZGVyPVwiTWFpbGJvbWIgRGFlbW9uXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0ZXAuc3RlcC00Lm1lc3NhZ2Utc3RlcC5oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhlbHAuc2VydmVyIDM1NCBFbnRlciBtZXNzYWdlLCBlbmRpbmcgd2l0aCBcIi5cIiBvbiBhIGxpbmUgYnkgaXRzZWxmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC5ib2R5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCAmZ3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dGFyZWEtdGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC1saW5ldmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5wdXQtbGluZXZpZXctY29udGVudChjb250ZW50RWRpdGFibGU9XCJ0cnVlXCIpLmVtcHR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy0gdGV4dGFyZWEobmFtZT1cIm1lc3NhZ2VcIiwgY29scz1cIjMwXCIsIHJvd3M9XCIxMFwiLCBwbGFjZWhvbGRlcj1cIkhheHgwciBpcHN1bSBpcyByYW5kb20gdGV4dCB0aGF0IG1ha2VzIG5vIHNlbnNlLiBIaWdoamFjayB0aGUgdHVubmVsIGNvbm5lY3Rpb24gdG8gYWNrIHRoZSBtYWlsYm9tYiBkYWVtb24uIE9uIEphbnVhcnkgMSwgMTk3MCB0aGUgcmFjZSBjb25kaXRpb24gcHJvdGVjdGVkIG1hbGxvYyBmcm9tIHN5biAvZGV2L251bGwuIFRoZSBEb25hbGQgS251dGggYW5kIExpbnVzIFRvcnZhbGRzIHNlZ2ZhdWx0IHJlY3Vyc2l2ZWx5IGFuZCBjb25jdXJyZW50bHkgc3RhY2sgb3ZlcmZsb3cgc3RkaW8uaCBmb3Jrcy4gVm9pZCBhbGwgeW91ciBiYXNlcywgdGhleSBiZWxvbmcgdG8gdXMgdGhlIGZ1bmN0aW9uIG1lbW9yeSBsZWFrcy4gVXNlIHRoZSBmb3BlbiBib29sZWFuIGNvb2tpZSB0byBoYWNrIHRoZSBtYWluZnJhbWUuIFB5dGhvbiB0ZXJtaW5hbCBwdWJsaWMgdW5peCwgaXQncyBhIGZlYXR1cmUuIFRvZG8gc3VkbyBibG9jayB3aW4gc2NyaXB0IGtpZGRpZXMgYW5kIG1hbiBwYWdlcyBiYXIuIEZpbmFsbHkgdW5peCB0aGVuIGZpcmV3YWxsIGdjLiBJJ20gc29ycnkgRGF2ZSwgSSdtIGFmcmFpZCBJIGNhbid0IGRvIHRoYXQuIENkIHN0cmxlbiBpcCBmb3IgcGVybCBraWxvIHNlcnZlci4gVHJ1ZSBzcWwgbWFsbG9jIGVhdGVuIGJ5IGEgZ3J1ZSBmcmFjayBlb2YuXCIsIHJlcXVpcmVkPVwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0ZXAuc3RlcC01LmhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24odHlwZT1cInN1Ym1pdFwiKSBzZW5kIG1lc3NhZ2VcblxuXG4gICAgLmZvb3RlclxuICAgICAgICAucmlnaHRzLXJlc2VydmVkXG4gICAgICAgICAgICBpLmZhci5mYS1jb3B5cmlnaHQubXItMlxuICAgICAgICAgICAgfCBQYWJsbyBHYW1pdG8gMjAyMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAgICAgICAgLnNvY2lhbC1tZWRpYS1pY29uc1xuICAgICAgICAgICAgYShocmVmPVwiaHR0cHM6Ly9saW5rLmdhbWl0by5tZS9saW5rZWRpblwiKS5tZWRpYS1pY29uLmZhYi5mYS1saW5rZWRpblxuICAgICAgICAgICAgYShocmVmPVwiaHR0cHM6Ly9saW5rLmdhbWl0by5tZS9naXRodWJcIikubWVkaWEtaWNvbi5mYWIuZmEtZ2l0aHViXG4gICAgICAgICAgICBhKGhyZWY9XCJodHRwczovL2xpbmsuZ2FtaXRvLm1lL21lZGl1bVwiKS5tZWRpYS1pY29uLmZhYi5mYS1tZWRpdW1cblxuICAgIC8vIERlZmluZXMgdGhlIGRpc3RvcnRpb25zIHRvIGFwcGx5IGZvciB0aXRsZSBnbGl0Y2ggZWZmZWN0c1xuICAgIHN2Zyh4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScpLmdsaXRjaC1zdmdcbiAgICAgICAgZGVmc1xuICAgICAgICAgICAgZmlsdGVyI2Rpc3RvcnQtMVxuICAgICAgICAgICAgICAgIC8vIFJhbmRvbSBub2lzZVxuICAgICAgICAgICAgICAgIGZldHVyYnVsZW5jZShiYXNlZnJlcXVlbmN5PScwLjAyJyBudW1vY3RhdmVzPSc4JylcbiAgICAgICAgICAgICAgICAvLyBEaXN0b3J0IFNvdXJjZUdyYXBoaWMgYmFzZWQgb24gbm9pc2VcbiAgICAgICAgICAgICAgICBmZWRpc3BsYWNlbWVudG1hcChpbj0nU291cmNlR3JhcGhpYycgc2NhbGU9JzEwJylcbiAgICAgICAgICAgIGZpbHRlciNkaXN0b3J0LTJcbiAgICAgICAgICAgICAgICAvLyBBbm90aGVyIHJhbmRvbSBub2lzZSBwYXR0ZXJuXG4gICAgICAgICAgICAgICAgZmV0dXJidWxlbmNlKGJhc2VmcmVxdWVuY3k9JzAuMDEnIG51bW9jdGF2ZXM9JzYnKVxuICAgICAgICAgICAgICAgIC8vIERpc3RvcnQgU291cmNlR3JhcGhpYyBiYXNlZCBvbiBub2lzZVxuICAgICAgICAgICAgICAgIGZlZGlzcGxhY2VtZW50bWFwKGluPSdTb3VyY2VHcmFwaGljJyBzY2FsZT0nMTAnKVxuICAgICAgICAgICAgZmlsdGVyI3NoYXJwLWRpc3RvcnRcbiAgICAgICAgICAgICAgICAvLyBWZXJ5IGZpbmUgcmFuZG9tIG5vaXNlXG4gICAgICAgICAgICAgICAgZmV0dXJidWxlbmNlKGJhc2VmcmVxdWVuY3k9JzAuMicgbnVtb2N0YXZlcz0nOCcpXG4gICAgICAgICAgICAgICAgLy8gQXBwbHkgYSBzaGFycGVuaW5nIGVmZmVjdCB0byB0aGUgbm9pc2UuIENvbnZvbHV0aW9uIGtlcm5lbCB0YWtlbiBmcm9tIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0tlcm5lbF8oaW1hZ2VfcHJvY2Vzc2luZylcbiAgICAgICAgICAgICAgICBmZWNvbnZvbHZlbWF0cml4KGtlcm5lbG1hdHJpeD1cIlxcblxcXG4gICAgICAgICAgICAgICAgICAgIDAgIC0xICAgMFxcblxcXG4gICAgICAgICAgICAgICAgICAgIC0xICAgNSAgLTFcXG5cXFxuICAgICAgICAgICAgICAgICAgICAwICAtMSAgIDBcXG5cXFxuICAgICAgICAgICAgICAgIFwiKVxuICAgICAgICAgICAgICAgIC8vIERpc3RvcnQgU291cmNlR3JhcGhpYyBiYXNlZCBvbiBzaGFycGVuZWQgbm9pc2VcbiAgICAgICAgICAgICAgICBmZWRpc3BsYWNlbWVudG1hcChpbj0nU291cmNlR3JhcGhpYycgc2NhbGU9JzEwJylcblxuICAgIHNjcmlwdChzcmM9XCIuL2luZGV4LmpzXCIpIl19
</script></head><body><nav class="nav"><div class="location"> <a href="#">home/pablo/</a></div><div class="sections"><a class="section-link" href="#resume">resumé</a><a class="section-link" href="#contact">contact</a></div></nav><div class="landing"><div class="title text-3xl md--text-5xl" data-text="Hi
I'm Pablo Gamito">Hi<br>I'm <h1>Pablo Gamito</h1></div><div class="subtitle text-glitch text-lg md--text-2xl">> <span class="text"></span><span class="cursor">█</span></div><div class="social-media-icons"><a class="media-icon fab fa-linkedin" href="https://link.gamito.me/linkedin" target="_blank"></a><a class="media-icon fab fa-github" href="https://link.gamito.me/github" target="_blank"></a><a class="media-icon fab fa-medium" href="https://link.gamito.me/medium" target="_blank"></a></div><div class="scroll-icon"><a href="#"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" style="-ms-transform:rotate(1turn);-webkit-transform:rotate(1turn)" transform="rotate(1)"><path d="M12 6a1 1 0 00-1 1v2a1 1 0 002 0V7a1 1 0 00-1-1zm0-4a7 7 0 00-7 7v6a7 7 0 0014 0V9a7 7 0 00-7-7zm5 13a5 5 0 01-10 0V9a5 5 0 0110 0z"/></svg></a></div></div><div class="section-wrapper"><div class="section" id="resume"><div class="title text-3xl md--text-5xl">> resumé <span class="cursor">█</span></div><div class="subsection"><div class="title"> about me<span class="glitch-color">.</span></div><div class="content"><div class="text">I'm Pablo, a software engineer that is passionate about building quality software.
I always enjoy a challenging engineering problem. But above all — I love building things.
I am most attracted to building things that solve real world problems.</div><div class="details grid grid-cols-1 md--grid-cols-3"><div class="item"><span class="details-item-title">Name: </span>Pablo Gamito</div><div class="item"><span class="details-item-title">Phone: </span>+44 7759 463342</div><div class="item"><span class="details-item-title">Email: </span>pablo@gamito.me</div><div class="item"><span class="details-item-title">Job: </span>Software Engineer</div><div class="item"><span class="details-item-title">Citizenship: </span>France & Spain</div><div class="item"><span class="details-item-title">Residence: </span>London, UK</div></div><div class="download-cv"><a href="/PABLO_GAMITO_CV.4810bb72.pdf" download=""><Download Resumé></a></div></div></div><div class="subsection"><div class="title">education<span class="glitch-color">.</span></div><div class="content"><div class="timeline"><div class="item"><div class="timeline-dates">Oct. 2017 - Jun. 2021</div><div class="timeline-title"> <span class="institution"> <a href="https://www.imperial.ac.uk/">Imperial College London </a></span><span class="position">— MEng Computing</span></div></div></div></div></div><div class="subsection"><div class="title">work experience<span class="glitch-color">.</span></div><div class="content"><div class="timeline"><div class="item"><div class="timeline-dates">May. 2020 - Oct. 2020</div><div class="timeline-title"> <span class="company"> <a href="https://about.google/">Google </a></span><span class="position">— Software Engineering Intern</span></div></div><div class="item"><div class="timeline-dates">Jun. 2019 - Sep. 2019</div><div class="timeline-title"> <span class="company"> <a href="https://www.gresearch.co.uk/">G-Research </a></span><span class="position">— Software Engineering Intern</span></div></div><div class="item"><div class="timeline-dates">Jul. 2018 - Sep. 2018</div><div class="timeline-title"> <span class="company"> <a href="http://netcraft.com/">Netcraft </a></span><span class="position">— Software Developer Intern</span></div></div></div></div></div><div class="subsection"><div class="title">personal projects<span class="glitch-color">.</span></div><div class="content grid grid-cols-1 md--grid-cols-3"><div class="project"><div class="project-title">Line Numbers</div><div class="links"><div class="icon"><a class="fas fa-link" href="https://linenumbers.app" target="_blank"></a></div><div class="icon"><a class="fab fa-github" href="https://github.com/Line-Numbers-for-Google-Docs" target="_blank"></a></div></div><div class="project-summary"></div>A browser extension to add line numbers with advanced formatting options to Google Docs documents.</div><div class="project"><div class="project-title">Sprint</div><div class="links"><div class="icon"><a class="fas fa-link" href="https://sprintlang.org" target="_blank"></a></div><div class="icon"><a class="fab fa-github" href="https://github.com/sprintlang" target="_blank"></a></div></div><div class="project-summary"></div>A domain-specific language for writing financial contracts targeting Libra's Move language.</div><div class="project"><div class="project-title">ILYMUN.org</div><div class="links"><div class="icon"><a class="fas fa-link" href="https://ilymun.org" target="_blank"></a></div><div class="icon"><a class="fab fa-github" href="https://github.com/ilymun" target="_blank"></a></div></div><div class="project-summary"></div>A modern website for an non-profit educational organization that is designed to be easily updatable.</div><div class="project"><div class="project-title">Knock Knock Unlock</div><div class="links"><div class="icon"><a class="fas fa-link" href="https://devpost.com/software/knock-knock-unlock" target="_blank"></a></div><div class="icon"><a class="fab fa-github" href="https://github.com/ivan-kapelyukh/knock-knock-unlock" target="_blank"></a></div></div><div class="project-summary"></div>Authentication through knocking. IC Hack 2020 American Express prize winning project. </div><div class="project"><div class="project-title">Cookoff</div><div class="links"><div class="icon"><a class="fas fa-link" href="https://apk.cookoff.me" target="_blank"></a></div><div class="icon"><a class="fab fa-github" href="https://github.com/PabiGamito/cookoff" target="_blank"></a></div></div><div class="project-summary"></div>A cross-platform mobile application to encourage people to cook dishes through competition.</div><div class="project"><div class="project-title">Blocktales</div><div class="links"><div class="icon"><a class="fab fa-github" href="https://github.com/zakcutner/blocktales" target="_blank"></a></div></div><div class="project-summary"></div>A web app for decentralized storytelling utilizing blockchain technology. </div></div></div></div></div><div class="section-wrapper"><div class="section" id="contact"><div class="title">> contact me <span class="cursor">█</span></div><div class="grid grid-cols-1 md--grid-cols-11"><div class="subsection md--col-start-8 md--col-end-12"><div class="title">contact information<span class="glitch-color">.</span></div><div class="content"><div class="contact-methods"><a class="contact-method" href="https://link.gamito.me/whatsapp" target="_blank"><div class="icon"><i class="media-icon fab fa-whatsapp"></i></div><div class="val">wa.me/447759463342</div></a><a class="contact-method" href="https://link.gamito.me/messenger" target="_blank"><div class="icon"><i class="media-icon fab fa-facebook-messenger"></i></div><div class="val">m.me/pablo.gamito</div></a><a class="contact-method" href="https://link.gamito.me/linkedin" target="_blank"><div class="icon"><i class="media-icon fab fa-linkedin"></i></div><div class="val">in/pablogamito</div></a><a class="contact-method" href="mailto:pablo@gamito.me" target="_blank"><div class="icon"><i class="media-icon far fa-envelope"></i></div><div class="val">pablo@gamito.me</div></a></div></div></div><div class="subsection md--col-start-1 md--col-end-8 md--row-start-1"><div class="title">send me an email<span class="glitch-color">.</span></div><div class="content"><form id="contact-form"><div class="establish-smtp-connection"><div class="server">220 smtp.pablogamito.com Simple Mail Transfer Service Ready</div><div>> HELO client.gamito.me</div><div class="server">250 Hello client.pablogamito.com</div><br></div><div class="step step-1"><div class="help server">Enter your email address</div><div class="input email"><label>> MAIL FROM:</label><div class="input-text input-lineview"><div class="input-lineview-content empty" contenteditable="true"></div></div></div><div class="result hidden">250 OK</div></div><div class="step step-2 hidden"><div>> DATA</div><div class="help server">Enter your name</div><div class="input name"><label>> From:</label><div class="input-text input-lineview"><div class="input-lineview-content empty" contenteditable="true"></div></div></div></div><div class="step step-3 hidden"><div class="input subject"><label>> Subject:</label><div class="input-text input-lineview"><div class="input-lineview-content empty" contenteditable="true"></div></div></div></div><div class="step step-4 message-step hidden"><div class="help server">354 Enter message, ending with "." on a line by itself</div><div class="input body"><label>></label><div class="textarea-text"><div class="input-lineview"><div class="input-lineview-content empty" contenteditable="true"></div></div></div></div></div><div class="step step-5 hidden"><span>.</span></div><button type="submit">send message</button></form></div></div></div></div></div><div class="footer"><div class="rights-reserved"><i class="far fa-copyright mr-2"></i>Pablo Gamito 2020. All rights reserved.</div><div class="social-media-icons"><a class="media-icon fab fa-linkedin" href="https://link.gamito.me/linkedin"></a><a class="media-icon fab fa-github" href="https://link.gamito.me/github"></a><a class="media-icon fab fa-medium" href="https://link.gamito.me/medium"></a></div></div><svg class="glitch-svg" xmlns="http://www.w3.org/2000/svg"><defs><filter id="distort-1"><fedisplacementmap in="SourceGraphic" scale="10"/></filter><filter id="distort-2"><fedisplacementmap in="SourceGraphic" scale="10"/></filter><filter id="sharp-distort"><feconvolvematrix kernelmatrix="0 -1 0 -1 5 -1 0 -1 0"/></filter></defs></svg><script src="/website.faa2df82.js"></script></body></html>