Skip to content

Instantly share code, notes, and snippets.

@anaeliaovalle
Last active February 23, 2017 21:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anaeliaovalle/e8d215abbd81799862632b26c10e2eab to your computer and use it in GitHub Desktop.
Save anaeliaovalle/e8d215abbd81799862632b26c10e2eab to your computer and use it in GitHub Desktop.
REAL_student_ Heatmap
license: mit

Inspired by Trulia Trends - but with code and using SVG.

Example data shows concurrent user sessions over time, taken from a development environment.

MIT Licensed, see LICENSE.MD.

forked from tjdecke's block: REAL_student_ Heatmap

category school value
k_rank_cond_parq5 California Maritime Academy 0.8105
k_rank_cond_parq4 California Maritime Academy 0.7827
k_rank_cond_parq3 California Maritime Academy 0.7177
k_rank_cond_parq2 California Maritime Academy 0.7353
k_rank_cond_parq1 California Maritime Academy 0.9155
k_rank_cond_parq5 Harvey Mudd College 0.8084
k_rank_cond_parq4 Harvey Mudd College 0.7002
k_rank_cond_parq3 Harvey Mudd College 0.7995
k_rank_cond_parq2 Harvey Mudd College 0.782
k_rank_cond_parq1 Harvey Mudd College 0.8671
k_rank_cond_parq5 California Institute Of Technology 0.7859
k_rank_cond_parq4 California Institute Of Technology 0.7905
k_rank_cond_parq3 California Institute Of Technology 0.7296
k_rank_cond_parq2 California Institute Of Technology 0.7388
k_rank_cond_parq1 California Institute Of Technology 0.7257
k_rank_cond_parq5 Stanford University 0.7879999999999999
k_rank_cond_parq4 Stanford University 0.7596
k_rank_cond_parq3 Stanford University 0.7136
k_rank_cond_parq2 Stanford University 0.7641
k_rank_cond_parq1 Stanford University 0.736
k_rank_cond_parq5 Santa Clara University 0.7578
k_rank_cond_parq4 Santa Clara University 0.7538
k_rank_cond_parq3 Santa Clara University 0.7306
k_rank_cond_parq2 Santa Clara University 0.6988
k_rank_cond_parq1 Santa Clara University 0.7403
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<style>
rect.bordered {
stroke: #E6E6E6;
stroke-width:2px;
}
text.mono {
font-size: 9pt;
font-family: Consolas, courier;
fill: #aaa;
}
text.axis-workweek {
fill: #000;
}
text.axis-worktime {
fill: #000;
}
</style>
<script src="http://d3js.org/d3.v3.js"></script>
</head>
<body>
<div id="chart"></div>
<div id="dataset-picker">
</div>
<script type="text/javascript">
var margin = { top: 50, right: 630, bottom: 100, left: 131 },
width = 960 - margin.left - margin.right,
height = 430 - margin.top - margin.bottom,
schools = 5,
gridSize = Math.floor(width / schools),
legendElementWidth = gridSize*2,
buckets = 5,
colors = ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"], // alternatively colorbrewer.YlGnBu[9]
days = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
times = ["1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a", "12a", "1p", "2p", "3p", "4p", "5p", "6p", "7p", "8p", "9p", "10p", "11p", "12p"],
columns = ["k_rank_cond_parq5","k_rank_cond_parq4","k_rank_cond_parq3","k_rank_cond_parq2","k_rank_cond_parq1"];
var svg = d3.select("#chart").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var heatmapChart = function(csvFile) {
d3.csv(csvFile,
function(d) {
return {
school:d.school,
category:d.category,
value:+d.value,
};
},
function(error, data) {
var yLables = svg.selectAll(".yLabel")
.data(columns)
.enter().append("text")
.text(function (d) { return d; })
.attr("x", 0)
.attr("y", function (d, i) { return i * gridSize; })
.style("text-anchor", "end")
.attr("transform", "translate(-6," + gridSize / 2 + ")")
var nest = d3.nest()
.key(function(d) { return d.school; })
.entries(data);
var xLabels = svg.selectAll(".xLabel")
.data(nest)
.enter().append("text")
.text(function(d) { return d.key; })
.attr("x", function(d, i) { return i*gridSize; })
// .attr("y", 0)
.attr("y", 0)
.style("text-anchor", "middle")
.attr("transform", "translate(" + gridSize / 2 + ", -6)")
// .attr("transform", "rotate(-90)")
.style("font", "3px avenir")
var xScale = d3.scale.ordinal().rangeBands([0, width]);
var yScale = d3.scale.ordinal().rangeBands([0, height]);
var colorScale = d3.scale.quantile()
.domain([0, buckets - 1, 1])
.range(colors);
var cards = svg.selectAll(".school")
.data(data, function(d) {return d.school+':'+d.value;});
cards.append("title");
cards.enter().append("rect")
.attr("x", function(d, i) {return gridSize* (i % schools) ; })
.attr("y", function(d, i) { return gridSize * Math.floor(i / 5) ; })
.attr("rx", 2)
.attr("ry", 2)
.attr("class", "hour bordered")
.attr("width", gridSize)
.attr("height", gridSize)
.style("fill", colors[0]);
var names = [];
cards.transition().duration(1000)
.style("fill", function(d) { return colorScale(d.value); });
cards.select("title").text(function(d) { return d.value; });
cards.exit().remove();
var legend = svg.selectAll(".legend")
.data([0].concat(colorScale.quantiles()), function(d) { return d; });
// legend.enter().append("g")
// .attr("class", "legend");
// legend.append("rect")
// .attr("x", function(d, i) { return legendElementWidth * i; })
// .attr("y", height)
// .attr("width", legendElementWidth)
// .attr("height", gridSize / 2)
// .style("fill", function(d, i) { return colors[i]; });
// legend.append("text")
// .attr("class", "mono")
// .text(function(d) { return "≥ " + Math.round(d); })
// .attr("x", function(d, i) { return legendElementWidth * i; })
// .attr("y", height + gridSize);
// legend.exit().remove();
});
};
heatmapChart("heat_test.csv");
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
</script>
</body>
</html>

