{"url":"https://api.github.com/gists/4349545","forks_url":"https://api.github.com/gists/4349545/forks","commits_url":"https://api.github.com/gists/4349545/commits","id":"4349545","node_id":"MDQ6R2lzdDQzNDk1NDU=","git_pull_url":"https://gist.github.com/4349545.git","git_push_url":"https://gist.github.com/4349545.git","html_url":"https://gist.github.com/mbostock/4349545","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4349545/raw/7dba34550be586ea32e874019c8b2b95f9f08169/.block","size":70,"truncated":false,"content":"license: gpl-3.0\nredirect: https://observablehq.com/@d3/brush-handles\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/4349545/raw/a0cfb61252d6eeabfa5ddd2d6915c119b9b0719a/README.md","size":252,"truncated":false,"content":"This example demonstrates how to add visible and draggable handles to [d3-brush](https://github.com/d3/d3-brush), rather than that relying on the invisible boundary of the brush extent. The handle sizes here are exaggerated for demonstration purposes!\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/4349545/raw/8910c7036f0a68082c871441eea4718bbb768320/index.html","size":2180,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\ncircle {\n  fill-opacity: 0.2;\n  transition: fill-opacity 250ms linear;\n}\n\ncircle.active {\n  stroke: #f00;\n}\n\n</style>\n<svg width=\"960\" height=\"500\"></svg>\n<script src=\"https://d3js.org/d3.v4.min.js\"></script>\n<script>\n\nvar data = d3.range(800).map(Math.random);\n\nvar svg = d3.select(\"svg\"),\n    margin = {top: 194, right: 50, bottom: 214, left: 50},\n    width = +svg.attr(\"width\") - margin.left - margin.right,\n    height = +svg.attr(\"height\") - margin.top - margin.bottom,\n    g = svg.append(\"g\").attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\nvar x = d3.scaleLinear().range([0, width]),\n    y = d3.randomNormal(height / 2, height / 8);\n\nvar brush = d3.brushX()\n    .extent([[0, 0], [width, height]])\n    .on(\"start brush end\", brushmoved);\n\ng.append(\"g\")\n    .attr(\"class\", \"axis axis--x\")\n    .attr(\"transform\", \"translate(0,\" + height + \")\")\n    .call(d3.axisBottom(x));\n\nvar circle = g.append(\"g\")\n    .attr(\"class\", \"circle\")\n  .selectAll(\"circle\")\n  .data(data)\n  .enter().append(\"circle\")\n    .attr(\"transform\", function(d) { return \"translate(\" + x(d) + \",\" + y() + \")\"; })\n    .attr(\"r\", 3.5);\n\nvar gBrush = g.append(\"g\")\n    .attr(\"class\", \"brush\")\n    .call(brush);\n\nvar handle = gBrush.selectAll(\".handle--custom\")\n  .data([{type: \"w\"}, {type: \"e\"}])\n  .enter().append(\"path\")\n    .attr(\"class\", \"handle--custom\")\n    .attr(\"fill\", \"#666\")\n    .attr(\"fill-opacity\", 0.8)\n    .attr(\"stroke\", \"#000\")\n    .attr(\"stroke-width\", 1.5)\n    .attr(\"cursor\", \"ew-resize\")\n    .attr(\"d\", d3.arc()\n        .innerRadius(0)\n        .outerRadius(height / 2)\n        .startAngle(0)\n        .endAngle(function(d, i) { return i ? Math.PI : -Math.PI; }));\n\ngBrush.call(brush.move, [0.3, 0.5].map(x));\n\nfunction brushmoved() {\n  var s = d3.event.selection;\n  if (s == null) {\n    handle.attr(\"display\", \"none\");\n    circle.classed(\"active\", false);\n  } else {\n    var sx = s.map(x.invert);\n    circle.classed(\"active\", function(d) { return sx[0] <= d && d <= sx[1]; });\n    handle.attr(\"display\", null).attr(\"transform\", function(d, i) { return \"translate(\" + s[i] + \",\" + height / 2 + \")\"; });\n  }\n}\n\n</script>\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4349545/raw/a17acfe0ce9dd8a66e9ae33c79534f4e1036f00a/thumbnail.png","size":11898,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAIAAABpZBnfAAAKn2lDQ1BpY20A\nAEjHlZYHUFPpFse/e9MbLRABKaH3Ll16DaAgVRCVkIQQSgiBICI2RFyBFUVE\nBGyIIKLgWmhrQUSxsAhYsKALsigo62IBCyrvAo/w3rzZebNn5uT75cyZ//3O\nd+838weA3MQUCBJgKQAS+anCQC9X+srwCDquH5AABRCBOjBkslIELgEBfuBv\nY/IhgGbWe0YzWuCfhTSbk8ICAApAOJqdwkpE+DySh1gCYSoAqGCkrrkuVTDD\n6QjLCpENIpw/w9w5PjLD0XN8frYnONAN4ZsA4MlMppALAOk+UqensbiIDukj\nwqZ8No8PAFkTYUdWLJONMJLAMDExaYZ3I6wb/R863P/SjBZrMplcMc/NMht4\nd16KIIG5/h8ex/+PxATR/DNUkCSnxAf5Iqs2cmbpLKZH0DzHchh+8yxIdQ2c\nZ14qI1jcI/IOmWdRfIjLPMcn+Yr7+dHL/cX6KW4R85wRGxw2z2yOu8c8C5MC\nxf0paUEeC/1uy+c5jukTMM9M4ewss8xJ8Apc2HOAeJ/8hOXiWWKEnuIeTsrC\nvKmxwd5iRj4AcT/PkyGeV+i9oJ8QINYUigLF58Dhh4g12Ux38dmCYBALRIAP\n2IADhCAaJIEEkArowB3wQAoQIP+YAHndqZz01JmB3JIE64U8bmwq3QW5FRxD\nOoPPMjakm5uamYOZOzb3Cj/QZu8ORLu9UEtuBcA2FylyF2pMDQCaXwJAnVyo\nabyf+04vdbNEwrS5GnrmB4PcXEkgCxSQL0QD6AIjYA6sgD1wBh7AB/gjk4SD\nNYCFzJOITLIOZIKtIAfkgd1gHygFh8ExcAKcBmdBI7gIroIb4A7oBg/AUzAA\nhsEbMA4mwRQEQTiIAlEhBUgV0oIMIHPIBnKEPCA/KBAKh6IgLsSHRFAmtA3K\ngwqhUugoVAP9AjVDV6FbUA/0GBqERqH30FcYBZNhWVgZ1oZNYBvYBfaFg+HV\nMBdOhjPgbHgXXAJXwKfgBvgqfAd+AA/Ab+AJFECRUDSUGsoIZYNyQ/mjIlAx\nKCFqEyoXVYyqQNWhWlAdqHuoAdQY6gsai6ai6WgjtD3aGx2CZqGT0ZvQ+ehS\n9Al0A7odfQ89iB5H/8BQMEoYA4wdhoFZieFi1mFyMMWYKswFzHXMA8wwZhKL\nxdKwOlhrrDc2HBuH3YDNxx7E1mNbsT3YIewEDodTwBngHHD+OCYuFZeDO4A7\nhbuC68UN4z7jSXhVvDneEx+B5+Oz8MX4k/jL+F78K/wUQYqgRbAj+BPYhPWE\nAkIloYVwlzBMmCJKE3WIDsRgYhxxK7GEWEe8TuwnfiCRSOokW9IKEo+0hVRC\nOkO6SRokfSHLkPXJbuRIsoi8i1xNbiU/Jn+gUCjaFGdKBCWVsotSQ7lGeU75\nLEGVMJZgSLAlNkuUSTRI9Eq8lSRIakm6SK6RzJAsljwneVdyTIogpS3lJsWU\n2iRVJtUs1Sc1IU2VNpP2l06Uzpc+KX1LekQGJ6Mt4yHDlsmWOSZzTWaIiqJq\nUN2oLOo2aiX1OnVYFiurI8uQjZPNkz0t2yU7Licjt0QuVC5drkzuktwADUXT\npjFoCbQC2lnaQ9rXRcqLXBZxFu1cVLeod9En+cXyzvIc+Vz5evkH8l8V6Aoe\nCvEKexQaFZ4pohX1FVcorlM8pHhdcWyx7GL7xazFuYvPLn6iBCvpKwUqbVA6\nptSpNKGsouylLFA+oHxNeUyFpuKsEqdSpHJZZVSVquqoylMtUr2i+pouR3eh\nJ9BL6O30cTUlNW81kdpRtS61KXUd9RD1LPV69WcaRA0bjRiNIo02jXFNVc1l\nmpmatZpPtAhaNlqxWvu1OrQ+aetoh2nv0G7UHtGR12HoZOjU6vTrUnSddJN1\nK3Tv62H1bPTi9Q7qdevD+pb6sfpl+ncNYAMrA57BQYMeQ4yhrSHfsMKwz4hs\n5GKUZlRrNGhMM/YzzjJuNH5romkSYbLHpMPkh6mlaYJppelTMxkzH7Mssxaz\n9+b65izzMvP7FhQLT4vNFk0W75YYLOEsObTkkSXVcpnlDss2y+9W1lZCqzqr\nUWtN6yjrcus+G1mbAJt8m5u2GFtX2822F22/2FnZpdqdtfvL3sg+3v6k/chS\nnaWcpZVLhxzUHZgORx0GHOmOUY5HHAec1JyYThVOL5w1nNnOVc6vXPRc4lxO\nubx1NXUVul5w/eRm57bRrdUd5e7lnuve5SHjEeJR6vHcU92T61nrOe5l6bXB\nq9Ub4+3rvce7j6HMYDFqGOM+1j4bfdp9yb5BvqW+L/z0/YR+LcvgZT7L9i7r\nX661nL+80R/4M/z3+j8L0AlIDvh1BXZFwIqyFS8DzQIzAzuCqEFrg04GTQa7\nBhcEPw3RDRGFtIVKhkaG1oR+CnMPKwwbWGmycuPKO+GK4bzwpghcRGhEVcTE\nKo9V+1YNR1pG5kQ+XK2zOn31rTWKaxLWXForuZa59lwUJios6mTUN6Y/s4I5\nEc2ILo8eZ7mx9rPesJ3ZRexRjgOnkPMqxiGmMGaE68Ddyx2NdYotjh3jufFK\nee/ivOMOx32K94+vjp9OCEuoT8QnRiU282X48fz2JJWk9KQegYEgRzCQbJe8\nL3lc6CusSoFSVqc0pcoiZqZTpCvaLhpMc0wrS/u8LnTduXTpdH5653r99TvX\nv8rwzDi+Ab2BtaEtUy1za+bgRpeNRzdBm6I3tW3W2Jy9eXiL15YTW4lb47f+\nlmWaVZj1cVvYtpZs5ewt2UPbvbbX5kjkCHP6dtjvOPwT+ifeT107LXYe2Pkj\nl517O880rzjvWz4r//bPZj+X/Dy9K2ZXV4FVwaHd2N383Q/3OO05UShdmFE4\ntHfZ3oYielFu0cd9a/fdKl5SfHg/cb9o/0CJX0nTAc0Duw98K40tfVDmWlZf\nrlS+s/zTQfbB3kPOh+oOKx/OO/z1CO/Io6NeRxsqtCuKj2GPpR17WRla2XHc\n5nhNlWJVXtX3an71wInAE+011jU1J5VOFtTCtaLa0VORp7pPu59uqjOqO1pP\nq887A86Izrz+JeqXh2d9z7adszlXd17rfPkF6oXcBqhhfcN4Y2zjQFN4U0+z\nT3Nbi33LhV+Nf62+qHax7JLcpYLLxMvZl6evZFyZaBW0jl3lXh1qW9v29NrK\na/fbV7R3Xfe9fvOG541rHS4dV2463Lx4y+5W822b2413rO40dFp2XvjN8rcL\nXVZdDXet7zZ123a39Cztudzr1Hv1nvu9G/cZ9+88WP6g52HIw0d9kX0Dj9iP\nRh4nPH73JO3J1NMt/Zj+3GdSz4qfKz2v+F3v9/oBq4FLg+6DnS+CXjwdYg29\n+SPlj2/D2S8pL4tfqb6qGTEfuTjqOdr9etXr4TeCN1NjOX9K/1n+Vvft+b+c\n/+ocXzk+/E74bvp9/geFD9Ufl3xsmwiYeD6ZODn1KfezwucTX2y+dHwN+/pq\nat033LeS73rfW374/uifTpyeFjCFzFkrgEISjokB4H01AJRwxDt0A0CUmPPA\nswHN+fZZAn/Hcz55NqwAqHYGIGQLAH6IRzmEpBbCZGSdsXPBzgC2sBDnvyMl\nxsJ8TouMOD3M5+npD8oA4FoA+C6cnp46OD39vRLZ7GMAWpPnvPdMYKUAKNSh\nycgdv9Nm+T8e+F83E/33EuJBpgAAI5ZJREFUeNrtnVlsHNl570/tS3dV791s\ndrPZzSYpbiIpcQTN2LNpYgcTB5mMHeQOAgSG4bzYuAECIy8OECAGbMBB7sM1\nPA9+iIFc2zCcZGx4UcazaEbKSCOJEilS4k42lyab7H2v3mo99+GM2rRW0iPb\naaN+D0QvtZz6zr++853vfNXEIITAxKRzwH/fDTAxOR6mZE06DFOyJh2GKVmT\nDsOUrEmHYUrWpMMwJWvSYZiSNekwTMmadBimZE06DFOyJh2GKVmTDsOUrEmH\nYUrWpMMwJWvSYZiSNekwTMmadBimZE06DFOyJh2GKVmTDsOUrEmHYUrWpMMw\nJWvSYZiSNekwTMmadBimZE06DFOyJh2GKVmTDsOUrEmHYUrWpMMwJWvSYZiS\nNekwTMmadBimZE06DFOyJh2GKVmTDsOUrEmHYUrWpMMwJWvSYZiSNekwTMma\ndBimZE06DFOyJh0G+ftuwJPHMAz0j3kxDMMw7PfSBtQA9BfH8d9XM/4gwf6Q\n/u2yruv/M/VhGAYAAMfNMe0J8AciWQghhBDHcV3X19fXl5aWUqlUvV7/4he/\nKAiCpmkf6RhC8FsWNISQYZitra3//M//7OrqCgQC4+Pj4XAYAGAYxsd0/BDC\n/4E35O+4wR0ZGNxjCCQFAMA777zz7rvvVqtVhmEEQdjd3d3d3Q0EAoqiYBgG\ncByjKCjLv9W2GbouCML6+nosFlNVdXFx8fz5811dXX/+53/+1FNPIXd7lF58\nYGd3ll5/Sw3+HUm2HVw+cUMYhoHjeDab/da3vpVOp3t7e7u6uiCEBEGUy2WK\nogiCIHAcIwjQbBo7O3g4DB7h6iCEEGIPGsEhUtujB3cIAUHgOE7TtN1u93g8\ndrsdAFCpVL797W+fOnXqy1/+Msuy98vx/k8Ov0XflkqlRqMRCAR+i/30kCZt\nbW2RJNnb2/voNt9Ps9nEMIxl2SfYsN9RdPUEZ0K6rtfrdfQa6XV7e/urX/2q\npmljY2MURcmyrCiKpmm6rqOAwTAMQNPSrVur09NaPI7xPLz7FTQMwzCgYaDX\nkCRxloV3I41fAQBO04Ci0NzuYQCCICQJEIRhGIZhaJomy7KqqoIgTE5Obm5u\n/uM//qMkSRh2bzx2j3F0XU8mk/KvDwj1er1YLKLXTyScu3tlD/j8niYxDMMw\nzCM2eBibm5vxePxJNRjxcSV7z2W3X0MIV1dXk8kkelutVtvmPtbB73+bz+cX\nFxdRd+I4XiwWv/nNbwYCAa/XW6/XH3jr4wRBNBpsX193Tw+habBYBASBjoiR\nJElRGEkCwwAkqadSjdlZoGmHLw8AgGladXpaX1sjWfajgBjDwOHmQYjRtLK6\nuv3mm8rqKs4wyCsDADRN0zStXq9Ho1FVVf/5n//5/sCmUChomta+RkVR9vf3\nG40Geo1u0UAgMDY2hnY5ilyMuw14mFwe5kfQh7VaTbtrB4/HIwjCPRs0Go32\nTXXo1v41+vr6QqHQAxv8G4v42JL9dddz72W3X2MYxjDM3t5eq9UCAOTz+b29\nvUccdnt7O5VKHTY0OoiiKOgI7St0u93j4+M0Teu6DgB4/fXXRVHkeb5cLt8/\nJYeGgVFUfWkp/otfEDzvHh/fXloq3rxJ4Dg0DIymtYOD7E9/qqXTGMvSBCGt\nr+/euGEcHACGAbqOkSSJYYBlYaGQWVzceuON+o0bGMNgioIbBqBpcI+zpCiM\nYSCEhz9vtVqKohAEUa/Xe3t7s9nsD37wA3BXymiDWCxWq9Xau3Acd/r0aRRU\nZDKZ1dVVRVHaQlcU5eDgQFXVezrlsBRkWZ6fnz/sJu6XVLlcTiQS7Xwcsjz6\nUFGU5eXlfD6Ptkwmk1tbW+i1LMuSJAEAYrFYJpNBH66vr+/t7d0/elgsFp7n\nUbei/mpvgK7lnmY/MckePtz+/v76+jpSqmEYyWQyn8+jq9U0LRaLoeupVCpO\np1MURWRZl8vVarWQ24AQotYftuPhZGr7q/39/bm5ue3t7fa9ASFMp9PJZLJa\nrRIEcfXq1Xg83tXVValUHpxCIggSQlzXFQhhpWI4nQKGaTs7hiQBDMNJsnrl\nysZbbxn7+3o2m75wgUgmMVkGskzqOmAYLZlMX7hgbG3RfX2R06eJ7u5Ws0nK\ncu7991Pf/z6WzQKS/JU6DQNQVLfXy0xOGqravhCGYTRNU1UVx/FGo9Hf33/l\nypVLly69//77SAccx01OTlosllqtBiHc3NzMZrMkSSqKsr297XA4JiYmrl+/\nfuHCBWTnVquVTCYVRQGHxujDzgIAQJKkx+PhOE7TNHTPtzfIZDKbm5sAgGaz\niToLAJBKpRYWFlAnLi8vJ5PJyclJHMdnZ2cVRXG73SzLol7L5XKLi4ulUonn\neQghGgFsNpthGPF4vN2zbZrNZrlc3tvbW1lZOdwMSZJarVZb5UePG4mvfe1r\nj92ofbiVlZV4PK4oiqqqkiTZ7fbbt2/v7e319vYSBNFqtXK5nCAILMtubGxA\nCAcGBmiaxjA0/FIkSTIMo+v6pUuXdF13uVzosPV63ev1iqKo63qhUCAIgiTJ\nra2tnZ2dcDgcDAYVRUHZq4WFBcMw3n777XQ67XK53njjDZ7nCYLQNA3HcZIk\nQTsJimGlSuXMxIR0+bK6txd+8UWjpwdLpbBEYmd11WGxUKOjeK3WvH69ns0G\nnn9eqVb3t7dFmmZ9PnltrbC87BwbU5LJ1P6+OjOT//BDcWrKOzDA+f3QZmtd\nu7aztCS6XGxfn6FpKE4gdT09M3NQKARlOQFAbGPDZrPV63WapmmalmUZwzCC\nIHAc1zRta2treHjYarXabDZ0vZVKZXV11ePxNBoNCKEoirIsr66uWq1WTdOq\n1Wp3d7fT6cQwjKZpv9+PYdjq6irP8wzD7O7u5nI5ZE9d1zEMw3FcFEWKora3\nt5PJpN/vr9frkiTxPI+04na7rVYrAODtt99WFCUUCmEYJooiTdOSJCmK4vV6\nWZYlCKJWq128eFFV1Ugkgg6r6/ru7i5yH7lczu/3o6vI5XIOh4MkybYK9/f3\nNzY26vW62+22WCwWiwXpx2KxxGKxdDrdarVsNhuGYZIk4ThOoIDt40u2XC4j\n2d24cSObzSqKsrS0FAgEIIQ8zweDwenp6dnZWRzHR0ZG0ECgaZrNZiNJMpfL\nWa3Wra2tra2tSqXidrtpmi6VSul0muO4arW6s7NzcHAgiiLLsqqqrq6uCoLA\n83y1WuU4LhgMsiz75ptvXr9+Xdd1nueffvppQRAuXrz4ve99T1VVJGgcxw3D\noCjKMIxqtYpmP9Vm85kTJ+SZmfjmpmd0lCGI9atXsf19SBDWUIh3OHLXr5cq\nFXs4zI+NsdGo1+3WWLaxuFja3CyXy2KrBf1+P4aVZ2eT9XoXy2Yqlcq1a46p\nKUoUm6uroiBQQ0MAwwjDAARhkCSfy1kymaSuV+7c2dF1jqJQmhaNSIZhoJuK\nJElJkl577bVsNstxHM/zaOgYHBys1WrILKlUqlgs1mq1ZDJZLpej0ajdbn/n\nnXckSUKWn52dzWazfX19FEUtLCzE4/Hh4eFKpfKd73zHbre73W50t/A8LwgC\nSZKzs7PJZDISiQiC4Ha7IYSKoty8eXN9fX1oaIgkyUKhgMYBVVVjsdjS0pLD\n4fD5fFtbWxzH9fb22mw2HMdRv4RCoZ2dHV3XKYpyOp00TV+7dk0QBL/ff9j3\nz83NZTKZl156ied5i8WysLCwt7fX3d3N83wymSRJEo2NhmFsbGzgOC4IwmMT\nEY+XrK7ry8vLJEkKguByucLhsMvlUhQlGo3WarV4PP7ee+9duXJFFEVN0zwe\nz+7uLs/zKEja29uLxWLVanVxcREAcPLkyWq1SpJkIBCo1+sURa2srKTT6Wee\neUYQBF3XDcNAtztBEA6HI5vNVqtVt9udTqdLpZLH4zl16hTLsj6fb3R0tFAo\nSJLkdDrr9TpBEBzHoQYrimIYBmex1A8OPJrmlCSv1wuLxfJbb/EkaWAYrmka\nQVR+/OPW4iI7NRV+/nnM5ytdvw55nqxWl998k8WwkaeeimsaVig04vHlq1fH\nu7q4F19szMzk0mlRUQoXLlRrNaVet/f16ZlM4fJlrqcH7Ozc+tnPKFVlq9XZ\n2dmSINAMQxAECn50XW82mwzDyLLcbDZ3d3fPnj07Pj6eSqVisRjDMFar1ePx\npFIpRVF8Pp/VarVYLOFw2OPxhMNhp9Mpy/Lm5qamaaFQKBaL7e7ujo2NeTye\nWq3W29s7ODiIBrqDg4PR0dFMJpNIJJDrSiaTs7OzXq83GAzabLZms1ksFn/0\nox/Jsnzu3Lne3t5MJjM3N+dyuVCMl8vlFhYWcrlcPp9XFIUkydHR0evXr9dq\ntWAwuLm5iYLd+fl5dNLp6Wme5xuNhsVigRCurKxUq9VSqYSc3crKis/na7Va\nJEn+8Ic/lGX5ueeegxDeuXNHEISRkZGVlRUcxwOBgCiKBEE8NkJ4vGRxHEdR\n6f7+PlKt0+lkWVaSpFAoFI/H19bWXnjhBZIkp6enGYaZmZlBQ/Pa2pokSWfO\nnMlms4VC4dVXXyVJcnl52ePxlEqlVqvV09OjKIrD4ejp6UFXjm7cq1evJpNJ\nSZKi0WgulysWi2jcoWn60qVLaNxETmt9fZ3neYqiNE1DExRVVTmO01QVGkat\n1ToJobS4iNdqu2+8MbO6+tSZM0VRrK+vt+7cic/NgUZj+C//MrG/r/zyl6Vi\nUa3Xu557TltZUQuFwN/+rej10iRJpVL527dxkqyyrFitOj75SbC0dO3KlZ5k\nMru/73K787HYwdxc98QE2d/fmpujeN5tGPO1WpGi/IGArmnNZpMkSZZlaZo2\nDKNer6Ob89SpU7VabW9vD3kgt9tNkqTL5SJJkqZpjuPy+TzLsk6nU9f1RqMx\nMzPTbDbPnTt3cHDw4Ycfrq2tDQwM6Lp+4cKF7u5uURQhhBzHjY+PUxQ1NzeX\nTCZjsVgkEqFpOhaLDQ4OBoPBxcXFn/zkJx988IHFYunu7oYQJpPJZrOZzWbP\nnDmDQpGdnZ3V1dVWq2W1WhmGoSjKYrGg4Y4gCJ/Pl0gkCoUCipWR3/V6vZOT\nkzs7O7du3UJSZhgmm8329/dTFFWpVCiK8nq9dru9p6cHhdd+vx+dd3R0VFGU\n69evB4NBhmGegJeFEKKz/tM//RNJkkNDQ7VajabpVCrFsuzc3FxPT8/nPve5\nvr4+DMMODg5KpVKtVjtx4sTKyorX6/V6vTiOp9NppD8IYSQSURRlfX09kUiw\nLDs4OIhSzUjH29vbaK6Kjp/JZH7+858LgnDixAmv17uxsVEqlUZHR5eXly9f\nvgwhRPNxNPKi3CFBELV6XZHllqaNlcul9fVKqYSz7GgwaHziE3VFsW5vS7Wa\nQxRtn/mMt6sr/v3vJxcXLaLoGR0lAoHm9HSmUmHSaS4Uys/P1yTJo6qMrldW\nV/fX120Wi+Oll7DlZVxVd/P5XrcbPvWU6HLxLlcrmQxMTMiplNps1mOxbUEQ\nRLFcKmm6jjobwzA04eA4rl6vWywWVVVPnz4djUavXLly48YNj8djs9m2trby\n+XytVrtz506lUkHTVjT3z+fzSCg8zzebTYvFQlEUGpp/9rOfIc+yuro6Pz/f\n3d2NZmDj4+MMwxQKhXK5XC6X5+fn0RiFYVg6nY7FYmfOnOnv78dx3O/337x5\nkyCIV199dWJiYnh4GAAQi8VkWQ4EAgzDxGKxt99+G6nQ6XSGw+Fbt255PB7U\n18lkMpvNdnd3f/rTn97c3Ewmk08//bSu67VabXR0FAAgy3IwGPT7/el02jAM\nVVVR5KMoCur6aDRKkuQT8LKqqs7Pz2ezWUmSwuFwX1/fysqKLMvRaNRqtWaz\nWZvNJoqizWajabrVak1NTfX394+MjNRqtXw+T9M0SZKlUomm6f7+frfbTRAE\n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\nJEnPPvus0+lEPghdRXd3t6ZpkiRFIhGv14siDTRFwzBMluXZ2dlMJlOtVimK\nOnv2LGo/2he1HACAQme/3x8MBpeWltbW1s6ePXuUpCw4Yl4Wx3Gfz1csFkul\nksvlkmUZVfeheZXNZrPb7aqqkiSJhIXSclartVarsSw7MTGRTCYJgjh9+jQS\nNEVRNE1XKpU7d+4EAoGpqSmfz8cwzJ07d65evXr69GkU8lYqlVwuF41GvV4v\nz/NoAWZlZWV/fx9CGAwGm83m3NwcKi9EqVkUMtrtdookq63WuRdeCA8NOf7q\nrwyW5QKBnqEhPBjUcZx0OKyjo/zkJBEKURSVicUIWXb4/fZTpxxdXVgwaLRa\nGI5jEGKGgREE0HUsmTRo2hIIAIeDDYW6fT7ilVcwq5Wy2axjY9Dnwz2e9MxM\nTVFCExObudzu1lawp6fZbKLeaquBZdmDg4PPf/7zbrcbeVyr1bq5uYlSH4uL\niyh1iuIBNKyjTDsa3xwORy6X297e7urqQksGh3taEITBwUFRFK1Wa3d3d7tq\nbGtrq9lser3edtegRMT29jbK/7QLONH2qVSqPZ1o50ohhMVikaZpTdMSiYTf\n70cpYbQq226nLMvDw8OJRGJiYmJoaKidASAIIp/PS5KEHDZqCcdxKH+HRuOj\nSPYYJd7ozj44ODg4OGhHqNvb2xMTEziO37p1KxQKocK/tmtBtdUEQezs7AAA\nIpFI++LRrZ9IJAAAPT096PNKpSJJUjAYbHewoihI5e3Dop7DcRz1x9///d+j\nJBG6Z5BkaZomCGJre/t//93fdYdC9XIZU1XA83gms/beeyLHBV9+WcUwYBgY\nTYP9/a0rV1w9PZ5z51TDwACAinKvmQgCx3FQrxssCw0DYBjGcbDRQCUyEEIM\nQowkm8vLrVIp8OKL12/d+q/z5/v7+5GzQaoyDIPn+d3d3Ugk8pWvfKXtKQEA\niqKgdZBcLoeGTpTNvaeEA9mz0WigadD9ffSwDBEamiwWy+EPVVVdX18PBoN2\nu/3wjqqqvvvuu06n85lnnjm8morqFgYGBlwuVyqVcrlcaFWv1WpVq9VgMHi4\nbKBer6O4qH26crksSZLH4zlci4jOi0qcDxeLPRnJto3barVQXQ+GYSiiBQBU\nKhU0D2i1WnNzc9Fo1Ofzfcyi9La+H3gQ1OUbGxtf//rXo9GoYRg0TbdXUyia\n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\nQSsjvR61AAAAAElFTkSuQmCC\n","encoding":"base64"}},"public":true,"created_at":"2012-12-20T23:30:47Z","updated_at":"2019-08-02T20:56:51Z","description":"Brush Handles","comments":3,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4349545/comments","owner":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[{"url":"https://api.github.com/gists/5091037","user":{"login":"timelyportfolio","id":837910,"node_id":"MDQ6VXNlcjgzNzkxMA==","avatar_url":"https://avatars.githubusercontent.com/u/837910?v=4","gravatar_id":"","url":"https://api.github.com/users/timelyportfolio","html_url":"https://github.com/timelyportfolio","followers_url":"https://api.github.com/users/timelyportfolio/followers","following_url":"https://api.github.com/users/timelyportfolio/following{/other_user}","gists_url":"https://api.github.com/users/timelyportfolio/gists{/gist_id}","starred_url":"https://api.github.com/users/timelyportfolio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timelyportfolio/subscriptions","organizations_url":"https://api.github.com/users/timelyportfolio/orgs","repos_url":"https://api.github.com/users/timelyportfolio/repos","events_url":"https://api.github.com/users/timelyportfolio/events{/privacy}","received_events_url":"https://api.github.com/users/timelyportfolio/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"timelyportfolio","company":"available","blog":"http://buildingwidgets.com","location":"Birmingham, AL  USA","email":"kent.russell@timelyportfolio.com","hireable":null,"bio":"open source with R and JavaScript","twitter_username":null,"public_repos":538,"public_gists":597,"followers":1161,"following":1287,"created_at":"2011-06-08T15:57:01Z","updated_at":"2025-11-17T00:20:19Z"},"id":"5091037","created_at":"2013-03-05T15:21:25Z","updated_at":"2015-12-14T13:08:51Z"},{"url":"https://api.github.com/gists/5109493","user":{"login":"first-developer","id":755724,"node_id":"MDQ6VXNlcjc1NTcyNA==","avatar_url":"https://avatars.githubusercontent.com/u/755724?v=4","gravatar_id":"","url":"https://api.github.com/users/first-developer","html_url":"https://github.com/first-developer","followers_url":"https://api.github.com/users/first-developer/followers","following_url":"https://api.github.com/users/first-developer/following{/other_user}","gists_url":"https://api.github.com/users/first-developer/gists{/gist_id}","starred_url":"https://api.github.com/users/first-developer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/first-developer/subscriptions","organizations_url":"https://api.github.com/users/first-developer/orgs","repos_url":"https://api.github.com/users/first-developer/repos","events_url":"https://api.github.com/users/first-developer/events{/privacy}","received_events_url":"https://api.github.com/users/first-developer/received_events","type":"User","user_view_type":"public","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":85,"public_gists":45,"followers":18,"following":39,"created_at":"2011-04-27T22:39:21Z","updated_at":"2024-07-02T22:49:07Z"},"id":"5109493","created_at":"2013-03-07T16:42:48Z","updated_at":"2015-12-14T15:39:08Z"},{"url":"https://api.github.com/gists/5827809","user":{"login":"ahwolf","id":2856881,"node_id":"MDQ6VXNlcjI4NTY4ODE=","avatar_url":"https://avatars.githubusercontent.com/u/2856881?v=4","gravatar_id":"","url":"https://api.github.com/users/ahwolf","html_url":"https://github.com/ahwolf","followers_url":"https://api.github.com/users/ahwolf/followers","following_url":"https://api.github.com/users/ahwolf/following{/other_user}","gists_url":"https://api.github.com/users/ahwolf/gists{/gist_id}","starred_url":"https://api.github.com/users/ahwolf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahwolf/subscriptions","organizations_url":"https://api.github.com/users/ahwolf/orgs","repos_url":"https://api.github.com/users/ahwolf/repos","events_url":"https://api.github.com/users/ahwolf/events{/privacy}","received_events_url":"https://api.github.com/users/ahwolf/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Aaron Wolf","company":"FCA","blog":"","location":"Auburn Hills","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":27,"public_gists":7,"followers":13,"following":1,"created_at":"2012-11-21T20:19:15Z","updated_at":"2026-03-09T17:20:29Z"},"id":"5827809","created_at":"2013-06-20T23:54:00Z","updated_at":"2015-12-18T18:39:57Z"},{"url":"https://api.github.com/gists/6348094","user":{"login":"enjoylife","id":877194,"node_id":"MDQ6VXNlcjg3NzE5NA==","avatar_url":"https://avatars.githubusercontent.com/u/877194?v=4","gravatar_id":"","url":"https://api.github.com/users/enjoylife","html_url":"https://github.com/enjoylife","followers_url":"https://api.github.com/users/enjoylife/followers","following_url":"https://api.github.com/users/enjoylife/following{/other_user}","gists_url":"https://api.github.com/users/enjoylife/gists{/gist_id}","starred_url":"https://api.github.com/users/enjoylife/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enjoylife/subscriptions","organizations_url":"https://api.github.com/users/enjoylife/orgs","repos_url":"https://api.github.com/users/enjoylife/repos","events_url":"https://api.github.com/users/enjoylife/events{/privacy}","received_events_url":"https://api.github.com/users/enjoylife/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Matthew Clemens","company":"Uber","blog":"mdc.life","location":"Berkeley, CA","email":"matt.d.clemens@gmail.com","hireable":null,"bio":"Try, fail, learn, improve.","twitter_username":null,"public_repos":142,"public_gists":238,"followers":26,"following":17,"created_at":"2011-06-26T19:09:45Z","updated_at":"2026-04-07T20:42:13Z"},"id":"6348094","created_at":"2013-08-26T23:50:11Z","updated_at":"2015-12-21T18:29:48Z"},{"url":"https://api.github.com/gists/6486772","user":{"login":"santihbc","id":2404757,"node_id":"MDQ6VXNlcjI0MDQ3NTc=","avatar_url":"https://avatars.githubusercontent.com/u/2404757?v=4","gravatar_id":"","url":"https://api.github.com/users/santihbc","html_url":"https://github.com/santihbc","followers_url":"https://api.github.com/users/santihbc/followers","following_url":"https://api.github.com/users/santihbc/following{/other_user}","gists_url":"https://api.github.com/users/santihbc/gists{/gist_id}","starred_url":"https://api.github.com/users/santihbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/santihbc/subscriptions","organizations_url":"https://api.github.com/users/santihbc/orgs","repos_url":"https://api.github.com/users/santihbc/repos","events_url":"https://api.github.com/users/santihbc/events{/privacy}","received_events_url":"https://api.github.com/users/santihbc/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Santi Herrero","company":"Edpuzzle","blog":"","location":"Barcelona, Spain","email":"santi@edpuzzle.com","hireable":null,"bio":"Co-founder & CTO at Edpuzzle, Inc.","twitter_username":"santihbc","public_repos":244,"public_gists":39,"followers":46,"following":39,"created_at":"2012-09-23T13:32:53Z","updated_at":"2026-04-02T20:09:32Z"},"id":"6486772","created_at":"2013-09-08T17:35:57Z","updated_at":"2015-12-22T14:38:53Z"},{"url":"https://api.github.com/gists/10449877","user":{"login":"mygoare","id":950850,"node_id":"MDQ6VXNlcjk1MDg1MA==","avatar_url":"https://avatars.githubusercontent.com/u/950850?v=4","gravatar_id":"","url":"https://api.github.com/users/mygoare","html_url":"https://github.com/mygoare","followers_url":"https://api.github.com/users/mygoare/followers","following_url":"https://api.github.com/users/mygoare/following{/other_user}","gists_url":"https://api.github.com/users/mygoare/gists{/gist_id}","starred_url":"https://api.github.com/users/mygoare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mygoare/subscriptions","organizations_url":"https://api.github.com/users/mygoare/orgs","repos_url":"https://api.github.com/users/mygoare/repos","events_url":"https://api.github.com/users/mygoare/events{/privacy}","received_events_url":"https://api.github.com/users/mygoare/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Gore","company":null,"blog":"mygoare.github.io","location":"Hefei, China","email":"mygoare@gmail.com","hireable":null,"bio":"Talk is cheap","twitter_username":null,"public_repos":64,"public_gists":61,"followers":46,"following":92,"created_at":"2011-08-01T03:22:50Z","updated_at":"2026-03-25T03:14:34Z"},"id":"10449877","created_at":"2014-04-11T08:28:03Z","updated_at":"2015-08-29T13:59:00Z"},{"url":"https://api.github.com/gists/238317855919055fc6cf","user":{"login":"qinbx","id":836554,"node_id":"MDQ6VXNlcjgzNjU1NA==","avatar_url":"https://avatars.githubusercontent.com/u/836554?v=4","gravatar_id":"","url":"https://api.github.com/users/qinbx","html_url":"https://github.com/qinbx","followers_url":"https://api.github.com/users/qinbx/followers","following_url":"https://api.github.com/users/qinbx/following{/other_user}","gists_url":"https://api.github.com/users/qinbx/gists{/gist_id}","starred_url":"https://api.github.com/users/qinbx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qinbx/subscriptions","organizations_url":"https://api.github.com/users/qinbx/orgs","repos_url":"https://api.github.com/users/qinbx/repos","events_url":"https://api.github.com/users/qinbx/events{/privacy}","received_events_url":"https://api.github.com/users/qinbx/received_events","type":"User","user_view_type":"public","site_admin":false,"name":null,"company":null,"blog":"","location":"Qingdao, China","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":23,"public_gists":8,"followers":6,"following":2,"created_at":"2011-06-08T02:55:00Z","updated_at":"2026-02-25T06:24:50Z"},"id":"238317855919055fc6cf","created_at":"2015-03-21T14:33:45Z","updated_at":"2015-08-29T14:17:29Z"},{"url":"https://api.github.com/gists/1b128bc0e3f27d676638","user":{"login":"andrewthornton","id":1821350,"node_id":"MDQ6VXNlcjE4MjEzNTA=","avatar_url":"https://avatars.githubusercontent.com/u/1821350?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewthornton","html_url":"https://github.com/andrewthornton","followers_url":"https://api.github.com/users/andrewthornton/followers","following_url":"https://api.github.com/users/andrewthornton/following{/other_user}","gists_url":"https://api.github.com/users/andrewthornton/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewthornton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewthornton/subscriptions","organizations_url":"https://api.github.com/users/andrewthornton/orgs","repos_url":"https://api.github.com/users/andrewthornton/repos","events_url":"https://api.github.com/users/andrewthornton/events{/privacy}","received_events_url":"https://api.github.com/users/andrewthornton/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Andy Thornton","company":null,"blog":"","location":"Montana","email":"thor5551@gmail.com","hireable":null,"bio":null,"twitter_username":null,"public_repos":2,"public_gists":8,"followers":13,"following":2,"created_at":"2012-06-06T01:07:36Z","updated_at":"2026-03-25T18:57:24Z"},"id":"1b128bc0e3f27d676638","created_at":"2015-09-12T19:02:22Z","updated_at":"2015-09-12T19:04:55Z"},{"url":"https://api.github.com/gists/0e7796d322495891b6f154150c4333b7","user":{"login":"macaba","id":1031306,"node_id":"MDQ6VXNlcjEwMzEzMDY=","avatar_url":"https://avatars.githubusercontent.com/u/1031306?v=4","gravatar_id":"","url":"https://api.github.com/users/macaba","html_url":"https://github.com/macaba","followers_url":"https://api.github.com/users/macaba/followers","following_url":"https://api.github.com/users/macaba/following{/other_user}","gists_url":"https://api.github.com/users/macaba/gists{/gist_id}","starred_url":"https://api.github.com/users/macaba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/macaba/subscriptions","organizations_url":"https://api.github.com/users/macaba/orgs","repos_url":"https://api.github.com/users/macaba/repos","events_url":"https://api.github.com/users/macaba/events{/privacy}","received_events_url":"https://api.github.com/users/macaba/received_events","type":"User","user_view_type":"public","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":56,"public_gists":5,"followers":48,"following":9,"created_at":"2011-09-06T21:35:31Z","updated_at":"2026-03-06T21:06:34Z"},"id":"0e7796d322495891b6f154150c4333b7","created_at":"2017-04-19T22:05:31Z","updated_at":"2017-04-19T22:05:32Z"},{"url":"https://api.github.com/gists/7689f0f666c9118040cc850c1011d072","user":{"login":"devgru","id":63065,"node_id":"MDQ6VXNlcjYzMDY1","avatar_url":"https://avatars.githubusercontent.com/u/63065?v=4","gravatar_id":"","url":"https://api.github.com/users/devgru","html_url":"https://github.com/devgru","followers_url":"https://api.github.com/users/devgru/followers","following_url":"https://api.github.com/users/devgru/following{/other_user}","gists_url":"https://api.github.com/users/devgru/gists{/gist_id}","starred_url":"https://api.github.com/users/devgru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devgru/subscriptions","organizations_url":"https://api.github.com/users/devgru/orgs","repos_url":"https://api.github.com/users/devgru/repos","events_url":"https://api.github.com/users/devgru/events{/privacy}","received_events_url":"https://api.github.com/users/devgru/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Dima Semyushkin","company":null,"blog":"https://observablehq.com/@devgru?type=collections","location":"Helsinki, Finland","email":"dima@devg.ru","hireable":null,"bio":"Full-stack developer, mastering TypeScript, D3 and React. Love data visualization and color spaces.","twitter_username":"devgru","public_repos":60,"public_gists":39,"followers":51,"following":17,"created_at":"2009-03-13T09:46:48Z","updated_at":"2026-04-08T22:02:24Z"},"id":"7689f0f666c9118040cc850c1011d072","created_at":"2018-03-27T13:06:13Z","updated_at":"2019-10-23T20:16:59Z"},{"url":"https://api.github.com/gists/4f7d7be82c077f7707d7f89223ccf1c7","user":{"login":"mmazanec22","id":12260067,"node_id":"MDQ6VXNlcjEyMjYwMDY3","avatar_url":"https://avatars.githubusercontent.com/u/12260067?v=4","gravatar_id":"","url":"https://api.github.com/users/mmazanec22","html_url":"https://github.com/mmazanec22","followers_url":"https://api.github.com/users/mmazanec22/followers","following_url":"https://api.github.com/users/mmazanec22/following{/other_user}","gists_url":"https://api.github.com/users/mmazanec22/gists{/gist_id}","starred_url":"https://api.github.com/users/mmazanec22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmazanec22/subscriptions","organizations_url":"https://api.github.com/users/mmazanec22/orgs","repos_url":"https://api.github.com/users/mmazanec22/repos","events_url":"https://api.github.com/users/mmazanec22/events{/privacy}","received_events_url":"https://api.github.com/users/mmazanec22/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Melanie Mazanec","company":null,"blog":"","location":"Philadelphia, PA","email":null,"hireable":true,"bio":"Musician, cyclist, accessibility enthusiast","twitter_username":null,"public_repos":19,"public_gists":15,"followers":15,"following":22,"created_at":"2015-05-05T19:09:10Z","updated_at":"2026-03-30T18:57:26Z"},"id":"4f7d7be82c077f7707d7f89223ccf1c7","created_at":"2018-07-12T19:09:55Z","updated_at":"2018-07-12T19:09:55Z"},{"url":"https://api.github.com/gists/002d411fa9b0a556d1f461f886c56763","user":{"login":"jonasius","id":5968090,"node_id":"MDQ6VXNlcjU5NjgwOTA=","avatar_url":"https://avatars.githubusercontent.com/u/5968090?v=4","gravatar_id":"","url":"https://api.github.com/users/jonasius","html_url":"https://github.com/jonasius","followers_url":"https://api.github.com/users/jonasius/followers","following_url":"https://api.github.com/users/jonasius/following{/other_user}","gists_url":"https://api.github.com/users/jonasius/gists{/gist_id}","starred_url":"https://api.github.com/users/jonasius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonasius/subscriptions","organizations_url":"https://api.github.com/users/jonasius/orgs","repos_url":"https://api.github.com/users/jonasius/repos","events_url":"https://api.github.com/users/jonasius/events{/privacy}","received_events_url":"https://api.github.com/users/jonasius/received_events","type":"User","user_view_type":"public","site_admin":false,"name":null,"company":null,"blog":"","location":"Germany","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":7,"public_gists":5,"followers":8,"following":22,"created_at":"2013-11-18T10:54:26Z","updated_at":"2026-01-27T09:42:19Z"},"id":"002d411fa9b0a556d1f461f886c56763","created_at":"2019-03-19T08:18:51Z","updated_at":"2019-03-19T08:18:51Z"}],"history":[{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"15c90f8447b3b6c8117c1f2e0776e47eabdca2b6","committed_at":"2019-08-02T20:56:50Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4349545/15c90f8447b3b6c8117c1f2e0776e47eabdca2b6"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"81058a137de9a7a77d208a6f8fc0fa9815019504","committed_at":"2016-10-03T21:03:39Z","change_status":{"total":3,"additions":2,"deletions":1},"url":"https://api.github.com/gists/4349545/81058a137de9a7a77d208a6f8fc0fa9815019504"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"f1e30d0ca6fc069ca72fd519fdb591deb5fce8a5","committed_at":"2016-10-03T20:58:57Z","change_status":{"total":132,"additions":50,"deletions":82},"url":"https://api.github.com/gists/4349545/f1e30d0ca6fc069ca72fd519fdb591deb5fce8a5"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"b8fa1bccdbeaa1708272818d31b9029c194ee180","committed_at":"2016-02-09T02:11:46Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4349545/b8fa1bccdbeaa1708272818d31b9029c194ee180"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"52a9342e0f995c92160891c63b95a32904828078","committed_at":"2015-10-31T01:25:11Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4349545/52a9342e0f995c92160891c63b95a32904828078"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"138dd2e42df7dd02d9aa937ec5f7895deb37c1a2","committed_at":"2015-06-11T19:28:46Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4349545/138dd2e42df7dd02d9aa937ec5f7895deb37c1a2"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"69897f4bb3bf09cf9de2e9fdacec87cd3c7ca5d0","committed_at":"2012-12-20T23:31:26Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4349545/69897f4bb3bf09cf9de2e9fdacec87cd3c7ca5d0"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"e2b1a21a4829ed9db43b6f3f53f13a2148fe6e10","committed_at":"2012-12-20T23:30:47Z","change_status":{"total":112,"additions":112,"deletions":0},"url":"https://api.github.com/gists/4349545/e2b1a21a4829ed9db43b6f3f53f13a2148fe6e10"}],"truncated":false}