{"url":"https://api.github.com/gists/4218871","forks_url":"https://api.github.com/gists/4218871/forks","commits_url":"https://api.github.com/gists/4218871/commits","id":"4218871","node_id":"MDQ6R2lzdDQyMTg4NzE=","git_pull_url":"https://gist.github.com/4218871.git","git_push_url":"https://gist.github.com/4218871.git","html_url":"https://gist.github.com/mbostock/4218871","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4218871/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/4218871/raw/f5d5aaab2395c83a065241293752e099245bf7ca/README.md","size":93,"truncated":false,"content":"Drag the control points of the polygon to see whether the polygon intersects with the circle.","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/4218871/raw/d282ffcbd7bc16982e16f8e39ebce87a8acdc8a5/index.html","size":2780,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\n.circle {\n  fill: red;\n  fill-opacity: .3;\n}\n\n.circle.intersects {\n  fill: green;\n}\n\n.polygon path {\n  fill: #000;\n  fill-opacity: .3;\n}\n\n.polygon circle {\n  fill: #000;\n  stroke: #fff;\n  cursor: move;\n}\n\n</style>\n<body>\n<script src=\"//d3js.org/d3.v3.min.js\"></script>\n<script>\n\nvar width = 960,\n    height = 500;\n\nvar svg = d3.select(\"body\").append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\nvar circle = svg.append(\"circle\")\n    .attr(\"class\", \"circle intersects\")\n    .datum([width / 2, height / 2, 120])\n    .call(positionCircle)\n    .attr(\"r\", function(d) { return d[2]; });\n\nvar polygon = svg.append(\"g\")\n    .attr(\"class\", \"polygon\")\n    .datum([[500, 300], [600, 300], [600, 400], [500, 400]]);\n\npolygon.append(\"path\")\n    .call(positionPath);\n\npolygon.selectAll(\"circle\")\n    .data(function(d) { return d; })\n  .enter().append(\"circle\")\n    .call(positionCircle)\n    .attr(\"r\", 4.5)\n    .call(d3.behavior.drag()\n      .origin(function(d) { return {x: d[0], y: d[1]}; })\n      .on(\"drag\", function(d) {\n        d[0] = d3.event.x, d[1] = d3.event.y;\n        d3.select(this).call(positionCircle);\n        polygon.select(\"path\").call(positionPath);\n        circle.classed(\"intersects\", intersects(circle.datum(), polygon.datum()));\n      }));\n\nfunction positionCircle(circle) {\n  circle\n      .attr(\"cx\", function(d) { return d[0]; })\n      .attr(\"cy\", function(d) { return d[1]; });\n}\n\nfunction positionPath(path) {\n  path\n      .attr(\"d\", function(d) { return \"M\" + d.join(\"L\") + \"Z\"; });\n}\n\nfunction intersects(circle, polygon) {\n  return pointInPolygon(circle, polygon)\n      || polygonEdges(polygon).some(function(line) { return pointLineSegmentDistance(circle, line) < circle[2]; });\n}\n\nfunction polygonEdges(polygon) {\n  return polygon.map(function(p, i) {\n    return i ? [polygon[i - 1], p] : [polygon[polygon.length - 1], p];\n  });\n}\n\nfunction pointInPolygon(point, polygon) {\n  for (var n = polygon.length, i = 0, j = n - 1, x = point[0], y = point[1], inside = false; i < n; j = i++) {\n    var xi = polygon[i][0], yi = polygon[i][1],\n        xj = polygon[j][0], yj = polygon[j][1];\n    if ((yi > y ^ yj > y) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)) inside = !inside;\n  }\n  return inside;\n}\n\nfunction pointLineSegmentDistance(point, line) {\n  var v = line[0], w = line[1], d, t;\n  return Math.sqrt(pointPointSquaredDistance(point, (d = pointPointSquaredDistance(v, w))\n      ? ((t = ((point[0] - v[0]) * (w[0] - v[0]) + (point[1] - v[1]) * (w[1] - v[1])) / d) < 0 ? v\n      : t > 1 ? w\n      : [v[0] + t * (w[0] - v[0]), v[1] + t * (w[1] - v[1])])\n      : v));\n}\n\nfunction pointPointSquaredDistance(v, w) {\n  var dx = v[0] - w[0], dy = v[1] - w[1];\n  return dx * dx + dy * dy;\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/4218871/raw/3c3963a2946c04b0704b95db142d857f0d34aa4b/thumbnail.png","size":5613,"truncated":false,"content":"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\nWHhYZFvUWfROYUwJnpI7pWnKq6n6U+OmbpzaPvWrpa1lquVey3tWSlaBVrlW\nLVZvrE2t2dbl1tdtqDa+Nsttmm1eTzObxp22Y9ptW7rtDNvVtm22X+zs7UR2\n9Xb99vr28fYV9rcclB1CHYocLjgSHD0dlzsed/zoZOeU5XTI6Q9nC+cU533O\nz6cbTedO3zv9sYuuC8tlt0uPK9M13nWXa4+bjhvLrdLtkbueO8e9yv2Zh4lH\nssd+j1eelp4iz6Oe772cvJZ6tXpj3n7eBd6dPko+kT5lPg99dX2TfOt8B/1s\n/Rb7tfoT/IP8N/rfCtAMYAfUBgwG2gcuDTwbRAkKDyoLehRsGiwKbpmBzgic\nsWnG/ZkGMwUzm0JASEDIppAHoUahGaG/zCLOCp1VPutpmFXYkrD2cHr4/PB9\n4e8iPCPWR9yLNI4UR7ZFyUfNiaqNeh/tHV0c3RMzNWZpzOVY9Vh+bHMcKS4q\nripuaLbP7C2z++bYzsmfc3Ou0dyFcy/OU5+XOu/EfPn5rPmH4wnx0fH74j+z\nQliVrKGEgISKhEG2F3sr+yXHnbOZ08914RZznyW6JBYnPk9ySdqU1M9z45Xw\nBvhe/DL+62T/5J3J71NCUqpTRlKjUxvSZNLi044JlAQpgrPpWukL07uFZsJ8\nYU+GU8aWjEFRkKgqE8mcm9mcpQwvuR1iY/EP4t5s1+zy7A8LohYcXqi4ULCw\nY5HporWLnuX45vy0GF/MXty2RGfJyiW9Sz2W7l6GLEtY1rZcb3ne8r4Vfitq\nVpJXpqz8Ndcytzj3z1XRq1ryNPNW5D3+we+Hunxavij/1mrn1TvX4Gv4azrX\n2qzdtvZrAafgUqFlYUnh5yJ20aUfrX4s/XFkXeK6zvV263dsIG4QbLi50W1j\nTbFicU7x400zNjVuZm4u2PznlvlbLpZMK9m5lbxVvLWnNLi0eZv+tg3bPpfx\nym6Ue5Y3VGhUrK14v52z/eoO9x31OzV3Fu78tIu/6/Zuv92NlYaVJXuIe7L3\nPN0btbf9J4efaqvUqwqrvlQLqntqwmrO1trX1u7T2Le+Dq0T1/Xvn7O/64D3\ngeZ6i/rdDYyGwoPgoPjgi5/jf755KOhQ22GHw/VHDI5UHKUfLWhEGhc1Djbx\nmnqaY5u7jwUea2txbjn6y5Rfqo/rHC8/oXJi/UnyybyTI6dyTg21ClsHTied\nftw2v+3emZgz18/OOtt5LujchfO+58+0e7SfuuBy4fhFp4vHLjlcarpsd7mx\nw7bj6K+2vx7ttOtsvGJ/pbnLsaule3r3yatuV09f8752/nrA9cs3Zt7ovhl5\n8/atObd6bnNuP7+Teuf13ey7w/dW3CfcL3ig8KDkocbDyt9Mfmvoses50evd\n2/Eo/NG9x+zHL59kPvncl/eU+rTkmfaz2ufWz4/3+/Z3vZj9ou+l8OXwQP7v\nir9XvDJ+deQP9z86BmMG+16LXo+8KXqr9rb6z2l/tg2FDj18l/Zu+H3BB7UP\nNR8dPrZ/iv70bHjBZ9Ln0i8mX1q+Bn29P5I2MiJkiVjSqwAGK5qYCMCbapi3\nxMK7QxcAZNpobiQtyGg+JyXwTzyaP0mLHQDV7gBErgAgGN5RdsBqAJkCn5Jr\nfoQ7QG1sJupYyUy0sR61RYEZAOHDyMhbTQBILQB8EY2MDG8fGfkCczzsDgCt\nGaM5maQQ4T1+F01CFzuLVnyfG/0HKZdga3svC0sAAAAJb0ZGcwAAADkAAAA6\nANz2PtIAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAmaSURBVHja7d3dbhNHG8Dx\n55nZ9dprO7FjJzFqEyhRW9EC4qStQFQ95DJ6H4gbeK+j6rWkLXoP2sBJpQQp\npG8dwLGTOGuvd2ae92CCSUK+nPhr2Od3gJBLnMH9s5lde2aRiIAxd4hJD4Cx\nwXCyzDGcLHMMJ8scw8kyx3CyzDGcLHMMJ8scw8kyx3CyzDGcLHMMJ8scw8ky\nx3CyzDGcLHMMJ8scw8kyx3CyzDGcLHMMJ8scw8kyx3CyzDGcLHMMJ8scw8ky\nx3CyzDGcLHMMJ8sc4016AJ8CAoL+Znxof8HDxwGO/if7OLsO5J0Pr8y+dIiD\nVXi1r2J9nOxVEFG/OQKKetF+vL/f2++oTqxipZUmDQASpSe9wAtyXq6YKRaD\nYuiHH77wyJOwy+NkB9PvzJBpRI16u/4uenfQO0hMYsgg4McVEhEBCRS+8POZ\nfDWs1gq1SlgRKIDDHRwne1lEZCejsYo3dzc3dzf34j0iEkJIlMemqUdf0SMP\nEpAmbYxBxJlgZnl2ebm0HMjAToU53EviZC/FHguVUes76xvNjSiJPOFJlIAn\nTr4ucFg2gSatjAr98Hb59srciic8PtxeEid7AZsjAtbb9bXttb14zxe+EGKg\nUj9m2zXGJCaZCWbuLd6rFWr97zXpv/RU42TPY4982ui1N2sbzQ2JUgo53FfM\nPr8mfbt8+97CPfv8fLg9Byd7JptOlER/bP3R6DQCL7jmkfUs9ogbq7gSVr7/\n7PvQD7nac3Cyp7PRtLqt1derXdXNyIwhM9LvKFD0dC/rZR8uPSxlS1ztWTjZ\nU9hcGlFj9fWqJj30ycBZ7CRBony49LASVrjaU/FnDE4iIERsdpurW2PtFQCI\nSAqpSa9urba6LUQcxTzEdZzsMQSEgFES/f76d2XUOHs9HACRFFIZ9dvr36Ik\nQuBqT+Jkj0FATfr5P887qmOvlY5/DETkCa+jOs//ea5J8zWvEzjZD+zx7MX2\ni3fRu4zMTHCWT0QZmXkXvXux/aI/MGZxsofslKDerm80NwIvGPX1gQsZMoEX\nbDQ36u06Tw+O4mQPIaA2+uWblwLFtORBIFC8fPNSG54efMDJArz/DOt6c73V\nbUkhp+SQRkBSyFa3td5c7w+ScbIAAIjY071XzVe+8KeqDHsq9qr5qqd7fI3W\n4mQPj16bu5vtXluIqXtBpJDtXntzdxP4QAsAnCwA2Cv2r3dfSyGnY0ZwHIEU\ncmt3y77HMenRTF7ak7XT1p1oZzfe9dCbklnsiRF66LXi1k60A3zBi5O1AdTb\ndWPM9J6UI2ij6+16f8BplvZk7Y/aRtSYomtbHyOQKBtRA3hpLicLAB3V2e/t\nCyGm9mcuAQkh7AreSY9l8lKdrG20HbcTnYjpfikEiEQn7bgNqZ/OTvX/p5Ej\nAIB2r21oiieyFoIh0+61+8NOrXQnCwAAURJNegif4FBHh5OFWMeTHsInONTR\nSXeyCACgjHLiNNxupNAfdmqlO1kAANBGA0z9BJGODDXdOFnmGE4WpJAAU//T\nFo8MNd3SnSwBAExqjdfAgyXyhNcfdmqlO1kAAAhkMOkhfIJDHR1OFkI/nPQQ\nPsGhjk66k0UAgEKmMNWfibEIBIpCptAfdmqlOlm7BrAQFHzpG5jwktrzGTC+\n9AtBAVK/m2eqk7XsjQyMMVObAgIaY4qZYs7LTXosk5f2ZO21gkpY0aSntVgA\nBE26ElaAl39xsjbTWqE2uoVfRGTIXGsvDwKJcjG/CJws36rOTgbmwrnZYHYU\ny7+IyPO9UIYadNSLrjD3QEBFqpwrV/NVpdQUrgEes7T//cHuJgu4NLukzbDn\nBgTCE2bP/Pz451//82s+zHe73WRQKul0O8ul5e3/bS/WFp89ewYAWqf3wwZp\nP8rC+9VUy7PL6zvrXdW1t+MaIgISUuzv7v+5+mez2ZRysDdd7QrbUr2U9BJ+\nwxZ4F2/L7pf9d+Pvte21wAuG+JqQoUw2Qx36679/7bZ3B/33gICJSb4ofbFU\nXFKglpeWHzx4MOlXa8J4YgDw/kC7Ul4pZUvD3bMNEbXSjf1Ga6/lSQ8HIVAY\nNIWgcKN4g5BUog4ODiD1Z2Cc7CG7Z9u3C98Odx2Y3eJFiivefYmIbs7c9IRn\nwCAin3sBJ9tn93CtFWq3y7djFY9iRjvoeBKT3MjfqIQVZdTUvs0xfpzsBzaL\nu4t3q2F1sjsNIqAyaiaYuVW6xZvLnsDJHkNAEuV3n32X83KTWhNm79eQ8TJf\nzX0lcHo3BJkUTvYYOz0I/fCHpR889LTRY64WAQ0ZifJO5U7Oy/HtPT7GyZ6E\ngERUzpYfLj2UKMdZrT2+ChR3qneKQVERT2FPwcmeAhGJqBJWHt98nJGZRCdD\nPxs75ZsCKlK+8L+Z/6aULfEp11k42dPZakvZ0k+3fipny13VRcTRNWSvDxT8\nwr2FezPBTGIS7vUsnOyZbLWhH/5488eVuZWe7mka/iTBTl6VUbVC7e7C3ayX\n5ePr+fgzBuexe9ILIR7UHtQKtbXttb14zxe+EOL6N7pHQANGGRX64c3Zm9Ww\nqo3m860LcbIXsAERUa1Qq4bV9Z31jeZGlESe8CRKQBi0XfuEmrS9Gd3nxc9v\nFG740rcHV+71QpzspdhJghTy6+rXt8q3Nlubm7ube/EeEQkhJEo8uiLraMAI\nh58YAAQA+1lvRAy9cD6cX8gv2JkATwYuj5O9LDuLJaJABl9WvlyZW2lEjX/b\n/zaixkHvIDGJIWP7PPpVRKRBxypWpDKYyXv5YlAsZ8szwYwvfE3anmlxr5fH\nyQ6mH65AMZ+fn8/PE1GURPvxvt0YPlax0soumxEopJD5bL7jd6hChaAQyMAT\nHgFpw7FeESd7Ff1w7e/zmXw+k69B7eM/aT+J25Kteq6OAg2ZxCRg5wsc65Vw\nslfXnwMcOwFD+wvax+0NyA0ZRUqShNTvQnB9nOwQ4Bkd9h8d6dsQacNvJYxD\nytcRDBcnOybGmGu+c0ZExkz1LkzjwRODcUDEYrEYRVe/nwwR+b4fhiGk/gaL\nfJQdIXu54O3bt/fv3//ll1+q1aqUMjM43/dzuRwRPXny5OnTp8D7GLCRQkSt\n9dzc3KNHj7rd7qD7GACAMSYIgq2tLZ4TA+9jMB52Y6Lrr49NkkRKmfJ1tpzs\nyPVf4euffg3leVyX6n+v42ELu35nw3oe1/FRljmGj7LMMZwscwwnyxzDyTLH\ncLLMMZwscwwnyxzDyTLHcLLMMZwscwwnyxzDyTLHcLLMMZwscwwnyxzDyTLH\ncLLMMZwscwwnyxzzfw0woriq0LQyAAAAAElFTkSuQmCC\n","encoding":"base64"}},"public":true,"created_at":"2012-12-05T19:47:15Z","updated_at":"2017-07-20T07:30:03Z","description":"Circle-Polygon Intersection","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4218871/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":[],"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":"2d37c26383ea28629b24afc09756d5a60d087802","committed_at":"2016-02-09T02:13:16Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4218871/2d37c26383ea28629b24afc09756d5a60d087802"},{"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":"6d40886318527bc109a07294f16f026080381f85","committed_at":"2015-10-31T01:19:30Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4218871/6d40886318527bc109a07294f16f026080381f85"},{"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":"98e3110340facbd17cc285f7ba68cb04c7e4605f","committed_at":"2015-06-11T19:30:24Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4218871/98e3110340facbd17cc285f7ba68cb04c7e4605f"},{"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":"a99486736cbf7eec69895c4b79d8d3720c6d2580","committed_at":"2012-12-08T19:21:56Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4218871/a99486736cbf7eec69895c4b79d8d3720c6d2580"},{"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":"966b0731b5424d0b201e15ec9d5a99ea6b14b2a2","committed_at":"2012-12-05T19:54:16Z","change_status":{"total":7,"additions":2,"deletions":5},"url":"https://api.github.com/gists/4218871/966b0731b5424d0b201e15ec9d5a99ea6b14b2a2"},{"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":"275684587a11df07d72b39ff2af514739dab3baa","committed_at":"2012-12-05T19:47:15Z","change_status":{"total":113,"additions":113,"deletions":0},"url":"https://api.github.com/gists/4218871/275684587a11df07d72b39ff2af514739dab3baa"}],"truncated":false}