Copyright (c) 2016, Tom May

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

�PNG

IHDR��%*�\
�iCCPICC ProfileH ��wTS��Ͻ�@@J���z@��`#$��CH�� *"�2(��X b�� `�>Au,��ʻ�!�z��וּ���;��Ͼ9km�u,�0V C E���'�p�`�
�X;K�_�u|� ��MkY�u�� �n(YN�d�3>�X [(��Ft��b��9���Αq� ��8i��O�DG�">H<���@�DtZ6;�C�"l+�����O6���&�r���X!�<�͒�'��b%�c�X)r�9 �&��?K��Z5���9e�K�zM]d&g�E� OU�f9l��,�L�7�օb��Y拙ѳ̓�̲$-�1�i+B�����a�:;���L�\^t�,s�~��,Z)��ʎ��<߅�>��`Y��sc������}��py����$��>ܬ���f�E�r�d~sV牂�0}�?=��H)�W#�!��'�-`�(� �`\]��˒�]!\%���4r�V4��mcE���s��$�����{��k��������k����@��]3��8]��Q�t8��=0��Jj"w��k$3g���?a ăe� x ��J�փBP ��]�T��8��6p���u�n�@
F�K0>�I�p�B��d YB����P$%B)��@y�F�*�*���:���B��=h��B�aL�Ua���aG�K�8΅ �-p9\ �[���u�6,�_��(�"��Q�(k�
C%��Q"�ZT� U�jFu��Q7QR�+�'4ME���hwt:�Fg�עK��C�V�E�M�z � C�hc,1n&f&�S�)��cNb.ancF0�X�:�� ��cS���%ؽ�l'�;���p�8K�. �‰q��=�øs���#������� x~� ߈?��?�O��7B�CXE�J�#tnF�De�)уML%�'�������H$�ɕA��I夣�+�!�'�
ق�K^B�����;����(� ś�@S�P((�)�
6
L��:�J�V��׊EcE��2�\�2��7_)�L�|�XJk�*�N) *�+S��Ô3�K���*?W������pT
T�\P����T_*���ZG�DQŪ��2USU�U��������9�Ū�U��Q����Mԙ���[Տ��Q�<Ggcw��9�s�Lh�����ji�h����I���L�ܮ٦�H �e���Rk��%�WsU��e�-�{l�}mX�B;R{����q]�@��� :�t�u�uSuw��գ�y���v��{AS�1h�r�Eژ��~��D�F�W��� �`�A��#C�!�0�p�a�ᘑ�Q�Q�Q��}c�1ݘg�۸�x���$�d�I��sS S�i�i��C3���Y�Y��-s�9�<�|�y�l�d�����a [:[�-�Z�[a�\�V�V��dk�u�u������� 6m6���K��}^��o�N��u��T��6�uؽ���g�W��r�88�shwx�h��u��x׉��ɩ�髳��ȹ�y���%ѥ�e��J��Я�b\}\׹�v����&v;�����{�{���������{x�<j<��4�D���R/}/�W��oCo�w��3�9#�q�����G�s�g���w�o��/Яȯ�_�?ƿ��q�A@J@S�X�S���� LPH���A���l`��� �B�
�y��b�hAG(�#��Bㅂ�ma ��#�Q�ixf��؈��ʈ��v�y��QԨ�Q�Q�}��F?�1���t�*�.�m����+��.��h͢��Z����\BlB}��b�Ż�,qZR���Rӥ9K�.�Z����r����1�q���_Xa�Z�x3�*i�����~�����r=���g�ɥ��S<Rv���xe�W|_~�MjPju�DZX�������� |Fb�)�� Mpq��BKa�P�閹+sL"�ς��f��U�ƥGb&�A2��]��qe���9�9���U�6�z����j�j��<���yCkkj�Bk��v�3\W�n$?0��z�����m��P���Ƹ�:��?��T�P(*�侩�G��{7;l޳�[��Z�mqY�vɵ��~*�ijK�ޭ�[�m�nl���k��R������;Zw�v�|�k���e�eջ��%��� ����ٶ�K��v�OeK�v�檉������5W�TW����&���֤���@���u�u�?�n�ת/��zPpPz(������F�ƭMp��i���}G���7[7״��G%G_���˝c!Ǻ�ӏ7�0>Qu�z��j]�:��k��Ƿ��
>����q�W�_��?]yF��ֳijg����v�:�r~�ky׃ �.ܺq��Rȥ+�._�ft���q��U����ѯ�]w�����s�7��N�:���p�������?�������~7/�b޺~{���;1w�.����}~/�ޛ���'�?�<,z���������o�:K� � �<�z�`�=��?��<�<-{������ӣ�}/�y)|9���O�?�^��>��_=c��Fވ�L�-y����{��]���?d|��(�����'����q��M����R���kǷ�o�2���,k�@!3�� �ۃP���@T��w�=��a�o����3=�l�!@c>ш�yP�� �D��X�7��fFV���4A�6�5)��z��8s�NMM�MM}�G���t~��e�h>��5ғY�?��?��$1�i(�] pHYs  ��7iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.1.2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:tiff="http://ns.adobe.com/tiff/1.0/">
<tiff:XResolution>72</tiff:XResolution>
<tiff:YResolution>72</tiff:YResolution>
<tiff:Compression>1</tiff:Compression>
<tiff:Orientation>1</tiff:Orientation>
<tiff:PhotometricInterpretation>2</tiff:PhotometricInterpretation>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
��~!@IDATx�� �\Wy%|�����w�"��}�dy�Wla�-���` ����O��a�H`2���8b6&�$ �ْ%Y�b-֮ޤ��ں���u�Z�[�כ�^��^�����~�޷��i&�d� L Ӓ���2`0 ؀��20� ؀�F�mV�p�X��p�H���2`����42`nɶYYl��:`�Fl�M#�6+ˀ 8[,�Ȁ �i$�fe�A��8f �. #��'=}�'�� ���,�� ȋ��7�^7��uY$Nj�r,�~`��?�ǰ��7����W�!�� n�����@���Yˆ�����:�]:�:k$�k����VE��D��r���T�\�\Cr|��m�o��Q��1�e�p�s9�˘7�^��el��d9�H�������}R��v����A��j��i���Cww7zzz����W gJ�C�Y�87�ǹ3'�����La|UfIh�m�8�ЂT�k���3�%ܮ�NēD5<���x���ù�e^3�@*֏��DgG��a� GD�0EfG'�z:�0O�ө���b{�\��w8�q�7; U�t]]�yp�8ׯn� o���`*�f�}��7ÿs�D��w��d�?qϿ�N�iB"I�ho������J���Ct�'���A���3x��=��'��.\liC"�̬C'�贴H��?�>�{����o�F]������r�2O�]\�^<������������O��G˅�H���^.�����i�`�O��uTT���i7{y�����ƒ�=vm2�z:�q���M.��뜊
��:��~�-��W6�%{����ET.��[�����r��
����d���ߢ���x�P��:��q�������5�;y�����DsK�^o֎�� �Do3���_�?�e�gLȧ��A �u�!0�>�͗����_��?�o���b�9��K���log�4������/}I�\r�E�f��{�Vm��e QZAKS=Νk��Sg��������0ʱ'��ʅX�b)�;�Z��5%8q�8�/4�t};��"TpZ�I�����xb� ظ�6�N�ÒknC��z��O�yx�|�ՔM�vQ����ᯣ�ڏ�߱���I\� 8���ع�Y�:|k7lB�Щ���g�.�@tA5�ִ�v�MX\ ��O���0�~��=�ﻦ�=��}�9�i`��%�y� �Ѳ0| �-A���9߇v\�@<������� +��54�܋'�ۍ'�ލ�U�QU�#Ǜ��¥�nE�uWa����➻w��}7^�ŵ�����_�^���a˦�һ�C�Qː!1���|�r$:�����-N������O��+�cᚫPS>�͗�����X�w�ɳ�d�K������?Ǚ�^�Ѧ4�mYelvB�r����!�Oi���`�tv=�$�u�8Z��(R��Z[�~�fq�� Mt7�t� 6�]�c��QD"a�5�EO<���τ���?Ȋ[�{�mƯ��PS[���bԮX���Sx��c� �f�䐳�������m��$�j�B,�.îGk[O� �Y�-��4���uk�bIm�� wK"�ߌ������� b0�}j�OQ~��ti<�~��
�S(]X��֑_gK��|�5XX@0� �J�bIu%G;��\��� �H��n��ť���*��@��(=�ĝ�n%D55�Q[��c���e@�2~ltw��LQI9�oڈ�h��$Z;������x���u䐳���s;J������0?��oܾݭMXz�|�s�A���\��d����e}�=2#H��(]X�5k�bQ� �ͭ8���w�
$9�� SY /�h2}��!T,_�
���G���kH�_� y�N�Mk�q��ڈ]��xG�^}�v={?^l�a��*A�j��! -�^������ X��]'�����h�Ruu�^��u���R�N\h<�6� �x�%,�vn޺�=F^{�9����X�lz{y�k2�O �AK��W5�7�빈���8�)|�K_�滬�}��q�=��O�b�9�3�n8�?��M��&VW�~� ���=�E�W �7�9g�h��j8�{���ehF�N ����U%!t\hCa(:q��=�Mu�?�?�O�{��nT�?G�X���X/:: Q�h��"����7`j,����9z��eز~9����㨬�C�r'��1c3��E:�8s�C�-[P*�` ŋ(�<Od�0З._���
� ㆎk�4��?–���zf7[���[�0��d=zX�a6��3H� �X��6�gno9��~�ڣ������^�N�EbA ��rʋي0����X�Ż��/~�O��'�uW_�[nY�ݏ=�=M=x�;ފ��$�45������ �6 ��k �\�[9\|�珡��� 7`5GO����� -�Blڸ��>m�D�;���ݎ��Q�� �<�{���Mhl���o@�K��?�C]��{��Ċ������AUEn�~+���;*�ɝa��3���x����bU/��kV���O�O�Eox����q(/B&Qg�4�������R� ��� �E5E���܏�g[q�]��5��ę>��@�c��p8St����@oɭgBq ��7�iI��٩�'�C(R �}���G���SJ��dj��Y�Yz�D��&� /�@e'�n�L�;
�9�p�ҩ/*.tK5�\�Q��� _ ���� G�*�8�% #��o��+$�!������/,OO���G$<9ۇJȺ����$=���}���c�TUbvˮWC�Md!��8�|�u���g���=��;~Y��c� W\'���G�wl��d\��b~����$XV`��PCD`S�I�ܓ�&��M��q��.�8�Nbs
���P>� l,��#�I������?� XUlG�He�OG�#ಃ'{y$���I*����d�>���X^���5�p�����&��[v�2��8��}8/����ʵ�ң���@#�{��
7Uزn*��`q엃�9�ō;tt>ǩ#�ƙ��ړ+��u�}Ԁs랩s�*^N��"�%$�\G����,���]'��dO��+}����T��a��W ������%� >������C��G]e�xd�9*�gе��:�SG=v����S����lg�<s�ty‹�n����{�,�U�4~�W��s-|���������XZ[�ܸe<Gz�3x�Wy>�2ɀ|�-�un��7m�-�W��7���8� ��B�z<5<)���UT����^��T`�����#�&/�Nj��t��ۗ���ߊ7�s��)��ɣ�X�l����!/p��E�HI�����RS�W���?�
ҺT�s�|�����8n��z���w��;<M�( �G��'����9���+�?���A`�ïg|:"�J ]��c� O� �p�7�۞ڍ�PT���ܬc��<�q���J��{��ǻ���?;›3 gs�݋��]��}���o ޼a���]��ѽ.��{���ҋ�b��~��܍7��v���5v^�u��1|�;?��?�^��sx����u������+��{���*g
׾�g�F�Gμ��˸��?������O�)����d��7^�lW���C?�'3�]������F��P��u�g�wu.�CC��xW3 <9CF�p�JA'\^���t��$�^A�͠W�袚�j��3� ��T4��a�`�������A�x[BW[��q�抩�V\�����n�%�)p5n����N^��|�J^I��� �c{��K�a��"�/����8�����Jg�WI|ܱ�]1]M��r�*�/�m��tn?�R��10`;��a��U��?���f�ν�B=0�+�nv���+�LW�WH;�������97T�6�O�yzM����P!1��\��p����������(�ǨK����u��^�Z`[�՞� �`נ�<��������J��c�"7���GkQ�O��+��5 ��mLg���1���'���:��9�0:F:W�h�h�����v���:���\�ɏ@s ��������}������bV2��v���.򘦃�{�_�gL�����-ۖ�, ��p�H���r2P��#�X7ߜ�\�4�
c�c�;�co�i$��G�����f0��Qp�ـ�R=k�5+�7+�b��R�w�z֖kV2`nV��u�2`�J��-׬d�ܬt�5�Je�ܕ�Y[�Yɀ �Y�kԕʀ �+ճ�\��p��-֨+�pW�gm�f%6�f�[�QW*6�������sJ3�R��J6������i�{����Y�̴)g�H_�d���s�qf�qg"gO�ߒ3U���&סY/�d ƙ���( vqr��9F�|�.����{�E�=��΋�P�)i��pn .�~�wֿ���5�5�%��I��$�H7�c˄rs1(Aۛ)�P�I�I�#�['�����p Dѣ6�w�}�L95����w~��Q��� �)T��##�u~~�N�)O���$9^��tt�s͕�h^⢢4���,�M���Y�+è[���Ώy7�4��z�ݠ��q�}�+�C��dQ� sV1�7���K�$�� "�iΗ�x�E�h�� P��� �ܚ in
� D٢�P:��F�Q<6E����V +�J_!m�����B<���C���w�%�� ���ՠ�¥�)�����\���[3���U�Fd������q"���'��|�
�;��|��p_x�i~˯^ /���X��+F8���m��|���<s��c�0���X?��(Z·�p����x�뤢�ȝLk�n2]
�'�X�祥̴y��L� �_��o��Ź�]��� $"Ԓ�q��;կ��&R|=���| �� �0lҤ�AbM���T�0{��p��;�����"��Ua!_*g����E��n��[�h�ޯWQ� �jfoW�؉��P 9����P��U��uJ�7/���UF�y���hok1b��&�c'��׉0n�~ _�A��v���
mw�V���wU)�[��/Yi x���jll��h�i�T�B� �ƫ��G Sn��v����(�y{I:Z��[�b9�޲N'Y��I�$��f�!���KԼ�ANybԝOQ4'� [&�p�/U(pt�%�ޫ���(��Q]r .�s��˗ &Y<����vI���M��`��xCAY�F,�_�R䉛F�-O��:�B!���%�����?0�>8Vܔ��qp,�T^l@��k��q��s/e�)�ww�3|�~�d���b#G���XN�2�?i�$v]J� +�st@4��ڔ��:Ј׺�rdF!����M:^y%����r;aJ�W��� �QN��|N�lG����������w��?���5]���=C ���b<�����_������b�>�*����7� ��'N��}��?�!:�f����o|�ǞG߆�]����">�a W�H*��ū�����he �kO���i{ #�:龜��T_{�c� +��O����,�|�e�Z�6|���_��:��E6w �j�xc��g}*�2��"�y��� p��?�!f���p���M"E/���U�]|�I:Y�`k›�����S@]
`�<��Ʃz|�/ |��E��7�Dy!E:��'�Ws츻��N�`/B|�3����������Q�9����%|�?܊���l����t�x����/<��A�5ۖ�߷���X�0�!�G�[�+������Oކs{�� ���Jt��*\�O_���=����gN��{�_s[k�.D�G�.���r~x�w���~�.wʮ<ι��x���Jh����B&�ܔ�쮛�7��t�iD��sj�Ï�XzM��V�E ې���Ҽ�:�p�&���K�F��:�Ik%�g���.�1R���� O��:�nv�or��9l�<-a9؀HM�}�{��:.iZ̠H�z9*x�Y�{%��曆�̭ `�z�b���(ç�3gm 8l�e� '9ȟ$$�N��8e�V�����0�l� ��ΕL.��o�c6��'�@�]=����ygS<g�2v������c��w�P�y,\b��6�%����`�X�;���!.�.
�O� ��� �Q�r�5BC�����\G��u�����!f�0Ut�D��\'pS��ŵ �{l���*` �Nl�M'�6�yπ �y_,�ɀ ��d��5��7變%`:�7�lۼ�=6��}�L'6ওm�׼g�ܼ����d��t�m�� ؀��U�0� ؀�N�m^�+;�ܧ�}vsfv��Oû�����"��ܓ�Ӽ���L��1��8�u���΢�.4��TX�Ho���8�2*�͕J�3��'��l����1+��G�e0��J�p��W|�!C�h6���e~j�I'��L"&� ���9��a/9�̝5k��������"Hc23Ș���0$Wglr�̟a<刱�j��s3���К��s_g��0^Z�C��yȤVJ��������v ?)�;��h�q��F��!G%q����46/����F]˩��=�vbO� W��#~���SԠT<P���<Ť��C3-SŹ�*P�h��&ce��G�&�h+�����BP4��lp�N>YL��D��|7=\&mJ�-]ʝ��ꍬBb� �SբC�( �TW���$����)x+� QVX��p�\��{���y� �I*�>'����A(�-a���N!�j*E>�<����G�^V��)�-)���ۛ���S��>L)�ŷn����n]�{޽
��S3׫�͗7�vm����h������>�������^�}��$��+7��� ��"|�#+�g����a@f�w^؂��j�p�u�w>�6<��p�05k �^� �șN��O}�W�M&O6� N7�ɑɓu^����s�q�Z��`����~0Phr�r�L���$, >!0� IR���9���bDB����;� ��T�J(5����\<�L��� �E�<�����L��I��%�^\��L��X�Jona<� ���g���K-F^�O#�h4jd�<H�vd�XU�L/Gq���Z���3Y�R-c��L-�ʓr�wt����rTE����.
��3����H��ŵX\E�@���COg/; =�g��)
�TV���̅x'O��С��H�P��/tU٦]}�J�a:Kb���hm�H.mw���/�A�^\Z�[o^G!�B�o���/�&��~�݃�,z��\�6-æ u&��#�h�l��"����� �¢n�n%�K���!7�(M�J7�nپfM�m]��&�%�<�Ӭ��� �$z�;yD9oV����桊C���V��oA}�I��y��*��K\d�[U3�k�n�#���=���.��GS� X�>�Ԋo��:<��)����p8B^�A{�;�v��L㱿� w\����/��Oq�C>e���7.�ӏ���r���������xn
�ď��^��]�������� h�|�c;�נ������|�1PR��{U����$�����{=������/�뒛W^Tf�������T� ��M���x4�`���7*c�~d�R�1��Me�d[�0����T�e�Xm_��'��LT◽�x'{#�b³�jn�x����Lq���DXĎ����6���ԟ|r_Z.vQ�9�_>t7�6�(/��xQ�;u���:�h;���Zt�f.@��&�G��Fi��;���j.��r��W��<h��&�z��H��e ��c���p�3���Q�.��+���ٚ~�9�:����� �Y���F���u���O�k+�(�π���MhH�(͵���D������*:W� 
z �D٫�B���[��-�3�I�X�K8S!:���n^��,H�G��:���˃��7H}G���w�Po�����l�=��O2M�2���
? ��ٸ��t�2��fh*�.�󶌆��D�����$��A| �� n�K��.���G���r�n����f��x/O��}�V�.�f]��C�Z�C20�� )������ �i;3�e���������m��q���'�� 3�>�6��ZI�^�u|6NH��:�0|��̚e)�sm��bŮ� L6ঈX k�ŀ �\��u��)b��ka-������20E ؀�"b-�e 6�r�b�Y��pSD��� �b�\.V�:��1`n������\ ؀�Ŋ]g�"l�M��2��p�Xg]�����:�7[�r9�
8:�g���w}�a3K\���x; ���r���r�d�9Ӊ26�ۇl��J�J�̼�2�k�\����~`_����)Q� �n�fR ����)Ĩ�,!g�\���0�g����9H���ڎh˸������h�a����5��k�#BT맦�,���P™ڪ\�19V������#F�N+Ҩ,u&]ͽ d�m�=#�� v&��v���I���p©&��v�KXi9g{�q�sʋ�V�L����c;�/�{�j{�$�C��)E�bE��b/ y禴X��zC�J���ldRגFH�h�\����9��<4@1�(E��N�ylΝ@v�
D�� ��T��Y?e����I���2R���b�p�rʿS��8�D�4�Y�A�YW��OKs�n��`�Zr:nuյB(*����,�wlB��t��BB��^�� O��$��� "� β/D$J���c���j��$��J e�'��S9p�v�*�/e�%�vD$BŴt�|s�J�p�J�SJ�%�QU��,{�z�X
��R��T?��� ���d��$����X\�������Ԃ��X���� q�^���*�I��;���n���)=I�Eux�]�3���@={ⰑX�j����y�l�~%�A�������(dOᥭ���K�W��o��U%8F]�%~A��
봕1J)ܼ}-�}�Q���3�q��ED<ڮ*gT�����MX\S�3���ӟ�c��3R�<$�O,�¶kV� �ߤ��E���
���ɶ�)��v��B�Z���7Sc�O�$á�x1�����P�Dvd���Cp��Z�:5(�e�9ȗl�������ݏ��N.�:�u^_��F��� 9C#|�w��U^�������&Q�< 猣s0�U� ]����]��d���N��7�H�����+���E������&DI�׶V}$eS� +q��:�h���ε����N��y��ya)�融XR���_��OP��8s�/9���[C[������|3�[����{8��(J؛:2��1���d"��� ���cX�v��;��?����<�K{�9V���P����Dww _��O���Π���^��ؤ���(��wc���x�S��מFA�Cmϗw;D����$������GoSw$���D0W����/������`P�oA�M8ڱ�'}���E�~l[p�<c�c��F��%�Q�ˬm��չuO��y��[n��;����ꪊФm/�؋��6���wn��6�PX�CD�j�_�A�TjCg�/���{p�o�����&d��� O���~�S��M7�_:��*��� }gz��+hh|�R|���b��8����]Z^��W��G_ފ���o�G?�#�ݷϠvK{���;�إ%l0tc�+��x.4���@����8qw̦�D��)#� 3 ����hd���s%�:� 8_�R��b���N6{�+0�n-�yD [�\L�v����/�ņF�L�:\T���9�T��q�Tv�_�bN�o3�.+As�(�`<�3���V���U</'�\QS����,[Y��XzIⵂ6�_J�5���!,�.DI����b^�g��µR0�s���U�P[�w��Jm�F�}��O0)cZ
� ��*�������� |�9�pe����ge�S}�l�Q��B�-��s*���?�2a�c$uq12����S�ܫ������5zV�ȝ���2߽�#�vQ��@9U��E&}��$/�g�m��Lɗ/���,�p�&�����#绝��T���
a+ ����Oƹ�w,�)�ap#^|�F�&�af��i7L���q�}�}�iWp��(��i� ؀�N�&�l��_ے�l��'X�6�揯mIg6�f�� �p��׶���p�� ք�À ���k[�Y�� �Y�k��a����-�,`��,p�5a�0`n��ږt0`.'���z&x8dģ��F=t�5�Y�a�nJ�#P~�_RHZ�-F��ܡI��g��8f��0e&�
g�+�T �S��Lmq$��[�D~�n�M�DY�vΫt��0'?�&/+y)y������Tάo�z-�S���d�Z��q1�3fu��F����`
�I��e�TNޘ:P�V�8�gd���&t�w)7h�K�/S�K���tcՂ�(��Q�9�o���a�mh7X j��Խ �I����u�O⹲��r�i,al?^�GI� �� Q�I���!�f|����L U^��I���9�N��3{����Tq,��faУ�ė�����
N�#�N =N;��屐�����c�Ƚ'�������H�b�HQcЇ�� ��$�j~nQ5����4[��&S����z ���je5���5�r��_5R�16,�@Q������?�"-^̏*C��2^������P\R��kV�� ������Sٸ�G*�)c[��f����ݏ�������:��a�y���Fyy�.�W-��f�5�ȗ�8�|�z�S'��ƍ����
;��W���'q��Wa�j���@S��Œ�0bl�)v:d��"�?�めr�e3��D7�#�CRa���
X� v�B0}Z�)�����cr4��Տ��T"��v���Hu� �Bl���!ΐt��4�?,=��7X��� 8������8�y^#SvJO� ul{�S���Z������+&��x�o��AE���V*�uu����g���*z��PKW<�D���\��&`�軈w�U.(�J����ݲ(����� \f@d�6:�Ķ�)��P
��$�|�@�D�#����wǫ�� ����d��d��Q���p+�����Pu���SL+ �v9>��v�Fxk�Q�D��� 
M%s}�˶��f�FZ8�"N%j�.�5�\�w�� �tlW�}]��m�د�f�O���0����E�x� �C����?�hq]R��k��h"O�^�P��̳�d��O�R<7+ )7S!�Z4�����D�^r��ۥEC�p��2y��J|a�A�ͅv��3���*�����³{����)�ng#/ ��e��Zԋ߸ 7P�|���7^����o�x{��۟؂�|��8t��m{�h(�7���m���ޅ7޽�'�?x��a��K�w����ღ�_�����9~$��et$l�V��?����7���"��ǟ�:��|j$�5��w.ï��p:^�i&ز ���!`vP\~�d֤�t:p-:��" Re��[�����%�ї��`��ځ����ݏ7�M3-7[��Z�9�:�N^�x;n��|E*(���N�<݂���0�N��;j���gnh<U��o��7�4����c�z�"t�"�������Š'ގÇ������Ob��U���&���%��vO<|]��hi!�x7��N�vČ_��&�WU����v��ޗ�����e,+�m����?�4���]'�F��,�(�k9Ws�;���~kxAY�L���4��%�9\u���bq����)��,o{q$�Wë�bE:��t�M�N]��d��f�����:��eȟzI��󝐹���-3�!~W�w��<�"�CuEG�S�Nrs^S� '3�K�=[[g �۽��ʲ:#�7HjG�Xo�a{Խ"���~$dNY>�ɻ/r�/P~����q�ͷ�5.M���Tw}H�u��9e�: B3e����u�3P�ҌX|�&�q��IO=[v�MCGB��U�΃Z��]<-;8x3p��23�� ��[��@^��2�,M%��aۀ�Y0��� ؀���2�+6�|�ӂY�f����ح�_��+��2066����n� �ʀ 8_�`����76?v�e�Wl��J�� �̀ ����[-�2`�W:-�e`ll��͏�j�p��i�,c3��pWj�c�S𤽞#n�2��p�e0�ȇ9��6`��r��x�s��K� [2�%��p���%�;Gs�F��$�?Gi�C�;�K���w���g�]�Lx��q�P� r�T\y�2P4����&�jJ�2ч��3�����3s���WдS����J��?^�^8�C)��Ө�r&?�5��S�q��c��1Q�ɮU����4��f���Í��ls����^���� �lom�%�7� ��� �J���p
>��� �˖ �픦�� �Q���� �S�$;R<C;池I��%������I�PGn8��s
�f���ʐfM�+��;�5�ܝI�a�)5���)H���t �f�k��<2�XQ#<���
9տ҉�:f��ѯR��b���YW�cxe�U�V���h�OpΩ8!Z�6�c�~�y�6r)��%m P����4M�I����u��8� ���,�
��"�2š-Z²ҵ����P�J�ؤ|�p�U��-GE���a��ֵx�t#�X �A�d��C�>�n� � ����?ۅ��N
�zW��s����qǍ��Kƣ��}�%
��2�2yj{z�����EYi�߸_�����arS��΃��,)���½��ͨ�����_/ىHH��<�Ɣ���zRx�;���������_�>^��2�1jg�~�̲lOs�w |~�C�0�~擷Y�)�q�gۻ�x�n† K�K����&�ɔb�}U��R֦%s/��� �z�1J~e� G��L�� ����*Ȕ�g�Ϯ�C�saȗ4xh9O�\�e�awv�fm��C��Uf[:�N��Sc���
m ��d���l��혯��I����
�K�?�g�7��� ��=�pn]J�o[�W�.@K �v�B��F�Nj��c�\.-/��ك�s�z�����˻�5���#f��Y��UuTK���p���������S
i�O��W�&���v��T��{p��ѝ�T1�n�B�~y�L
�r�<��qdal�*�$e��ɋ���֯���bo��#�O2�ś� ��N�7�\�z��9_ji �KGS6 ɜ+�</ٻ
h��W�������"{�v,l�tzY���"�u�Q�r��!�#($�Ke<���=G�߇� Ϝk�ǎ�ŲH!�{���9�h�y��Ն�x��%x��A���J�_'I�C�m�RE5�6��ÇOa)�C��W��T�.�"�omY��<����jw�G��Q:}������X]�ƞ>��'��0��{V4[�!kC������o�}GN�OZQK|� �h���)��6)+Q��dwdR`q\P`H�O�й�W���N~���`��f�b�y�Gt�T'�� 1i�W(��V�E�I�$�A{�A�: id^ฑ���9�XQ*���T�Z�r>�S T�#�1go5�oO��uA�.�n7��~�l'N���8�A���x��b<B������r�O� �e�E$J}����K�[?Ļ�ׇi{<�4#�q��j��G�e�8�����ӥ���_Y��� N-�n3h�y�%ùNyxMҽ����VWy��ĴΙ�?~+/����m&�8������L� �W� ��5�g��va7�� ���5�8���nĺx�
���B�~珔�H�� -�#X���-�;�|���<�&;y��<� ٮ
̵��Os��ر�W;���^p�����6�.[�6�懟m)g 6�f�#��p��϶���p��֌��� ���g[�Y€ �Y�k��`����-�,a��,q�5c~0`n~�ٖr�0`n�8š1?�7?�lK9K�7Ka͘ �`�M����Å��s�� 8���<a���F���ʗ�b29��Ifg&fM�s\�5'Ι��cd��u�
�<����n���#y,�v�#�q�&0g|���<ҷ>�헏Y�5��䚜�Y嚜���9T^��Q3�R-�pqN7.�,��;S+�Ab�qֱ,Md�2Ge{���-')���"*�9A9zI���I3�����%a�d�ij/g�s]15G���N]J�o�hR� ��a��k��gx�I)���Ri󚢲]v�~�3��r�B�#�A�Er�������4p�i����P��&�F���ڈET ��𛕥�Ƕn5�y��8��}aI e�X^)��>jG��h�ҊR�!��� ���BF��[�lsi5"�B�Q�H�?�O�(V-(3�J�VW���|���������b�Q��|=%��~�PUn`���o�uaO�T(O����F�\U�L^.�KV[
1�3YIQKbC�x��X,%Z��[
��2R$��]>/���P9Dj ܹ�^��a��^�3v1�kW��
UR���Ԋ�U�wކ;��+:���*��>�O�����|�Qk+k��Ub0_n���n*��w�I=O)�4o��aj�� ı���Td���p)�l�)Ǫ
�[:���K=�ܬ��J��� ��~-��ǒ���V R��T������/�&5�k�1��9��*�uQ��IrD2+|�R�i�4���Ӆ��[F8թK~�Ά��K�ٱ��pҵ�]k�#[����.>`Kr��p���Fn��$`�v� �R=������]�[��ZN�����VxH��—�JR��CK�|�819t/�uq2�Z,�p�ݖ򣠫��O]J�!]K����?YJU,���A<^����t&Z��!ۙ�/�!�A�"�"Z*)A��iX��u�'*�����<�}�& ��$��(��{��C�F�B&��}���=�P�&Y�Лx���p-�`�(_#�H��o�.�^�؅�D�tmwJ��_�V�S� �cat^h:��;º�� ��k��'@��A\WY��\s���t}fdb6ԥt�%��`�S&O-��
k�Q0��� �4R���������k��j0�I���'ۉ�K%��o�7wr����Ӳ����Ρ��u �����`����p�X�N[��_ydDj��3��[)bۅ�d ��R3���CT J�_�?knOK���+ E� �!�!��0�G�`�s�z;��ӲLyR;���T�˘����w^�x�˓"yԝ�!��%���Q�>�� lP��lvN��I~��� �z3����\R(�=� 7����K��+� 3=�$�c?H����GN������@�I�_a��k���}��$nT��9ˀ��j�1m�ۀ�6�mF�g�jy� X����M�6ˀ�g�e`�7�d۬,6�l� L#6঑l��e�����id��4�m�� ؀�u�20� ؀�F�mV�p�X��p�H���2`n^�wͼ&aZ ?��s�pX�L�g����i*���Y�˯&7��4Ss���Q��a#Is�2o�뤙����!3��V��0�==���;���QdIڠ~&�g����'���:����S���`��&����<�!������Ρf�[�Q-�'��0��!9D���'�[��_k�q~ ����G�J�������h��ߒS�2�~k?���O�{�����I��
~KN�/�Ż8�RתRfL~�OL� .��e���2r�KiY�RU�(��xD�) '=q���ɬO�S�y=�K(�X���2�8��A��ObA�` �����u�)�Xh�D3�%_��G%�LbG�2,���d�F�N�󣏕 ң��� �����UY�G�M�~�Km�#�*�y�C�Se�k����A�� VT�?I"�T�R� �T�_���ة�6جĎ��?�K&/�ڛ�z�� M^-. ���#X�g )[��=&x�r�l�*��OUS�;l�z3#X4�ʗ%�����o_@�@ .��!��-~�?{�2��j���w���`�o�|��`7ok�-�<f`��1;�����3��206��b�n� ��@���I�ƓR?�K'��=`n20�+��h27���z�2:�slFL/���zb���[��Υ���H�3ྫlF(�|��d� �ӧ�����Sϥ�¹�_"��̭:�sp�-�� �8�£
Q�gϕ��-�m���Z����L��AV�>.��7s� ^����O49-�p��lNaVcIDATP�@��Mor����^.D��v�T[\��sx0�7D#|I�ܱ]$�Iz��iÚK�
��+"��y����Zr�E��['�"��᣺�l=���s!9������b*�\�]��M�1���7 r`1�� $�ŧ���E�\j��*�ű �6�f�z��|d��|��-�1`nƨ��Gl��G��2���9+c�M�k�\����7��cN|�p�z��s51��|77��hY]�f�Ε��jt;Hv�[��9響�@��r���Ų{N�8��ڬ�$麽��s-�����۬�J�5 ��$�b��Y����I{rOŃ(�� =�l���8�z��Ⱦ� �UK�� ��4�h��Dη�͑�w�H]Q�`���L�\j�D���c$Ss�o��:JU��ANA.�2~��@����9`r��v�@6v�20� ��|�).ߔ����`JKd�����M5��2�ŀ��E�]� L5�"��4�\�}�I��|��RN4��w�����߬8�[�e��(��D"���NͲ�؞��tzp�6'�G/t�A?�f-s.�]��c���ݮ�%����A]���4d�(v���@�\M6w�ik��� ��qτ�3��� �<�t�2l\Qm.��>~t�*s|�/�܇p4���Uؼ�n�'*��ߧ�DO�[�ՙ��z�Q��/�z�!t�wc��v`Yy7;e� ��6֟<� �\�y����F%�����8x���|'V�Fq�C8u�e� �|�&,�ԋ^�����]<g����5�潻~�^A�/�~ -�qD*��W���18����A���Z�\X6#~���uK�����󪹧��u��y�+CuOV�ی ��x�ɲL��%K0Pϼ�
z9)R�M{��Aξ��۰iu��(*�ݗE��3�\۫-F��$�|�%tP�`���8#��#-Ei1��;/����FAi�nو���7�qG5u�4��w�bw�6�}�� ��e��kp��nDwSZ.����X�m;�Y^��N��f� 3p@ii)��atҙ�)>E���j�
K�rQ �؍���eT�'���$�.ڞL ��X�B"\B��FV��( �/���2D��(++AwO7���F��:M^0Z�U�7aAY�� N5��]�p�O?�M-ݦ�]�;���P^^�޾���ԉI��D�`A�[�!XV��Eը����cGq���P��=�4c���C�W"Y�ox�M(��UJ$�i5��'.��o� ��� ���)L.���4�q�����Q�ox���(����>*A��S8��Y�ȱr:�����ן>�'�
qϛ�Bm%�1&�:lp�x����-\�
���v�P�ah��Zpm�X��c����`im��޵]O����W���\}�f���+�܂m�!1�@!G3U�g(_��0hb=li(�7Ѕ=;w�BG�����r����w�.�;|ˮن�B�d'�����8�#���4"���� �;�N��N�1���O����2>�h�5���}9c{*�X,ɗ&�qh��8]ѱ��h��!����}��և��^Eo���G��h+(��u+3�O�'L[ŗ0��L�|t�n?� |�Ώ��� ��B ���p����8t�� �q�c{z������X,��9��D��HeVJ�u���E T�� ��o�$]� @��݆���4p�FV�{�`$<c-jN�h{��'y�Q��06C�K��G8� P�K ��I%��K���e���)�a8��FV�*,D��o�I�*�J�J� {�A�7��1��[T����y��ӻ<�7�E���ʀj� �~�a&M���c��:��q�HR�a�h�G�?}��VV��>��ca"�_��ς@�N�N�g>�ƫv�e�
b`G�W��(�� 2�J<���IEND�B`�
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment