Mercurial > hg > Papers > 2015 > parusu-prosym
changeset 22:fe9d38d95c31
Add presen
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Dec 2015 17:02:46 +0900 |
parents | 9710a416133b |
children | 03f1b9c4d84e |
files | presen/prosym.html presen/prosym.md presen/s6/images/logo.svg presen/s6/js/jquery-1.11.3.min.js presen/s6/js/jquery.microsoft.js presen/s6/js/jquery.slideshow.autoplay.js presen/s6/js/jquery.slideshow.controls.js presen/s6/js/jquery.slideshow.counter.js presen/s6/js/jquery.slideshow.footer.js presen/s6/js/jquery.slideshow.js presen/s6/js/jquery.slideshow.ready.js presen/s6/js/jquery.slideshow.transition.js presen/s6/js/less-2.5.3.min.js presen/s6/themes/blank.css presen/s6/themes/print.css presen/s6/themes/projection.css presen/s6/themes/screen.css presen/scripts/prettify.css presen/scripts/prettify.js prosym.mm |
diffstat | 20 files changed, 3983 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/prosym.html Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,209 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="content-type" content="text/html;charset=utf-8"> + <title>有線 LAN 上のPC画面配信システムTreeVNCの改良</title> + +<meta name="generator" content="Slide Show (S9) v2.5.0 on Ruby 2.2.4 (2015-12-16) [x86_64-darwin15]"> +<meta name="author" content="Tatsuki IHA" > + +<!-- style sheet links --> +<link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection"> +<link rel="stylesheet" href="s6/themes/screen.css" media="screen"> +<link rel="stylesheet" href="s6/themes/print.css" media="print"> +<link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection"> + +<!-- JS --> +<script src="s6/js/jquery-1.11.3.min.js"></script> +<script src="s6/js/jquery.slideshow.js"></script> +<script src="s6/js/jquery.slideshow.counter.js"></script> +<script src="s6/js/jquery.slideshow.controls.js"></script> +<script src="s6/js/jquery.slideshow.footer.js"></script> +<script src="s6/js/jquery.slideshow.autoplay.js"></script> + +<!-- prettify --> +<link rel="stylesheet" href="scripts/prettify.css"> +<script src="scripts/prettify.js"></script> + +<script> + $(document).ready( function() { + Slideshow.init(); + + $('code').each(function(_, el) { + if (!el.classList.contains('noprettyprint')) { + el.classList.add('prettyprint'); + el.style.display = 'block'; + } + }); + prettyPrint(); + } ); + + +</script> + +<!-- Better Browser Banner for Microsoft Internet Explorer (IE) --> +<!--[if IE]> +<script src="s6/js/jquery.microsoft.js"></script> +<![endif]--> + + + +</head> +<body> + +<div class="layout"> + <div id="header"></div> + <div id="footer"> + <div align="right"> + <img src="s6/images/logo.svg" width="200px"> + </div> + </div> +</div> + +<div class="presentation"> + + <div class='slide cover'> + <table width="90%" height="90%" border="0" align="center"> + <tr> + <td> + <div align="center"> + <h1><font color="#808db5">有線 LAN 上のPC画面配信システムTreeVNCの改良</font></h1> + </div> + </td> + </tr> + <tr> + <td> + <div align="left"> + Tatsuki IHA + + <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> + </div> + </td> + </tr> + </table> + </div> + +<div class='slide '> +<!-- === begin markdown block === + + generated by markdown/1.2.0 on Ruby 2.2.4 (2015-12-16) [x86_64-darwin15] + on 2015-12-22 17:02:30 +0900 with Markdown engine kramdown (1.9.0) + using options {} + --> + +<!-- _S9SLIDE_ --> +<h1 id="section">画面共有を利用したコミュニケーション</h1> +<p>授業やゼミ等で、それぞれが PC 端末を持っている場合では、PC の機能を活かした コミュニケーションが可能である。教員が操作する画面をそのまま学生に配信したり, ゼミ などで、発表する学生の画面を切り替えたりすることを可能にしたい。画面配信システム TreeVNC は参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる 仕組みを取っている。そのため, 多人数が参加しても処理性能が下がらない。また、ツリー のルートが参照している VNC サーバーを変更することで、ケーブルの差し替えなしに画面 の切替が可能となる。</p> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="treevnc">TreeVNC</h1> +<ul> + <li>TreeVNC は本研究室で開発している VNC を利用した画面配信システム</li> + <li>参加したクライアントをバイナリツリー状で接続することで配信コストを分散させる</li> + <li>スムーズな画面の切替を行う</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="vnc">VNC</h1> +<ul> + <li>VNC(Virtual Network Computing) は RFBプロトコルを用いて遠隔操作を行うソフトウェア</li> + <li>サーバー側とクライアント側に分かれており、サーバーを起動し、クライアントがサーバーに接続を行うことで遠隔操作を可能とする</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="rfb-">RFB プロトコル</h1> +<ul> + <li>RFB(Remote Frame Buffer)プロトコルは VNC で用いられているプロトコル</li> + <li>自身の画面をネットワーク越しに他者の画面に表示する</li> + <li>RFB サーバと RFB クライアントに分かれている</li> + <li>Framebuffer と呼ばれるメモリ上に置かれた画像データを使用して画面表示を行う</li> + <li>RFB サーバーは Framebuffer が更新されるたびにRFB クライアントに対して Framebuffer の変更部分だけを送信する。</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="vnc-1">多人数でVNCを使用する際の問題点</h1> +<ul> + <li>多人数のクライアントが1つのサーバーに接続する構造である</li> + <li>そのため、サーバー側の処理性能が落ちてしまう</li> + <li>ゼミ等の発表で画面配信者が切り替わる場合配信者が変わるたびにアプリケーションを終了し、再接続を行う必要がある。</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="treevnc-">TreeVNC の構造</h1> +<ul> + <li>Java で作成されたTightVNC(Tight Virtual Network Computing) を元に作成されている</li> + <li>クライアント同士をバイナリツリー状に接続する</li> + <li>バイナリツリーのルートのノードをRoot Nodeと呼び、 Root Node に接続されるノードを Node と呼ぶ</li> + <li>Root Node は 子 Nodeにデータを流す機能に加え、 各 Node の管理、 VNC サーバーから送信されたFramebuffer の管理を行う</li> + <li>Node は 親 Node から送られたデータを自分の子 Node に流す機能、 逆に子 Node から送られてきたデータを親 Nodeに流す機能がある</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-1">圧縮形式</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="message">Message通信</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-2">共有画面切り替え</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-3">問題点</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="quality--speed-">QUALITY モードと SPEED モード</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-4">マルチディスプレイ</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-5">複数ネットワークの対応</h1> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="wan">WANへの対応</h1> +<!-- === end markdown block === --> +</div> + + +</div><!-- presentation --> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/prosym.md Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,52 @@ +title: 有線 LAN 上のPC画面配信システムTreeVNCの改良 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 画面共有を利用したコミュニケーション +授業やゼミ等で、それぞれが PC 端末を持っている場合では、PC の機能を活かした コミュニケーションが可能である。教員が操作する画面をそのまま学生に配信したり, ゼミ などで、発表する学生の画面を切り替えたりすることを可能にしたい。画面配信システム TreeVNC は参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる 仕組みを取っている。そのため, 多人数が参加しても処理性能が下がらない。また、ツリー のルートが参照している VNC サーバーを変更することで、ケーブルの差し替えなしに画面 の切替が可能となる。 + +# TreeVNC +- TreeVNC は本研究室で開発している VNC を利用した画面配信システム +- 参加したクライアントをバイナリツリー状で接続することで配信コストを分散させる +- スムーズな画面の切替を行う + +# VNC +- VNC(Virtual Network Computing) は RFBプロトコルを用いて遠隔操作を行うソフトウェア +- サーバー側とクライアント側に分かれており、サーバーを起動し、クライアントがサーバーに接続を行うことで遠隔操作を可能とする + +# RFB プロトコル +- RFB(Remote Frame Buffer)プロトコルは VNC で用いられているプロトコル +- 自身の画面をネットワーク越しに他者の画面に表示する +- RFB サーバと RFB クライアントに分かれている +- Framebuffer と呼ばれるメモリ上に置かれた画像データを使用して画面表示を行う +- RFB サーバーは Framebuffer が更新されるたびにRFB クライアントに対して Framebuffer の変更部分だけを送信する。 + +# 多人数でVNCを使用する際の問題点 +- 多人数のクライアントが1つのサーバーに接続する構造である +- そのため、サーバー側の処理性能が落ちてしまう +- ゼミ等の発表で画面配信者が切り替わる場合配信者が変わるたびにアプリケーションを終了し、再接続を行う必要がある。 + +# TreeVNC の構造 +- Java で作成されたTightVNC(Tight Virtual Network Computing) を元に作成されている +- クライアント同士をバイナリツリー状に接続する +- バイナリツリーのルートのノードをRoot Nodeと呼び、 Root Node に接続されるノードを Node と呼ぶ +- Root Node は 子 Nodeにデータを流す機能に加え、 各 Node の管理、 VNC サーバーから送信されたFramebuffer の管理を行う +- Node は 親 Node から送られたデータを自分の子 Node に流す機能、 逆に子 Node から送られてきたデータを親 Nodeに流す機能がある + +# 圧縮形式 + +# Message通信 + +# 共有画面切り替え + +# 問題点 + +# QUALITY モードと SPEED モード + +# マルチディスプレイ + +# 複数ネットワークの対応 + +# WANへの対応
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/images/logo.svg Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,683 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg3004" + version="1.1" + inkscape:version="0.48.5 r10040" + width="825.635" + height="268.76" + xml:space="preserve" + sodipodi:docname="logo.pdf"><metadata + id="metadata3010"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3008"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath3018"><path + d="m 8.504,8.504 643,0 0,198 -643,0 0,-198 z" + id="path3020" /></clipPath></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview3006" + showgrid="false" + inkscape:zoom="0.38152452" + inkscape:cx="412.8175" + inkscape:cy="134.38" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="g3012" /><g + id="g3012" + inkscape:groupmode="layer" + inkscape:label="logo" + transform="matrix(1.25,0,0,-1.25,0,268.76)"><g + id="g3014"><g + id="g3016" + clip-path="url(#clipPath3018)"><g + id="g3022" + transform="translate(102.5332,135.6518)"><path + d="m 0,0 -11.408,22.813 -14.75,0 c -2.032,0 -3.681,1.648 -3.681,3.682 0,2.032 1.649,3.679 3.681,3.679 l 19.299,0 L 6.585,3.292 C 7.494,1.473 6.755,-0.737 4.938,-1.648 4.41,-1.914 3.849,-2.039 3.295,-2.038 1.944,-2.038 0.645,-1.291 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3024" /></g><g + id="g3026" + transform="translate(122.8477,70.1152)"><path + d="m 0,0 0,111.942 c 0,2.032 1.653,3.679 3.682,3.679 2.034,0 3.684,-1.647 3.684,-3.679 L 7.366,0 c 0,-2.034 -1.65,-3.681 -3.684,-3.681 C 1.653,-3.681 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3028" /></g><g + id="g3030" + transform="translate(51.0649,133.6162)"><path + d="m 0,0 c -2.03,0 -3.681,1.648 -3.681,3.679 0,2.035 1.651,3.684 3.681,3.684 l 121.941,0 c 2.034,0 3.681,-1.649 3.681,-3.684 C 125.622,1.648 123.975,0 121.941,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3032" /></g><g + id="g3034" + transform="translate(102.144,70.1152)"><path + d="m 0,0 0,67.18 c 0,2.034 1.65,3.684 3.681,3.684 2.032,0 3.68,-1.65 3.68,-3.684 L 7.361,0 c 0,-2.034 -1.648,-3.681 -3.68,-3.681 C 1.65,-3.681 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3036" /></g><g + id="g3038" + transform="translate(102.459,68.6269)"><path + d="m 0,0 -18.358,41.521 -16.469,0 0,-0.002 c -2.03,0 -3.679,1.652 -3.679,3.684 0,2.034 1.649,3.68 3.679,3.68 l 21.263,0 L 6.733,2.977 C 7.556,1.117 6.712,-1.057 4.853,-1.881 4.371,-2.092 3.866,-2.194 3.367,-2.194 1.955,-2.194 0.605,-1.375 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3040" /></g><g + id="g3042" + transform="translate(141.7153,70.1152)"><path + d="m 0,0 0,49.696 c 0,2.035 1.65,3.682 3.682,3.682 2.034,0 3.682,-1.647 3.682,-3.682 L 7.364,0 C 7.364,-2.034 5.716,-3.681 3.682,-3.681 1.65,-3.681 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3044" /></g><g + id="g3046" + transform="translate(31.2803,66.4346)"><path + d="m 0,0 c -2.032,0 -3.682,1.647 -3.682,3.681 0,2.032 1.65,3.678 3.682,3.678 l 147.246,0 c 2.035,0 3.684,-1.646 3.684,-3.678 C 150.93,1.647 149.281,0 147.246,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3048" /></g><g + id="g3050" + transform="translate(164.7226,156.6235)"><path + d="m 0,0 c -2.03,0 -3.679,1.648 -3.679,3.681 0,2.033 1.649,3.682 3.679,3.682 l 49.701,0 c 2.028,0 3.68,-1.649 3.68,-3.682 C 53.381,1.648 51.729,0 49.701,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3052" /></g><g + id="g3054" + transform="translate(165.4023,87.7905)"><path + d="m 0,0 c -1.929,0.645 -2.974,2.727 -2.33,4.656 l 23.008,69.021 c 0.643,1.93 2.727,2.975 4.654,2.328 1.931,-0.642 2.974,-2.726 2.33,-4.653 L 4.653,2.328 C 4.14,0.785 2.703,-0.191 1.163,-0.191 0.776,-0.191 0.385,-0.129 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3056" /></g><g + id="g3058" + transform="translate(134.8149,37.9038)"><path + d="m 0,0 c -2.034,0 -3.682,1.65 -3.682,3.681 0,2.033 1.648,3.684 3.682,3.684 l 45.138,0 27.183,88.347 -32.29,0 0,-0.002 c -2.034,0 -3.679,1.651 -3.679,3.685 0,2.03 1.645,3.68 3.679,3.68 l 42.257,0 L 50.575,0 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3060" /></g><g + id="g3062" + transform="translate(160.1216,105.5478)"><path + d="m 0,0 c -2.032,0 -3.677,1.645 -3.677,3.679 0,2.034 1.645,3.68 3.677,3.68 l 41.875,0 c 2.034,0 3.684,-1.646 3.684,-3.68 C 45.559,1.645 43.909,0 41.875,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3064" /></g><g + id="g3066" + transform="translate(226.3838,104.1665)"><path + d="m 0,0 0,41.414 c 0,2.032 1.648,3.678 3.681,3.678 2.034,0 3.682,-1.646 3.682,-3.678 L 7.363,0 C 7.363,-2.032 5.715,-3.681 3.681,-3.681 1.648,-3.681 0,-2.032 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3068" /></g><g + id="g3070" + transform="translate(203.8359,66.4346)"><path + d="m 0,0 c -2.032,0 -3.681,1.647 -3.681,3.681 0,2.032 1.649,3.678 3.681,3.678 l 43.255,0.004 0,96.631 0.002,0 c 0,2.032 1.65,3.681 3.679,3.681 2.033,0 3.684,-1.649 3.684,-3.681 L 50.62,0 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3072" /></g><g + id="g3074" + transform="translate(257.1143,101.0381)"><path + d="m 0,0 c -1.728,1.074 -2.259,3.342 -1.184,5.071 l 24.291,39.141 0,26.1 0.002,0 c 0,2.032 1.646,3.682 3.681,3.682 2.033,0 3.682,-1.65 3.682,-3.682 l 0,-28.201 L 5.071,1.189 C 4.372,0.063 3.171,-0.552 1.939,-0.552 1.276,-0.552 0.604,-0.375 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3076" /></g><g + id="g3078" + transform="translate(259.4902,40.251)"><path + d="m 0,0 c -1.751,1.034 -2.338,3.29 -1.308,5.042 l 17.897,30.427 0.002,61.575 c 0,2.034 1.649,3.684 3.682,3.684 2.031,0 3.681,-1.65 3.681,-3.684 l 0,-63.58 L 5.04,1.31 5.04,1.308 C 4.352,0.141 3.123,-0.508 1.864,-0.508 1.23,-0.508 0.587,-0.341 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3080" /></g><g + id="g3082" + transform="translate(295.8657,133.6162)"><path + d="m 0,0 c -2.032,0 -3.68,1.648 -3.68,3.679 0,2.035 1.648,3.684 3.68,3.684 l 119.181,0 c 2.034,0 3.679,-1.649 3.679,-3.684 C 122.86,1.648 121.215,0 119.181,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3084" /></g><g + id="g3086" + transform="translate(300.0078,153.8618)"><path + d="m 0,0 c -2.032,0 -3.679,1.65 -3.679,3.682 0,2.034 1.647,3.683 3.679,3.683 l 52.918,0 c 2.034,0 3.683,-1.649 3.683,-3.683 C 56.601,1.65 54.952,0 52.918,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3088" /></g><g + id="g3090" + transform="translate(300.0078,116.5898)"><path + d="m 0,0 c -2.032,0 -3.679,1.646 -3.679,3.682 0,2.031 1.647,3.682 3.679,3.682 l 52,0 c 2.032,0 3.68,-1.651 3.68,-3.682 C 55.68,1.646 54.032,0 52,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3092" /></g><g + id="g3094" + transform="translate(300.0078,99.5669)"><path + d="m 0,0 c -2.032,0 -3.679,1.647 -3.679,3.679 0,2.035 1.647,3.68 3.679,3.68 l 52,0 c 2.032,0 3.68,-1.645 3.68,-3.68 C 55.68,1.647 54.032,0 52,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3096" /></g><g + id="g3098" + transform="translate(303.6885,62.7539)"><path + d="m 0,0 44.637,-0.001 0,20.708 L 0,20.707 0,0 z m 44.637,-24.85 0,17.488 -51.997,0 0,35.43 59.356,0 0,-31.75 0,-21.168 0.004,0 c 0,-2.03 -1.649,-3.681 -3.681,-3.681 -2.036,0 -3.682,1.651 -3.682,3.681" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3100" /></g><g + id="g3102" + transform="translate(373.6348,117.5122)"><path + d="M 0,0 0,3.682 0,0 z m 3.679,-11.503 33.131,0 0,11.503 -33.131,0 0,-11.503 z m -7.361,-7.363 0,22.548 0,3.679 47.854,0 0,-26.227 -47.854,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3104" /></g><g + id="g3106" + transform="translate(390.6577,63.6728)"><path + d="m 0,0 0,106.756 c 0,2.034 1.648,3.681 3.684,3.681 2.032,0 3.679,-1.647 3.679,-3.681 L 7.363,0 C 7.363,-2.034 5.716,-3.682 3.684,-3.682 1.648,-3.682 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3108" /></g><g + id="g3110" + transform="translate(356.6084,77.4766)"><path + d="m 0,0 c 0,2.034 1.645,3.682 3.681,3.682 l 15.513,0 15.473,23.211 c 1.127,1.691 3.414,2.147 5.105,1.02 1.694,-1.129 2.149,-3.414 1.022,-5.105 L 23.137,-3.679 3.681,-3.683 C 1.645,-3.683 0,-2.032 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3112" /></g><g + id="g3114" + transform="translate(404.9238,74.7148)"><path + d="m 0,0 0,27.61 c 0,2.036 1.647,3.684 3.683,3.684 2.03,0 3.678,-1.648 3.678,-3.684 L 7.361,0 C 7.361,-2.03 5.713,-3.681 3.683,-3.681 1.647,-3.681 0,-2.03 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3116" /></g><g + id="g3118" + transform="translate(409.5255,153.8618)"><path + d="m 0,0 c -2.034,0 -3.679,1.65 -3.679,3.684 0,2.032 1.645,3.679 3.679,3.679 l 54.298,0 0,20.833 c 0,2.03 1.649,3.679 3.681,3.679 2.03,0 3.682,-1.649 3.682,-3.679 L 61.661,0 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3120" /></g><path + d="m 429.77,83 34.054,0 0,50.616 -34.054,0 0,-50.616 z m -7.362,-7.361 0,62.974 17.397,21.261 0.003,0 c 1.287,1.574 3.605,1.807 5.179,0.52 1.575,-1.287 1.805,-3.609 0.52,-5.183 l -11.648,-14.232 37.328,0 0,-65.34 -48.779,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3122" /><g + id="g3124" + transform="translate(426.0903,114.2891)"><path + d="m 0,0 c -2.034,0 -3.68,1.648 -3.68,3.681 0,2.034 1.646,3.682 3.68,3.682 l 41.414,0 c 2.03,0 3.682,-1.648 3.682,-3.682 C 45.096,1.648 43.444,0 41.414,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3126" /></g><g + id="g3128" + transform="translate(426.0903,94.9624)"><path + d="m 0,0 c -2.034,0 -3.68,1.648 -3.68,3.684 0,2.032 1.646,3.679 3.68,3.679 l 41.414,0 c 2.03,0 3.682,-1.647 3.682,-3.679 C 45.096,1.648 43.444,0 41.414,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3130" /></g><g + id="g3132" + transform="translate(380.9961,50.7886)"><path + d="m 0,0 c 0,2.032 1.648,3.682 3.682,3.682 l 39.064,0 11.437,24.56 c 0.854,1.844 3.046,2.644 4.889,1.782 1.841,-0.855 2.639,-3.045 1.782,-4.892 L 47.439,-3.681 3.682,-3.683 C 1.648,-3.683 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3134" /></g><g + id="g3136" + transform="translate(453.2397,37.9038)"><path + d="m 0,0 0,41.414 c 0,2.034 1.648,3.682 3.684,3.682 2.028,0 3.679,-1.648 3.679,-3.682 L 7.363,0 C 7.363,-2.03 5.712,-3.681 3.684,-3.681 1.648,-3.681 0,-2.03 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3138" /></g><g + id="g3140" + transform="translate(479.9297,140.979)"><path + d="m 0,0 c -2.034,0 -3.683,1.648 -3.683,3.684 0,2.029 1.649,3.677 3.683,3.677 l 42.795,0 c 2.031,0 3.679,-1.648 3.679,-3.677 C 46.474,1.648 44.826,0 42.795,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3142" /></g><g + id="g3144" + transform="translate(459.6821,79.3174)"><path + d="m 0,0 c 0,2.032 1.646,3.683 3.68,3.683 l 5.99,0 30.741,62.368 0.003,-0.003 c 0.897,1.827 3.103,2.574 4.926,1.678 1.825,-0.901 2.577,-3.108 1.678,-4.93 L 14.254,-3.679 3.68,-3.68 C 1.646,-3.68 0,-2.032 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3146" /></g><path + d="m 497.412,83 21.629,0 0,29.907 -21.629,0 0,-29.907 z m -7.363,-34.053 0,30.37 0,40.955 36.355,0 0,-44.633 -28.992,-0.002 0,-26.69 c 0,-2.032 -1.647,-3.682 -3.68,-3.682 -2.033,0 -3.683,1.65 -3.683,3.682" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3148" /><g + id="g3150" + transform="translate(531.4644,153.8618)"><path + d="m 0,0 c 0,2.034 1.648,3.682 3.683,3.682 l 46.016,0 0,24.514 c 0,2.032 1.647,3.679 3.681,3.679 2.029,0 3.682,-1.647 3.682,-3.679 l 0,-31.875 -53.379,0 0,-0.003 C 1.648,-3.682 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3152" /></g><g + id="g3154" + transform="translate(531.0049,112.9072)"><path + d="m 0,0 c -2.032,0 -3.682,1.652 -3.682,3.683 0,2.033 1.65,3.682 3.682,3.682 l 99.395,0 c 2.032,0 3.679,-1.649 3.679,-3.682 C 103.074,1.652 101.427,0 99.395,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3156" /></g><g + id="g3158" + transform="translate(528.7994,59.8086)"><path + d="m 0,0 c -1.628,1.22 -1.96,3.525 -0.738,5.155 l 11.687,15.583 0,73.315 c 0,2.034 1.648,3.682 3.68,3.682 2.034,0 3.683,-1.648 3.683,-3.682 l 0,-75.769 L 5.152,0.733 C 4.427,-0.229 3.323,-0.738 2.203,-0.738 1.432,-0.737 0.659,-0.499 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3160" /></g><g + id="g3162" + transform="translate(568.7383,36.9849)"><path + d="m 0,0 0,116.877 c 0,2.034 1.644,3.682 3.681,3.682 2.035,0 3.682,-1.648 3.682,-3.682 L 7.363,0 C 7.363,-2.036 5.716,-3.681 3.681,-3.681 1.644,-3.681 0,-2.036 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3164" /></g><g + id="g3166" + transform="translate(168.8662,160.3042)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.144,-4.142 -2.285,0 -4.138,1.853 -4.138,4.142 0,2.289 1.853,4.142 4.138,4.142 C -1.854,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3168" /></g><g + id="g3170" + transform="translate(162.4238,160.3042)"><path + d="M 0,0 C 0.003,-1.268 1.032,-2.297 2.299,-2.3 3.57,-2.297 4.6,-1.268 4.601,0 4.6,1.27 3.57,2.301 2.299,2.302 1.032,2.301 0.003,1.27 0,0 m -3.683,0 c 0.002,3.306 2.68,5.981 5.982,5.985 C 5.606,5.981 8.282,3.306 8.282,0 8.282,-3.304 5.606,-5.979 2.299,-5.981 -1.003,-5.979 -3.681,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3172" /></g><g + id="g3174" + transform="translate(55.2051,137.2983)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.142 -4.14,-4.142 -2.285,0 -4.14,1.853 -4.14,4.142 0,2.285 1.855,4.14 4.14,4.14 C -1.852,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3176" /></g><g + id="g3178" + transform="translate(48.7646,137.2983)"><path + d="M 0,0 C 0.003,-1.27 1.031,-2.299 2.3,-2.302 3.574,-2.299 4.599,-1.27 4.603,0 4.599,1.268 3.574,2.295 2.3,2.302 1.031,2.295 0.003,1.268 0,0 m -3.681,0 c 0.004,3.304 2.678,5.981 5.981,5.981 3.306,0 5.983,-2.677 5.983,-5.981 0,-3.307 -2.677,-5.983 -5.983,-5.983 -3.303,0 -5.977,2.676 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3180" /></g><g + id="g3182" + transform="translate(71.772,113.8301)"><path + d="m 0,0 c 0,-2.291 -1.852,-4.14 -4.138,-4.14 -2.289,0 -4.142,1.849 -4.142,4.14 0,2.285 1.853,4.14 4.142,4.14 C -1.852,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3184" /></g><g + id="g3186" + transform="translate(65.333,113.8301)"><path + d="M 0,0 C 0.002,-1.27 1.029,-2.297 2.301,-2.301 3.569,-2.297 4.596,-1.27 4.598,0 4.596,1.271 3.569,2.3 2.301,2.3 1.029,2.3 0.002,1.271 0,0 m -3.681,0 c 0,3.304 2.675,5.979 5.982,5.981 C 5.603,5.979 8.278,3.304 8.28,0 8.278,-3.306 5.603,-5.981 2.301,-5.981 c -3.307,0 -5.982,2.675 -5.982,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3188" /></g><g + id="g3190" + transform="translate(35.4204,70.1152)"><path + d="m 0,0 c 0,-2.289 -1.853,-4.142 -4.142,-4.142 -2.285,0 -4.138,1.853 -4.138,4.142 0,2.287 1.853,4.142 4.138,4.142 C -1.853,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3192" /></g><g + id="g3194" + transform="translate(28.98,70.1152)"><path + d="M 0,0 C 0.001,-1.27 1.029,-2.299 2.3,-2.3 3.57,-2.299 4.598,-1.27 4.599,0 4.598,1.27 3.57,2.297 2.3,2.302 1.029,2.297 0.001,1.27 0,0 m -3.681,0 c 0,3.304 2.676,5.981 5.981,5.983 C 5.604,5.981 8.28,3.304 8.282,0 8.28,-3.304 5.604,-5.983 2.3,-5.983 c -3.305,0 -5.981,2.679 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3196" /></g><g + id="g3198" + transform="translate(80.5166,162.147)"><path + d="m 0,0 c 0,-2.29 -1.853,-4.143 -4.142,-4.143 -2.287,0 -4.14,1.853 -4.14,4.143 0,2.287 1.853,4.138 4.14,4.138 C -1.853,4.138 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3200" /></g><g + id="g3202" + transform="translate(74.0742,162.147)"><path + d="M 0,0 C 0.002,-1.271 1.029,-2.299 2.302,-2.3 3.569,-2.299 4.6,-1.271 4.601,0 4.6,1.268 3.569,2.297 2.302,2.301 1.029,2.297 0.002,1.268 0,0 m -3.679,0 c 0,3.3 2.674,5.979 5.981,5.979 3.302,0 5.98,-2.679 5.98,-5.979 0,-3.305 -2.678,-5.983 -5.98,-5.984 -3.307,0.001 -5.981,2.679 -5.981,5.984" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3204" /></g><g + id="g3206" + transform="translate(149.5425,119.811)"><path + d="m 0,0 c 0,-2.287 -1.856,-4.142 -4.145,-4.142 -2.285,0 -4.142,1.855 -4.142,4.142 0,2.289 1.857,4.143 4.142,4.143 C -1.856,4.143 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3208" /></g><g + id="g3210" + transform="translate(143.0952,119.811)"><path + d="M 0,0 C 0.005,-1.27 1.032,-2.297 2.302,-2.302 3.574,-2.297 4.603,-1.27 4.603,0 4.603,1.27 3.574,2.299 2.302,2.302 1.032,2.299 0.005,1.27 0,0 M -3.681,0 C -3.677,3.305 -1.003,5.979 2.302,5.981 5.606,5.979 8.282,3.305 8.283,0 8.282,-3.306 5.606,-5.979 2.302,-5.981 -1.003,-5.979 -3.677,-3.306 -3.681,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3212" /></g><g + id="g3214" + transform="translate(132.5146,41.5845)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.14 -4.142,-4.14 -2.288,0 -4.142,1.851 -4.142,4.14 0,2.287 1.854,4.142 4.142,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3216" /></g><g + id="g3218" + transform="translate(126.0723,41.5859)"><path + d="M 0,0 C 0.001,-1.27 1.029,-2.3 2.3,-2.302 3.572,-2.3 4.594,-1.27 4.601,0 4.594,1.27 3.572,2.297 2.3,2.303 1.029,2.297 0.001,1.27 0,0 m -3.679,0 c 0,3.304 2.674,5.981 5.979,5.981 C 5.604,5.981 8.28,3.304 8.282,0 8.28,-3.307 5.604,-5.981 2.3,-5.984 -1.005,-5.981 -3.679,-3.307 -3.679,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3220" /></g><g + id="g3222" + transform="translate(130.6733,182.0576)"><path + d="m 0,0 c 0,-2.291 -1.856,-4.144 -4.14,-4.144 -2.287,0 -4.144,1.853 -4.144,4.144 0,2.287 1.857,4.14 4.144,4.14 C -1.856,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3224" /></g><g + id="g3226" + transform="translate(124.231,182.0576)"><path + d="M 0,0 C 0.002,-1.273 1.031,-2.301 2.302,-2.303 3.571,-2.301 4.596,-1.273 4.601,0 4.596,1.266 3.571,2.295 2.302,2.299 1.031,2.295 0.002,1.266 0,0 m -3.681,0 c 0,3.304 2.678,5.981 5.983,5.981 3.301,0 5.98,-2.677 5.98,-5.981 0,-3.308 -2.679,-5.983 -5.98,-5.983 -3.305,0 -5.983,2.675 -5.983,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3228" /></g><g + id="g3230" + transform="translate(164.2666,109.227)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.14 -4.145,-4.14 -2.285,0 -4.14,1.851 -4.14,4.14 0,2.289 1.855,4.143 4.14,4.143 C -1.855,4.143 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3232" /></g><g + id="g3234" + transform="translate(157.8227,109.227)"><path + d="M 0,0 C 0.001,-1.27 1.029,-2.299 2.299,-2.301 3.57,-2.299 4.598,-1.27 4.601,0 4.598,1.271 3.57,2.297 2.299,2.302 1.029,2.297 0.001,1.271 0,0 m -3.683,0 c 0,3.305 2.68,5.984 5.982,5.984 3.304,0 5.983,-2.679 5.983,-5.984 0,-3.304 -2.679,-5.981 -5.983,-5.981 -3.302,0 -5.982,2.677 -5.982,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3236" /></g><g + id="g3238" + transform="translate(170.7056,91.2817)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.142 -4.14,-4.142 -2.289,0 -4.142,1.855 -4.142,4.142 0,2.287 1.853,4.14 4.142,4.14 C -1.853,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3240" /></g><g + id="g3242" + transform="translate(164.2666,91.2817)"><path + d="M 0,0 C 0,-1.27 1.029,-2.295 2.299,-2.301 3.569,-2.295 4.594,-1.27 4.6,0 4.594,1.27 3.569,2.297 2.299,2.302 1.029,2.297 0,1.27 0,0 M -3.684,0 C -3.682,3.304 -1.006,5.978 2.299,5.983 5.603,5.978 8.278,3.304 8.278,0 c 0,-3.306 -2.675,-5.981 -5.979,-5.981 -3.305,0 -5.981,2.675 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3244" /></g><g + id="g3246" + transform="translate(218.5615,160.3042)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.142 -4.138,-4.142 -2.289,0 -4.142,1.853 -4.142,4.142 0,2.289 1.853,4.142 4.142,4.142 C -1.855,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3248" /></g><g + id="g3250" + transform="translate(212.1211,160.3076)"><path + d="M 0,0 C 0.002,-1.273 1.031,-2.302 2.302,-2.304 3.57,-2.302 4.6,-1.273 4.601,0 4.6,1.267 3.57,2.297 2.302,2.297 1.031,2.297 0.002,1.267 0,0 m -3.682,0 c 0,3.302 2.679,5.978 5.984,5.978 C 5.606,5.978 8.28,3.302 8.282,0 8.28,-3.307 5.606,-5.981 2.302,-5.984 -1.003,-5.981 -3.682,-3.307 -3.682,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3252" /></g><g + id="g3254" + transform="translate(234.2065,145.5801)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.139,-4.142 -2.288,0 -4.143,1.853 -4.143,4.142 0,2.287 1.855,4.142 4.143,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3256" /></g><g + id="g3258" + transform="translate(227.7676,145.5801)"><path + d="M 0,0 C 0,-1.27 1.029,-2.299 2.297,-2.3 3.568,-2.299 4.596,-1.27 4.599,0 4.596,1.271 3.568,2.299 2.297,2.299 1.029,2.299 0,1.271 0,0 m -3.683,0 c 0,3.306 2.678,5.981 5.98,5.983 C 5.603,5.981 8.28,3.306 8.28,0 8.28,-3.304 5.603,-5.979 2.297,-5.981 -1.005,-5.979 -3.683,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3260" /></g><g + id="g3262" + transform="translate(207.9795,70.1152)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.142 -4.142,-4.142 -2.287,0 -4.142,1.853 -4.142,4.142 0,2.287 1.855,4.142 4.142,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3264" /></g><g + id="g3266" + transform="translate(201.5351,70.1152)"><path + d="m 0,0 c 0.005,-1.27 1.031,-2.299 2.302,-2.3 1.272,10e-4 2.3,1.03 2.3,2.3 0,1.27 -1.028,2.297 -2.3,2.302 C 1.031,2.297 0.005,1.27 0,0 m -3.679,0 c 0,3.304 2.676,5.981 5.981,5.983 C 5.606,5.981 8.284,3.304 8.284,0 c 0,-3.304 -2.678,-5.983 -5.982,-5.983 -3.305,0 -5.981,2.679 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3268" /></g><g + id="g3270" + transform="translate(234.2065,104.1665)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.139,-4.142 -2.288,0 -4.143,1.855 -4.143,4.142 0,2.287 1.855,4.143 4.143,4.143 C -1.854,4.143 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3272" /></g><g + id="g3274" + transform="translate(227.7642,104.1665)"><path + d="M 0,0 C 0.003,-1.27 1.032,-2.299 2.3,-2.301 3.57,-2.299 4.601,-1.27 4.601,0 4.601,1.27 3.57,2.297 2.3,2.304 1.032,2.297 0.003,1.27 0,0 m -3.679,0 c 0,3.304 2.678,5.979 5.979,5.981 C 5.606,5.979 8.283,3.304 8.283,0 c 0,-3.306 -2.677,-5.981 -5.983,-5.981 -3.301,0 -5.979,2.675 -5.979,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3276" /></g><g + id="g3278" + transform="translate(182.6714,70.1152)"><path + d="m 0,0 c 0,-2.289 -1.857,-4.142 -4.142,-4.142 -2.287,0 -4.143,1.853 -4.143,4.142 0,2.287 1.856,4.142 4.143,4.142 C -1.857,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3280" /></g><g + id="g3282" + transform="translate(176.229,70.1152)"><path + d="M 0,0 C 0.001,-1.27 1.032,-2.299 2.299,-2.3 3.57,-2.299 4.6,-1.27 4.603,0 4.6,1.27 3.57,2.297 2.299,2.302 1.032,2.297 0.001,1.27 0,0 m -3.684,0 c 0,3.304 2.679,5.981 5.983,5.983 C 5.604,5.981 8.278,3.304 8.28,0 8.278,-3.304 5.604,-5.983 2.299,-5.983 c -3.304,0 -5.983,2.679 -5.983,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3284" /></g><g + id="g3286" + transform="translate(265.4971,43.4258)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.142 -4.14,-4.142 -2.287,0 -4.142,1.855 -4.142,4.142 0,2.288 1.855,4.142 4.142,4.142 C -1.853,4.142 0,2.288 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3288" /></g><g + id="g3290" + transform="translate(259.0552,43.4258)"><path + d="M 0,0 C 0.001,-1.269 1.03,-2.297 2.302,-2.301 3.572,-2.297 4.599,-1.269 4.603,0 4.599,1.271 3.572,2.3 2.302,2.302 1.03,2.3 0.001,1.271 0,0 m -3.681,0 c 0,3.305 2.676,5.981 5.983,5.981 3.305,0 5.981,-2.676 5.981,-5.981 0,-3.304 -2.676,-5.979 -5.981,-5.981 -3.307,0.002 -5.983,2.677 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3292" /></g><g + id="g3294" + transform="translate(254.915,170.4287)"><path + d="m 0,0 c 0,-2.288 -1.855,-4.144 -4.142,-4.144 -2.287,0 -4.142,1.856 -4.142,4.144 0,2.285 1.855,4.142 4.142,4.142 C -1.855,4.142 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3296" /></g><g + id="g3298" + transform="translate(248.4746,170.4287)"><path + d="M 0,0 C 0.001,-1.271 1.029,-2.297 2.297,-2.3 3.568,-2.297 4.596,-1.271 4.598,0 4.596,1.27 3.568,2.299 2.297,2.301 1.029,2.299 0.001,1.27 0,0 m -3.683,0 c 0,3.304 2.676,5.983 5.98,5.983 C 5.604,5.983 8.28,3.304 8.28,0 8.28,-3.305 5.604,-5.981 2.297,-5.983 -1.007,-5.981 -3.683,-3.305 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3300" /></g><g + id="g3302" + transform="translate(288.0454,171.3496)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.14 -4.142,-4.14 -2.287,0 -4.14,1.853 -4.14,4.14 0,2.285 1.853,4.142 4.14,4.142 C -1.855,4.142 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3304" /></g><g + id="g3306" + transform="translate(281.603,171.3496)"><path + d="M 0,0 C 0,-1.271 1.029,-2.299 2.301,-2.301 3.57,-2.299 4.6,-1.271 4.601,0 4.6,1.271 3.57,2.299 2.301,2.299 1.029,2.299 0,1.271 0,0 m -3.679,0 c 0,3.304 2.676,5.981 5.98,5.981 3.305,0 5.983,-2.677 5.983,-5.981 0,-3.306 -2.678,-5.981 -5.983,-5.981 -3.304,0 -5.98,2.675 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3308" /></g><g + id="g3310" + transform="translate(263.1968,104.1665)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.142 -4.142,-4.142 -2.288,0 -4.14,1.855 -4.14,4.142 0,2.287 1.852,4.143 4.14,4.143 C -1.853,4.143 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3312" /></g><g + id="g3314" + transform="translate(256.7545,104.1665)"><path + d="M 0,0 C 0,-1.27 1.031,-2.299 2.301,-2.301 3.57,-2.299 4.6,-1.27 4.603,0 4.6,1.27 3.57,2.299 2.301,2.304 1.031,2.299 0,1.27 0,0 m -3.682,0 c 0,3.304 2.679,5.979 5.983,5.981 C 5.604,5.979 8.282,3.304 8.284,0 8.282,-3.306 5.604,-5.981 2.301,-5.981 c -3.304,0 -5.983,2.675 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3316" /></g><g + id="g3318" + transform="translate(304.1528,157.5439)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.145,-4.142 -2.285,0 -4.138,1.855 -4.138,4.142 0,2.287 1.853,4.142 4.138,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3320" /></g><g + id="g3322" + transform="translate(297.707,157.5439)"><path + d="M 0,0 C 0.003,-1.271 1.033,-2.295 2.301,-2.302 3.572,-2.295 4.601,-1.271 4.604,0 4.601,1.27 3.572,2.299 2.301,2.303 1.033,2.299 0.003,1.27 0,0 m -3.679,0 c 0,3.304 2.673,5.979 5.98,5.981 C 5.606,5.979 8.284,3.304 8.285,0 8.284,-3.304 5.606,-5.981 2.301,-5.981 c -3.307,0 -5.98,2.677 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3324" /></g><g + id="g3326" + transform="translate(357.0693,157.5439)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.143,-4.142 -2.287,0 -4.14,1.855 -4.14,4.142 0,2.287 1.853,4.142 4.14,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3328" /></g><g + id="g3330" + transform="translate(350.6255,157.5439)"><path + d="M 0,0 C 0.002,-1.268 1.033,-2.3 2.297,-2.302 3.571,-2.3 4.6,-1.271 4.603,0 4.6,1.27 3.571,2.299 2.297,2.303 1.033,2.299 0.002,1.27 0,0 M -3.682,0 C -3.68,3.304 -1.003,5.979 2.297,5.981 5.604,5.979 8.282,3.304 8.282,0 c 0,-3.304 -2.678,-5.981 -5.985,-5.981 -3.3,0 -5.977,2.677 -5.979,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3332" /></g><g + id="g3334" + transform="translate(300.0078,137.2983)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.142 -4.138,-4.142 -2.289,0 -4.142,1.853 -4.142,4.142 0,2.285 1.853,4.14 4.142,4.14 C -1.852,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3336" /></g><g + id="g3338" + transform="translate(293.5669,137.2949)"><path + d="M 0,0 C 0.002,-1.267 1.029,-2.295 2.303,-2.299 3.572,-2.295 4.6,-1.267 4.602,0 4.6,1.273 3.572,2.299 2.303,2.304 1.029,2.299 0.002,1.273 0,0 m -3.68,0 c 0,3.307 2.677,5.981 5.983,5.985 C 5.604,5.981 8.28,3.307 8.284,0 8.28,-3.304 5.604,-5.978 2.303,-5.979 -1.003,-5.978 -3.68,-3.304 -3.68,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3340" /></g><g + id="g3342" + transform="translate(419.1885,137.2983)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.142,-4.142 -2.285,0 -4.139,1.853 -4.139,4.142 0,2.285 1.854,4.14 4.139,4.14 C -1.854,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3344" /></g><g + id="g3346" + transform="translate(412.7461,137.2983)"><path + d="M 0,0 C 0,-1.27 1.029,-2.299 2.299,-2.302 3.571,-2.299 4.598,-1.27 4.602,0 4.598,1.27 3.571,2.295 2.299,2.302 1.029,2.295 0,1.27 0,0 m -3.679,0 c 0,3.306 2.674,5.978 5.978,5.981 C 5.608,5.978 8.284,3.302 8.284,0 8.284,-3.305 5.608,-5.981 2.299,-5.983 -1.005,-5.981 -3.679,-3.307 -3.679,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3348" /></g><g + id="g3350" + transform="translate(304.1528,120.272)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.145,-4.142 -2.285,0 -4.138,1.855 -4.138,4.142 0,2.287 1.853,4.14 4.138,4.14 C -1.855,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3352" /></g><g + id="g3354" + transform="translate(297.707,120.272)"><path + d="M 0,0 C 0.003,-1.268 1.033,-2.299 2.301,-2.302 3.572,-2.299 4.601,-1.268 4.604,0 4.601,1.268 3.572,2.299 2.301,2.301 1.033,2.299 0.003,1.268 0,0 m -3.679,0 c 0,3.306 2.673,5.978 5.98,5.983 C 5.606,5.978 8.284,3.306 8.285,0 8.284,-3.304 5.606,-5.978 2.301,-5.981 -1.006,-5.978 -3.679,-3.304 -3.679,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3356" /></g><g + id="g3358" + transform="translate(304.1528,103.2456)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.143 -4.145,-4.143 -2.285,0 -4.138,1.854 -4.138,4.143 0,2.287 1.853,4.144 4.138,4.144 C -1.855,4.144 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3360" /></g><g + id="g3362" + transform="translate(297.707,103.2456)"><path + d="M 0,0 C 0.003,-1.27 1.033,-2.297 2.301,-2.299 3.572,-2.297 4.601,-1.27 4.604,0 4.601,1.272 3.572,2.299 2.301,2.302 1.033,2.299 0.003,1.272 0,0 m -3.679,0 c 0,3.304 2.673,5.979 5.98,5.981 C 5.606,5.979 8.284,3.304 8.285,0 8.284,-3.304 5.606,-5.981 2.301,-5.981 c -3.307,0 -5.98,2.677 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3364" /></g><g + id="g3366" + transform="translate(356.1475,37.9038)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.142 -4.14,-4.142 -2.291,0 -4.14,1.853 -4.14,4.142 0,2.287 1.849,4.14 4.14,4.14 C -1.852,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3368" /></g><g + id="g3370" + transform="translate(349.7051,37.9038)"><path + d="M 0,0 C 0,-1.27 1.032,-2.297 2.301,-2.299 3.57,-2.297 4.601,-1.27 4.603,0 4.601,1.271 3.57,2.299 2.301,2.3 1.032,2.299 0,1.268 0,0 M -3.683,0 C -3.681,3.305 -1.005,5.979 2.301,5.985 5.606,5.979 8.282,3.305 8.282,0 c 0,-3.304 -2.676,-5.981 -5.981,-5.981 -3.304,0 -5.982,2.677 -5.984,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3372" /></g><g + id="g3374" + transform="translate(356.1475,120.272)"><path + d="m 0,0 c 0,-2.287 -1.852,-4.142 -4.14,-4.142 -2.291,0 -4.14,1.855 -4.14,4.142 0,2.287 1.849,4.14 4.14,4.14 C -1.852,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3376" /></g><g + id="g3378" + transform="translate(349.7051,120.272)"><path + d="M 0,0 C 0,-1.27 1.032,-2.299 2.301,-2.302 3.57,-2.299 4.601,-1.27 4.603,0 4.601,1.27 3.57,2.299 2.301,2.301 1.032,2.299 0,1.268 0,0 M -3.683,0 C -3.681,3.306 -1.005,5.979 2.301,5.983 5.606,5.979 8.282,3.306 8.282,0 8.282,-3.302 5.606,-5.979 2.301,-5.983 -1.005,-5.979 -3.681,-3.305 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3380" /></g><g + id="g3382" + transform="translate(356.1475,103.2456)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.143 -4.14,-4.143 -2.291,0 -4.14,1.854 -4.14,4.143 0,2.287 1.849,4.144 4.14,4.144 C -1.852,4.144 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3384" /></g><g + id="g3386" + transform="translate(349.7051,103.2456)"><path + d="M 0,0 C 0,-1.27 1.032,-2.297 2.301,-2.299 3.57,-2.297 4.601,-1.27 4.603,0 4.601,1.272 3.57,2.299 2.301,2.302 1.032,2.299 0,1.272 0,0 M -3.683,0 C -3.681,3.306 -1.005,5.979 2.301,5.981 5.606,5.979 8.282,3.306 8.282,0 8.282,-3.304 5.606,-5.981 2.301,-5.983 -1.005,-5.981 -3.681,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3388" /></g><g + id="g3390" + transform="translate(364.4292,77.4766)"><path + d="m 0,0 c 0,-2.287 -1.852,-4.14 -4.14,-4.14 -2.285,0 -4.142,1.853 -4.142,4.14 0,2.289 1.857,4.142 4.142,4.142 C -1.852,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3392" /></g><g + id="g3394" + transform="translate(357.9868,77.4785)"><path + d="M 0,0 C 0.003,-1.272 1.034,-2.299 2.302,-2.301 3.572,-2.299 4.601,-1.272 4.601,0 4.601,1.271 3.572,2.297 2.302,2.299 1.034,2.297 0.003,1.268 0,0 m -3.679,0 c 0,3.304 2.676,5.979 5.981,5.982 3.306,0 5.982,-2.678 5.982,-5.982 0,-3.306 -2.676,-5.981 -5.982,-5.981 -3.305,0 -5.981,2.675 -5.981,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3396" /></g><g + id="g3398" + transform="translate(398.4834,63.6728)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.144,-4.142 -2.285,0 -4.141,1.855 -4.141,4.142 0,2.287 1.856,4.142 4.141,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3400" /></g><g + id="g3402" + transform="translate(392.0376,63.6728)"><path + d="M 0,0 C 0.003,-1.27 1.031,-2.297 2.302,-2.302 3.574,-2.297 4.6,-1.271 4.606,0 4.6,1.271 3.574,2.297 2.302,2.301 1.031,2.297 0.003,1.271 0,0 m -3.68,0 c 0,3.306 2.679,5.979 5.982,5.983 C 5.608,5.979 8.284,3.304 8.284,0 8.284,-3.305 5.608,-5.979 2.302,-5.982 -1.001,-5.979 -3.68,-3.305 -3.68,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3404" /></g><g + id="g3406" + transform="translate(388.8185,50.7886)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.14,-4.142 -2.289,0 -4.142,1.855 -4.142,4.142 0,2.287 1.853,4.142 4.142,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3408" /></g><g + id="g3410" + transform="translate(382.376,50.7886)"><path + d="M 0,0 C 0.002,-1.27 1.032,-2.299 2.302,-2.301 3.57,-2.299 4.6,-1.272 4.601,0 4.6,1.271 3.57,2.297 2.302,2.3 1.032,2.297 0.002,1.266 0,0 m -3.679,0 c 0,3.305 2.676,5.981 5.981,5.981 3.306,0 5.98,-2.677 5.98,-5.981 0,-3.306 -2.674,-5.981 -5.98,-5.981 -3.305,0.002 -5.981,2.675 -5.981,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3412" /></g><g + id="g3414" + transform="translate(461.0635,37.9038)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.142,-4.142 -2.286,0 -4.143,1.853 -4.143,4.142 0,2.287 1.857,4.14 4.143,4.14 C -1.854,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3416" /></g><g + id="g3418" + transform="translate(454.6216,37.9038)"><path + d="M 0,0 C 0,-1.27 1.029,-2.297 2.3,-2.299 3.57,-2.297 4.598,-1.27 4.603,0 4.598,1.27 3.57,2.299 2.3,2.3 1.031,2.299 0,1.27 0,0 m -3.683,0 c 0,3.307 2.678,5.983 5.983,5.983 C 5.603,5.983 8.282,3.307 8.282,0 8.282,-3.304 5.603,-5.979 2.3,-5.981 -1.001,-5.979 -3.683,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3420" /></g><g + id="g3422" + transform="translate(398.4834,170.4287)"><path + d="m 0,0 c 0,-2.288 -1.855,-4.144 -4.144,-4.144 -2.285,0 -4.141,1.856 -4.141,4.144 0,2.285 1.856,4.142 4.141,4.142 C -1.855,4.142 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3424" /></g><g + id="g3426" + transform="translate(392.0376,170.4287)"><path + d="M 0,0 C 0.003,-1.27 1.031,-2.297 2.302,-2.3 3.574,-2.297 4.6,-1.271 4.606,0 4.6,1.27 3.574,2.299 2.302,2.299 1.031,2.299 0.003,1.27 0,0 m -3.68,0 c 0,3.306 2.679,5.981 5.982,5.981 3.306,0 5.982,-2.679 5.982,-5.981 0,-3.305 -2.676,-5.981 -5.982,-5.981 -3.303,0 -5.982,2.676 -5.982,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3428" /></g><g + id="g3430" + transform="translate(413.665,157.5439)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.14,-4.142 -2.285,0 -4.138,1.855 -4.138,4.142 0,2.287 1.853,4.142 4.138,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3432" /></g><g + id="g3434" + transform="translate(407.2246,157.5459)"><path + d="M 0,0 C 0,-1.271 1.032,-2.297 2.301,-2.304 3.572,-2.297 4.596,-1.273 4.601,0 4.596,1.268 3.572,2.297 2.301,2.299 1.032,2.297 0,1.268 0,0 m -3.682,0 c 0,3.306 2.677,5.978 5.983,5.981 C 5.604,5.978 8.278,3.302 8.278,0 8.278,-3.306 5.604,-5.983 2.301,-5.983 -1.005,-5.981 -3.682,-3.306 -3.682,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3436" /></g><g + id="g3438" + transform="translate(471.6475,182.0576)"><path + d="m 0,0 c 0,-2.291 -1.854,-4.144 -4.143,-4.144 -2.287,0 -4.142,1.853 -4.142,4.144 0,2.287 1.855,4.14 4.142,4.14 C -1.854,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3440" /></g><g + id="g3442" + transform="translate(465.2036,182.0576)"><path + d="M 0,0 C 0.002,-1.27 1.033,-2.301 2.301,-2.303 3.572,-2.301 4.598,-1.27 4.605,0 4.598,1.27 3.572,2.295 2.301,2.299 1.033,2.295 0.002,1.266 0,0 m -3.682,0 c 0,3.304 2.679,5.981 5.983,5.981 3.303,0 5.983,-2.677 5.983,-5.981 0,-3.304 -2.68,-5.983 -5.983,-5.983 -3.304,0 -5.983,2.675 -5.983,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3444" /></g><g + id="g3446" + transform="translate(484.0693,144.6611)"><path + d="m 0,0 c 0,-2.29 -1.853,-4.145 -4.14,-4.145 -2.287,0 -4.142,1.855 -4.142,4.145 0,2.287 1.855,4.139 4.142,4.139 C -1.853,4.139 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3448" /></g><g + id="g3450" + transform="translate(477.6269,144.6631)"><path + d="M 0,0 C 0.004,-1.271 1.033,-2.301 2.303,-2.306 3.572,-2.301 4.6,-1.275 4.602,0 4.6,1.268 3.572,2.294 2.303,2.299 1.033,2.294 0.004,1.268 0,0 m -3.679,0 c 0,3.304 2.674,5.978 5.982,5.979 3.303,0 5.979,-2.68 5.979,-5.979 0,-3.306 -2.676,-5.983 -5.979,-5.984 -3.308,0.001 -5.982,2.678 -5.982,5.984" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3452" /></g><g + id="g3454" + transform="translate(535.1471,62.7524)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.14,-4.142 -2.285,0 -4.142,1.855 -4.142,4.142 0,2.287 1.857,4.142 4.142,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3456" /></g><g + id="g3458" + transform="translate(528.7047,62.7539)"><path + d="M 0,0 C 0.003,-1.273 1.032,-2.297 2.302,-2.3 3.572,-2.297 4.599,-1.273 4.603,0 4.599,1.27 3.572,2.296 2.302,2.299 1.032,2.296 0.003,1.27 0,0 m -3.681,0 c 0,3.306 2.678,5.978 5.983,5.979 3.306,0 5.98,-2.677 5.98,-5.979 0,-3.305 -2.674,-5.982 -5.98,-5.982 -3.305,0.001 -5.983,2.675 -5.983,5.982" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3460" /></g><g + id="g3462" + transform="translate(576.5626,36.9849)"><path + d="m 0,0 c 0,-2.289 -1.856,-4.143 -4.144,-4.143 -2.285,0 -4.14,1.854 -4.14,4.143 0,2.287 1.855,4.14 4.14,4.14 C -1.856,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3464" /></g><g + id="g3466" + transform="translate(570.1168,36.9834)"><path + d="M 0,0 C 0.003,-1.27 1.036,-2.299 2.302,-2.301 3.572,-2.299 4.604,-1.271 4.604,0 4.604,1.271 3.572,2.3 2.302,2.302 1.036,2.3 0.003,1.27 0,0 M -3.682,0 C -3.679,3.305 -0.998,5.979 2.302,5.982 5.606,5.982 8.285,3.305 8.287,0 L 8.285,0 c 0,-3.302 -2.679,-5.979 -5.983,-5.979 -3.3,0 -5.981,2.675 -5.984,5.979" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3468" /></g><g + id="g3470" + transform="translate(526.8653,144.6611)"><path + d="m 0,0 c 0,-2.29 -1.854,-4.145 -4.14,-4.145 -2.289,0 -4.144,1.855 -4.144,4.145 0,2.287 1.855,4.139 4.144,4.139 C -1.854,4.139 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3472" /></g><g + id="g3474" + transform="translate(520.4194,144.6631)"><path + d="M 0,0 C 0.005,-1.275 1.032,-2.301 2.306,-2.304 3.574,-2.301 4.601,-1.275 4.604,0 4.601,1.268 3.574,2.297 2.306,2.299 1.032,2.297 0.005,1.265 0,0 m -3.679,0 c 0.002,3.304 2.678,5.978 5.985,5.979 3.3,0 5.979,-2.679 5.979,-5.979 0,-3.306 -2.679,-5.983 -5.979,-5.984 -3.307,0.001 -5.983,2.675 -5.985,5.984" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3476" /></g><g + id="g3478" + transform="translate(539.2887,153.8618)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.14 -4.142,-4.14 -2.285,0 -4.14,1.853 -4.14,4.14 0,2.287 1.855,4.142 4.14,4.142 C -1.853,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3480" /></g><g + id="g3482" + transform="translate(532.8448,153.8618)"><path + d="M 0,0 C 0.003,-1.27 1.034,-2.297 2.302,-2.299 3.574,-2.297 4.598,-1.271 4.604,0 4.598,1.272 3.574,2.297 2.302,2.301 1.034,2.297 0.003,1.27 0,0 m -3.681,0 c 0,3.306 2.678,5.983 5.983,5.983 3.304,0 5.981,-2.677 5.981,-5.983 0,-3.302 -2.677,-5.979 -5.981,-5.979 -3.305,0 -5.983,2.677 -5.983,5.979" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3484" /></g><g + id="g3486" + transform="translate(535.1471,116.5898)"><path + d="m 0,0 c 0,-2.285 -1.855,-4.14 -4.14,-4.14 -2.285,0 -4.142,1.855 -4.142,4.14 0,2.289 1.857,4.142 4.142,4.142 C -1.855,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3488" /></g><g + id="g3490" + transform="translate(528.7047,116.5898)"><path + d="M 0,0 C 0.003,-1.271 1.032,-2.295 2.302,-2.301 3.572,-2.295 4.599,-1.271 4.603,0 4.599,1.271 3.572,2.297 2.302,2.302 1.032,2.297 0.003,1.271 0,0 m -3.681,0 c 0,3.306 2.678,5.981 5.983,5.981 3.306,0 5.98,-2.677 5.98,-5.981 0,-3.302 -2.674,-5.981 -5.98,-5.981 -3.305,0.002 -5.983,2.675 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3492" /></g><g + id="g3494" + transform="translate(634.5416,116.5898)"><path + d="m 0,0 c 0,-2.285 -1.853,-4.14 -4.142,-4.14 -2.287,0 -4.142,1.855 -4.142,4.14 0,2.289 1.855,4.142 4.142,4.142 C -1.853,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3496" /></g><g + id="g3498" + transform="translate(628.0977,116.5918)"><path + d="M 0,0 C 0.001,-1.273 1.03,-2.297 2.302,-2.301 3.574,-2.297 4.596,-1.273 4.604,0 4.596,1.271 3.574,2.295 2.302,2.3 1.03,2.295 0.001,1.268 0,0 m -3.679,0 c 0,3.304 2.674,5.979 5.981,5.981 C 5.606,5.979 8.281,3.304 8.281,0 c 0,-3.306 -2.675,-5.983 -5.979,-5.983 -3.307,0 -5.981,2.675 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3500" /></g><g + id="g3502" + transform="translate(588.9845,182.0591)"><path + d="m 0,0 c 0,-2.291 -1.854,-4.145 -4.14,-4.145 -2.287,0 -4.142,1.854 -4.142,4.145 0,2.285 1.855,4.138 4.142,4.138 C -1.854,4.138 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3504" /></g><g + id="g3506" + transform="translate(582.54,182.0591)"><path + d="M 0,0 C 0.005,-1.27 1.034,-2.299 2.304,-2.304 3.576,-2.299 4.6,-1.271 4.604,0 4.6,1.267 3.576,2.297 2.304,2.3 1.034,2.297 0.005,1.267 0,0 m -3.681,0 c 0.004,3.302 2.68,5.979 5.985,5.981 C 5.608,5.979 8.284,3.302 8.284,0 c 0,-3.305 -2.676,-5.981 -5.98,-5.985 -3.305,0.004 -5.981,2.68 -5.985,5.985" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3508" /></g><g + id="g3510" + transform="translate(497.875,48.9473)"><path + d="m 0,0 c 0,-2.285 -1.855,-4.14 -4.14,-4.14 -2.287,0 -4.142,1.855 -4.142,4.14 0,2.289 1.855,4.142 4.142,4.142 C -1.855,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3512" /></g><g + id="g3514" + transform="translate(491.4307,48.9473)"><path + d="M 0,0 C 0.005,-1.27 1.034,-2.295 2.301,-2.297 3.574,-2.295 4.6,-1.27 4.601,0 4.6,1.273 3.574,2.299 2.301,2.301 1.034,2.299 0.005,1.268 0,0 m -3.679,0 c 0,3.306 2.678,5.979 5.98,5.983 3.305,0 5.984,-2.677 5.984,-5.983 0,-3.304 -2.679,-5.978 -5.984,-5.981 -3.302,0.003 -5.98,2.677 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3516" /></g><g + id="g3518" + transform="translate(412.7461,74.7183)"><path + d="m 0,0 c 0,-2.291 -1.853,-4.144 -4.14,-4.144 -2.287,0 -4.141,1.853 -4.141,4.144 0,2.285 1.854,4.138 4.141,4.138 C -1.853,4.138 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3520" /></g><g + id="g3522" + transform="translate(406.3042,74.7183)"><path + d="M 0,0 C 0.001,-1.27 1.031,-2.299 2.302,-2.304 3.57,-2.299 4.598,-1.273 4.603,0 4.598,1.27 3.57,2.299 2.302,2.3 1.031,2.299 0.001,1.266 0,0 m -3.682,0 c 0.003,3.302 2.675,5.979 5.984,5.979 3.302,0 5.98,-2.677 5.98,-5.979 0,-3.306 -2.678,-5.983 -5.98,-5.983 -3.309,0 -5.981,2.677 -5.984,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3524" /></g></g></g></g></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery-1.11.3.min.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,5 @@ +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; + +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ca()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?aa:ba):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fa=/ jQuery\d+="(?:null|\d+)"/g,ga=new RegExp("<(?:"+ea+")[\\s/>]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/<tbody/i,la=/<|&#?\w+;/,ma=/<(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ra={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?"<table>"!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&&Ga.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ha.test(g)&&!Ka.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp("^("+S+")(.*)$","i"),Qa=new RegExp("^([+-])=("+S+")","i"),Ra={position:"absolute",visibility:"hidden",display:"block"},Sa={letterSpacing:"0",fontWeight:"400"},Ta=["Webkit","O","Moz","ms"];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fa(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Ya(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Ja(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ha.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qa.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ja(a,b,d)),"normal"===f&&b in Sa&&(f=Sa[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&&Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Ma,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+" "+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Ja,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){ +return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lb,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&&qb||!pb.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&&qb||!pb.test(c)?a.setAttribute(!qb&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&&qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rb&&qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mb&&mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ub," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&])_=[^&]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb="*/".concat("*");try{zb=location.href}catch(Kb){zb=y.createElement("a"),zb.href="",zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:"GET",isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+"").replace(Ab,"").replace(Fb,yb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&&c[2]===yb[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yb[3]||("http:"===yb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wb.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bb.test(e)?e.replace(Bb,"$1_="+vb++):e+(wb.test(e)?"&":"?")+"_="+vb++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jb+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vb(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join("&").replace(Qb,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Ub.test(this.nodeName)&&!Tb.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,"\r\n")}}):{name:b.name,value:c.replace(Sb,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&&"withCredentials"in Yb,Yb=k.ajax=!!Yb,Yb&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_b.pop()||m.expando+"_"+vb++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ac.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ac.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,"$1"+e):b.jsonp!==!1&&(b.url+=(wb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.microsoft.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,31 @@ + + +$(document).ready( function() { + + // 1) remove all content + $( 'body > *' ).remove(); + + // 2) show banner + $( "<div>" ).html( + "<p>" + + "Microsoft's Internet Explorer browser has no built-in vector graphics machinery " + + "required for 'loss-free' gradient background themes." + + "</p>" + + "<p>" + + "Please <span style='background: yellow'>upgrade to a better browser</span> " + + "such as <a href='http://getfirefox.com'>Firefox</a>, <a href='http://www.opera.com/download'>Opera</a>, " + + "<a href='http://google.com/chrome'>Chrome</a>, <a href='http://apple.com/safari/download'>Safari</a> or others " + + "with built-in vector graphics machinery and much more. " + + "(Learn more or post questions or comments " + + "at the <a href='http://slideshow.rubyforge.org'>Slide Show (S9)</a> project site. Thanks!)" + + "</p>" + ) + .css( { + border: 'red solid thick', + padding: '1em', + fontFamily: 'sans-serif', + fontWeight: 'bold' } ) + .prependTo( 'body' ); + } +); +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.autoplay.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,91 @@ +/*********** + * + * autoplay addon: + * + * - use key-a/p/s to toggle autoplay (in projection mode) + */ + + +Slideshow.playInit = function() +{ + this.debug( 'calling playInit()' ); + + this.playInterval = null; +} + +Slideshow.playStart = function() +{ + this.debug( 'calling playStart()' ); + + if( this.settings.mode == 'autoplay' ) + this.playToggle(); +} + + +Slideshow.playKeys = function( event, key ) +{ + this.debug( 'calling playKeys()' ); + + switch( key.which ) { + case 65: //a + case 80: //p + case 83: //s + this.playToggle(); + break; + } +} + + +// ------------------------------------------------ + + +Slideshow.playWorker = function() +{ + this.debug( 'calling playWorker()' ); + + // suspend autoplay in outline view (just slideshow view) + if( !this.isProjection ) + return; + + // next slide/step, please + var csteps = this.steps[this.snum-1]; // current slide steps array + + if( !csteps || this.incpos >= csteps.length ) { + if( this.snum >= this.smax ) + this.goTo( 1 ); // reached end of show? start with 1st slide again (for endless cycle) + else + this.go(1); + } + else { + this.subgo(1); + } +} + + +Slideshow.playToggle = function() +{ + this.debug( 'calling playToggle()' ); + + if( this.playInterval ) + { + this.debug( 'stopping autoplay' ); + clearInterval( this.playInterval ); + this.playInterval = null; + } + else + { + this.debug( 'starting autoplay' ); + this.playInterval = setInterval( $.proxy( Slideshow.playWorker, this), 2000 ); + } +} + +// ------------------------------------------------ + +Slideshow.playAddEvents = function() +{ + $( document ).on( 'slideshow.init', $.proxy( Slideshow.playInit, this )); + $( document ).on( 'slideshow.start', $.proxy( Slideshow.playStart, this )); + $( document ).on( 'slideshow.keys', $.proxy( Slideshow.playKeys, this )); +} + +Slideshow.playAddEvents(); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.controls.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,219 @@ +/*********** + * + * control addon: + * + * adds toggle, prev slide, next slide links/buttons and jump list + * - use key-c to toggle controls (in projection mode) + * + * layout structure: + * + * .layout + * > #controls (holding navigation controls) + * > #navLinks + * > #toggle + * > #navList + * > #jumplist + */ + + +Slideshow.ctrlInit = function() +{ + this.debug( 'calling ctrlInit()' ); + + var self = this; // NOTE: jquery binds this in .each,.click, etc to element + + // todo: make layout into an id (not class?) + // do we need or allow more than one element? + + // if no div.layout exists, create one + if( $( '.layout' ).length == 0 ) + $( 'body' ).append( "<div class='layout'></div>"); + + $( '.layout' ).append( "<div id='controls'>" ); + + var $controls = $( '#controls' ) + + $controls.html( '<div id="navLinks">' + + '<a accesskey="t" id="toggle" href="#">Ø<\/a>' + + '<a accesskey="z" id="prev" href="#">«<\/a>' + + '<a accesskey="x" id="next" href="#">»<\/a>' + + '<div id="navList"><select id="jumplist" /><\/div>' + + '<\/div>' ); + + $controls.hover( function() { self.ctrlShow(); }, function() { self.ctrlHide(); }); + $('#toggle').click( function() { self.toggle(); } ); + $('#prev').click( function() { self.go(-1); } ); + $('#next').click( function() { self.go(1); } ); + + $('#jumplist').change( function() { self.goTo( parseInt( $( '#jumplist' ).val() )); } ); + + this.ctrlPopulateJumpList(); +} + + +Slideshow.ctrlDebugOn = function() +{ + this.debug( 'calling ctrlDebugOn()' ); + $( '#controls' ).addClass( 'debug' ); +} + +Slideshow.ctrlDebugOff = function() +{ + this.debug( 'calling ctrlDebugOff()' ); + $( '#controls' ).removeClass( 'debug' ); +} + +Slideshow.ctrlKeys = function( event, key ) +{ + this.debug( 'calling ctrlKeys()' ); + + switch( key.which ) { + case 67: // c + this.ctrlToggle(); + break; + } +} + +Slideshow.ctrlChange = function() +{ + this.debug( 'calling ctrlChange()' ); + this.ctrlUpdateJumpList(); +} + +// ----------------------------------------------------- + +Slideshow.ctrlPopulateJumpList = function() +{ + var self = this; // NOTE: jquery binds this in .each to element + + var list = $('#jumplist').get(0); + + this.$slides.each( function(i) { + var text = "-"; // untitled slide + + // todo: use titleSelector if user set?? + // $(this).find( self.settings.titleSelector ).text(); + + var $h1 = $( 'h1', this ); + if( $h1.length > 0 ) + { + text = $h1.first().text(); + } + else // try h2 + { + var $h2 = $( 'h2', this ); + if( $h2.length > 0 ) + { + text = $h2.first().text(); + } + else // try h3 + { + var $h3 = $( 'h3', this ); + if( $h3.length > 0 ) + { + text = $h3.first().text(); + } + } + } + + list.options[list.length] = new Option( (i+1)+' : '+ text, (i+1) ); + }); +} + +Slideshow.ctrlUpdateJumpList = function() +{ + $('#jumplist').get(0).selectedIndex = (this.snum-1); +} + +Slideshow.ctrlShow = function() +{ + $( '#navLinks' ).css( 'visibility', 'visible' ); +} + +Slideshow.ctrlHide = function() +{ + $( '#navLinks' ).css( 'visibility', 'hidden' ); +} + +Slideshow.ctrlToggle = function() +{ + // toggle control panel + var $navLinks = $( '#navLinks' ); + + if( $navLinks.css( 'visibility' ) != 'visible' ) + $navLinks.css( 'visibility', 'visible' ); + else + $navLinks.css( 'visibility', 'hidden' ); +} + + +// ------------------------------------------------ + +Slideshow.ctrlAddEvents = function() +{ + $( document ).on( 'slideshow.init', $.proxy( Slideshow.ctrlInit, this )); + $( document ).on( 'slideshow.debug.on', $.proxy( Slideshow.ctrlDebugOn, this )); + $( document ).on( 'slideshow.debug.off', $.proxy( Slideshow.ctrlDebugOff, this )); + $( document ).on( 'slideshow.keys', $.proxy( Slideshow.ctrlKeys, this )); + $( document ).on( 'slideshow.change', $.proxy( Slideshow.ctrlChange, this )); +} + +Slideshow.ctrlAddStyles = function() { + this.debug( 'add builtin controls css via inline style elements' ); + + var styleProjection = +"<style media='screen,projection'> \n"+ +" \n"+ +" #controls.debug { background: #BBD; } \n"+ +" \n"+ +" #controls { position: fixed; \n"+ +" left: 60%; bottom: 0; \n"+ +" width: 40%; \n"+ +" z-index: 100; \n"+ +" text-align: right; \n"+ +" font-weight: bold; \n"+ +" font-size: 120%; \n"+ +" } \n"+ +" \n"+ +" #controls :focus { outline: 1px dotted white;} \n"+ +" \n"+ +" #controls #navLinks { text-align: right; margin: 0; visibility: hidden; } \n"+ + +" \n"+ +" #controls #navLinks a { padding: 0; margin: 0 0.5em; cursor: pointer; border: none; } \n"+ +" \n"+ +" #controls #navLinks :link, \n"+ +" #controls #navLinks :visited {text-decoration: none; } \n"+ +" \n"+ +" #controls #navList #jumplist { background: white; color: black; } \n"+ +"</style>"; + + var styleScreen = +"<style media='screen'> \n"+ +"/********* \n"+ +" * make toggle button visible and reposition to upper right corner \n"+ +" * note: toogle button is nested inside #controls > #navLinks > #toogle \n"+ +" */ \n"+ +" \n"+ +" #controls, \n"+ +" #navLinks, \n"+ +" #toggle { display: block; \n"+ +" visibility: visible; \n"+ +" margin: 0; padding: 0; \n"+ +" } \n"+ +" \n"+ +" #toggle { position: fixed; \n"+ +" top: 0; right: 0; \n"+ +" padding: 0.5em; \n"+ +" border-left: 1px solid; \n"+ +" border-bottom: 1px solid; \n"+ +" background: white; \n"+ +" } \n"+ +"</style>"; + + $( 'head' ).append( styleProjection ); + $( 'head' ).append( styleScreen ); +} + +Slideshow.ctrlAddStyles(); +Slideshow.ctrlAddEvents(); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.counter.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,118 @@ +/*********** + * + * counter addon: + * + * adds slide counter (e.g. 1/7) + * - use key-n to toggle slide counter (in projection mode) + * + * layout structure: + * + * .layout + * > #counter (e.g. 1/7) + */ + + +Slideshow.counterInit = function() +{ + this.debug( 'calling counterInit()' ); + + // if no div.layout exists, create one + if( $( '.layout' ).length == 0 ) + $( 'body' ).append( "<div class='layout'></div>"); + + $( '.layout' ).append( "<div id='counter'>" ); + + this.counterUpdate(); +} + +Slideshow.counterDebugOn = function() +{ + this.debug( 'calling counterDebugOn()' ); + $( '#counter' ).addClass( 'debug' ); +} + +Slideshow.counterDebugOff = function() +{ + this.debug( 'calling counterDebugOff()' ); + $( '#counter' ).removeClass( 'debug' ); +} + +Slideshow.counterKeys = function( event, key ) +{ + this.debug( 'calling counterKeys()' ); + + switch( key.which ) { + case 78: // n + this.counterToggle(); + break; + } +} + +Slideshow.counterChange = function() +{ + this.debug( 'calling counterChange()' ); + this.counterUpdate(); +} + +// ------------------------------------------------ + +Slideshow.counterUpdate = function() +{ + $( '#counter' ).html( this.snum + '/' + this.smax ); +} + + +Slideshow.counterToggle = function() +{ + // toggle slide number/counter + + // todo/fix: note jquery sets inline css (e.g. display: block) + // but css won't get scoped for media (e.g. projection, screen, etc) + // thus, css changes "spill over" to all media types + + $( '#counter' ).toggle(); +} + +// ------------------------------------------------ + +Slideshow.counterAddEvents = function() +{ + $( document ).on( 'slideshow.init', $.proxy( Slideshow.counterInit, this )); + $( document ).on( 'slideshow.debug.on', $.proxy( Slideshow.counterDebugOn, this )); + $( document ).on( 'slideshow.debug.off', $.proxy( Slideshow.counterDebugOff, this )); + $( document ).on( 'slideshow.keys', $.proxy( Slideshow.counterKeys, this )); + $( document ).on( 'slideshow.change', $.proxy( Slideshow.counterChange, this )); +} + +Slideshow.counterAddStyles = function() { + this.debug( 'add builtin counter css via inline style elements' ); + + var styleProjection = +"<style media='screen,projection'> \n"+ +" \n"+ +" #counter.debug { background: #FFC; } \n"+ +" \n"+ +" #counter { position: fixed; \n"+ +" left: 45%; bottom: 1em; \n"+ +" width: 10%; \n"+ +" z-index: 10; \n"+ +" text-align: center; \n"+ +" font-size: 80%; \n"+ +" } \n"+ +" \n"+ +" #counter :link, \n"+ +" #counter :visited { text-decoration: none; } \n"+ +" \n"+ +"</style>"; + + var styleScreen = +"<style media='screen'> \n"+ +" #counter { display: none !important; } \n"+ +"</style>"; + + $( 'head' ).append( styleProjection ); + $( 'head' ).append( styleScreen ); +} + +Slideshow.counterAddStyles(); +Slideshow.counterAddEvents(); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.footer.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,82 @@ +/*********** + * + * footer/header addon: + * + * adds footer/header + * - use key-f to toggle footer/header (in projection mode) + * + * layout structure: + * + * .layout + * > #header + * > #footer + */ + + +Slideshow.footerDebugOn = function() +{ + this.debug( 'calling footerDebugOn()' ); + + $( '.layout #header,.layout header' ).addClass( 'debug' ); + $( '.layout #footer,.layout footer' ).addClass( 'debug' ); +} + +Slideshow.footerDebugOff = function() +{ + this.debug( 'calling footerDebugOff()' ); + + $( '.layout #header,.layout header' ).removeClass( 'debug' ); + $( '.layout #footer,.layout footer' ).removeClass( 'debug' ); +} + +Slideshow.footerKeys = function( event, key ) +{ + this.debug( 'calling footerKeys()' ); + + switch( key.which ) { + case 70: //f + this.footerToggle(); + break; + } +} + +// ------------------------------------------------ + +Slideshow.footerToggle = function() +{ + // todo/fix: note jquery sets inline css (e.g. display: block) + // but css won't get scoped for media (e.g. projection, screen, etc) + // thus, css changes "spill over" to all media types + + // fix: add/remove Class hidden?? instead of toggle() + + $( '.layout #footer, .layout footer').toggle(); +} + +// ------------------------------------------------ + +Slideshow.footerAddEvents = function() +{ + $( document ).on( 'slideshow.debug.on', $.proxy( Slideshow.footerDebugOn, this )); + $( document ).on( 'slideshow.debug.off', $.proxy( Slideshow.footerDebugOff, this )); + $( document ).on( 'slideshow.keys', $.proxy( Slideshow.footerKeys, this )); +} + +Slideshow.footerAddStyles = function() { + this.debug( 'add builtin footer/header css via inline style elements' ); + + var styleProjection = +"<style media='screen,projection'> \n"+ +" .layout #footer.debug, \n"+ +" .layout footer.debug { background: #CCF; } \n"+ +" \n"+ +" .layout #header.debug, \n"+ +" .layout header.debug { background: #FCC; } \n"+ +"</style>"; + + $( 'head' ).append( styleProjection ); +} + + +Slideshow.footerAddStyles(); +Slideshow.footerAddEvents(); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,535 @@ + +var Slideshow = { + + settings: { + debug: true + }, + + isProjection: false, // are we in projection (slideshow) mode (in contrast to screen (outline) mode)? + snum: 1, // current slide # (non-zero based index e.g. starting with 1) + smax: 1, // max number of slides + incpos: 0, // current step in slide + steps: null, + + $slides: null, + $stylesProjection: null, + $stylesScreen: null, + + slideClasses: [ 'far-past', 'past', 'current', 'next', 'far-next' ] +}; + + +/************************************ + * lets you define your own "global" transition function + * passes in a reference to from and to slide wrapped in jQuery wrapper + * + * see jquery.slideshow.transition.js for more examples + */ + +Slideshow.transition = function( $from, $to ) { + // do nothing here; by default lets use css3 for transition effects +} + + +Slideshow.debug = function( msg ) { + if( this.settings.debug && window.console && window.console.log ) + window.console.log( '[debug] ' + msg ); +} + + +Slideshow.init = function( options ) { + + this.settings = $.extend({ + mode : 'slideshow', // slideshow | outline | autoplay + titleSelector : 'h1', + slideSelector : '.slide', // dummy (not yet working) + stepSelector : '.step', // dummy (not yet working) + debug : false, + normalize : true // normalize selectors (that is, allow aliases + // e.g. build,action,etc. for step and so on) + }, options || {}); + + this.isProjection = false; // are we in projection (slideshow) mode (in contrast to screen (outline) mode)? + this.snum = 1; // current slide # (non-zero based index e.g. starting with 1) + this.smax = 1; // max number of slides + this.incpos = 0; // current step in slide + this.steps = null; + + if( this.settings.normalize == true ) + this.normalize(); + + this.$slides = $( '.slide' ); + + this.smax = this.$slides.length; + + this.addSlideIds(); + this.steps = this.collectSteps(); + this.updateSlides(); // mark slides w/ far-past,past,current,next,far-next + + // $stylesProjection holds all styles (<link rel="stylesheet"> or <style> w/ media type projection) + // $stylesScreen holds all styles (<link rel="stylesheet"> or <style> w/ media type screen) + + // add workaround for chrome + // use screen,projection instead of projection + // (without projection inline style tag gets not parsed into a styleSheet accesible via JavaScript) + + this.$stylesProjection = $( 'link[media*=projection], style[media*=projection]' ).not('[rel*=less]').not('[type*=less]'); + this.$stylesScreen = $( 'link[media*=screen], style[media*=screen]' ).not('[media*=projection]').not('[rel*=less]').not('[type*=less]') ; + + $( document ).trigger( 'slideshow.init' ); // fire init for addons + + this.addClicker(); + + + // opera is the only browser currently supporting css projection mode + this.notOperaFix(); + + // store possible slidenumber from hash */ + // todo: use regex to extract number + // might be #slide1 or just #1 + + var gotoSlideNum = parseInt( window.location.hash.substring(1) ); + this.debug( "gotoSlideNum=" + gotoSlideNum ); + + if( !isNaN( gotoSlideNum )) + { + this.debug( "restoring slide on (re)load #: " + gotoSlideNum ); + this.goTo( gotoSlideNum ); + } + + if( this.settings.mode == 'outline' ) + this.toggle(); + + $( document ).trigger( 'slideshow.start' ); // fire start for addons + + $( document ).on( 'keyup', $.proxy( Slideshow.keys, this )); +} // end init() + + +Slideshow.normalize = function() { + + // check for .presentation aliases, that is, .deck, .slides + $( '.deck, .slides' ).addClass( 'presentation' ); + + // add slide class to immediate children + // todo: use autoslide option that lets you turn on/off option? + $( '.presentation' ).children().addClass( 'slide' ); + + // todo: scope with .slide?? e.g .slide .incremental + // todo: make removing "old" class an option?? + + // check for .step aliases, that is, .incremental, .delayed, .action, .build + $( '.incremental, .delayed, .action, .build' ).addClass( 'step' ); + + // check for .notes aliases, that is, .note, .handout + $( '.note, .handout' ).addClass( 'notes' ); + +} + +Slideshow.notOperaFix = function() { + // 1) switch media type from projection to screen + + var self = this; // NOTE: jquery binds this in .each to element + + this.$stylesProjection.each( function(i) { + var styleProjection = this; + // note: no longer used; workaround for chrome needs screen,projection to make it work (thus, no need to switch to screen) + // styleProjection.media = 'screen'; + styleProjection.disabled = true; + + self.debug( "notOperaFix - stylesProjection["+i+"] switching media type from projection to screen" ); + } ); + + this.isProjection = false; + + // 2) disable screen styles and enable projection styles (thus, switch into projection mode) + this.toggle(); + + // now we should be in project mode +} // end notOperatFix() + + +Slideshow.toggle = function() { + // todo: use settings.isProjection for state tracking + // and change disable accordingly (plus assert that all styles are in the state as expected) + + // toggle between projection (slide show) mode + // and screen (outline) mode + + var self = this; // NOTE: jquery binds this in .each to element + + this.$stylesProjection.each( function(i) { + var styleProjection = this; + + styleProjection.disabled = !styleProjection.disabled; + + self.debug( "toggle - stylesProjection["+i+"] disabled? " + styleProjection.disabled ); + }); + + this.$stylesScreen.each( function(i) { + var styleScreen = this; + + styleScreen.disabled = !styleScreen.disabled; + + self.debug( "toggle - stylesScreen["+i+"] disabled? " + styleScreen.disabled ); + + // update isProjection flag + self.isProjection = styleScreen.disabled; + }); + +/* + * note: code no longer needed; using (adding/removing) css classes hide/show) + * + + if( this.isProjection ) + { + this.$slides.each( function(i) { + if( i == (self.snum-1) ) + $(this).show(); + else + $(this).hide(); + }); + } + else + { + this.$slides.show(); + } +*/ +} // end toggle() + + +Slideshow.updatePermaLink = function() +{ + // todo: unify hash marks??; use #1 for div ids instead of #slide1? + window.location.hash = '#'+ this.snum; +} + +Slideshow.goTo = function( target ) +{ + if( target > this.smax || target == this.snum ) + return; + + this.go( target - this.snum ); +} + +Slideshow.go = function( dir ) +{ + this.debug( 'go: ' + dir ); + + if( dir == 0 ) return; /* same slide; nothing to do */ + + var cid = '#slide' + this.snum; /* current slide (selector) id */ + var csteps = this.steps[ this.snum-1 ]; /* current slide steps array */ + + /* remove all step and stepcurrent classes from current slide */ + if( csteps.length > 0) { + $( csteps ).each( function() { + $(this).removeClass( 'step' ).removeClass( 'stepcurrent' ); + } ); + } + + /* set snum to next slide */ + this.snum += dir; + if( this.snum > this.smax ) this.snum = this.smax; + if( this.snum < 1 ) this.snum = 1; + + var nid = '#slide' + this.snum; /* next slide (selector) id */ + var nsteps = this.steps[this.snum-1]; /* next slide steps array */ + + if( dir < 0 ) /* go backwards? */ + { + this.incpos = nsteps.length; + /* mark last step as current step */ + if( nsteps.length > 0 ) + $( nsteps[this.incpos-1] ).addClass( 'stepcurrent' ); + } + else /* go forwards? */ + { + this.incpos = 0; + if( nsteps.length > 0 ) { + $( nsteps ).each( function() { + $(this).addClass( 'step' ).removeClass( 'stepcurrent' ); + } ); + } + } + + if( !(cid == nid) ) { + this.updateSlides(); + + this.debug( "transition from " + cid + " to " + nid ); + this.transition( $( cid ), $( nid ) ); + + // only fire change event if slide changes + $( document ).trigger( 'slideshow.change', [$( cid ), $( nid )]); + } + + this.updatePermaLink(); +} // end go() + + +Slideshow.updateSlideClass = function( $slide, className ) +{ + if( className ) + $slide.addClass( className ); + + for( var i in this.slideClasses ) + { + if( className != this.slideClasses[i] ) + $slide.removeClass( this.slideClasses[i] ); + } +} + +Slideshow.updateSlides = function() +{ + var self = this; + this.$slides.each( function( i ) { + switch( i ) { + case (self.snum-1)-2: + self.updateSlideClass( $(this), 'far-past' ); + break; + case (self.snum-1)-1: + self.updateSlideClass( $(this), 'past' ); + break; + case (self.snum-1): + self.updateSlideClass( $(this), 'current' ); + break; + case (self.snum-1)+1: + self.updateSlideClass( $(this), 'next' ); + break; + case (self.snum-1)+2: + self.updateSlideClass( $(this), 'far-next' ); + break; + default: + self.updateSlideClass( $(this) ); + break; + } + }); +} + + + +Slideshow.subgo = function( dir ) +{ + this.debug( 'subgo: ' + dir + ', incpos before: ' + this.incpos + ', after: ' + (this.incpos+dir) ); + + var csteps = this.steps[this.snum-1]; /* current slide steps array */ + + if( dir > 0) + { /* go forward? */ + if( this.incpos > 0 ) + $( csteps[this.incpos-1] ).removeClass( 'stepcurrent' ); + $( csteps[this.incpos] ).removeClass( 'step').addClass( 'stepcurrent' ); + this.incpos++; + } + else + { /* go backwards? */ + this.incpos--; + $( csteps[this.incpos] ).removeClass( 'stepcurrent' ).addClass( 'step' ); + if( this.incpos > 0 ) + $( csteps[this.incpos-1] ).addClass( 'stepcurrent' ); + } +} // end subgo() + + +Slideshow.keys = function( key ) +{ + this.debug( "enter keys()" ); + + if( !key ) { + key = event; + key.which = key.keyCode; + } + if( key.which == 84 ) { + this.toggle(); // toggle between project and screen css media mode + return; + } + if( this.isProjection ) { + switch( key.which ) { + case 32: // spacebar + case 34: // page down + case 39: // rightkey + case 40: // downkey + + var csteps = this.steps[this.snum-1]; /* current slide steps array */ + + if( !csteps || this.incpos >= csteps.length ) { + this.go(1); + } else { + this.subgo(1); + } + break; + case 33: // page up + case 37: // leftkey + case 38: // upkey + + if( !this.steps[this.snum-1] || this.incpos <= 0 ) { + this.go(-1); + } else { + this.subgo(-1); + } + break; + case 36: // home + this.goTo(1); + break; + case 35: // end + this.goTo( this.smax ); + break; + case 68: // d + this.toggleDebug(); + break; + } + $( document ).trigger( 'slideshow.keys', key ); + } +} // end keys() + + +Slideshow.toggleDebug = function() +{ + this.settings.debug = !this.settings.debug; + this.doDebug(); +} + +Slideshow.doDebug = function() +{ + if( this.settings.debug == true ) + { + $( document ).trigger( 'slideshow.debug.on' ); + } + else + { + $( document ).trigger( 'slideshow.debug.off' ); + } +} + +Slideshow.collectStepsWorker = function(obj) +{ + var self = this; // NOTE: jquery binds this in .each,.click, etc to element + + var steps = []; + if( !obj ) + return steps; + + $(obj).children().each( function() { + if( $(this).hasClass( 'step' ) ) { + + self.debug( 'step found for ' + this.tagName ); + $(this).removeClass( 'step' ); + + /* don't add enclosing list; instead add step class to all list items/children */ + if( $(this).is( 'ol,ul' ) ) { + self.debug( ' ol or ul found; adding auto steps' ); + $(this).children().addClass( 'step' ); + } + else + { + steps.push( this ) + } + } + steps = steps.concat( self.collectStepsWorker( this ) ); + }); + + return steps; +} // end collectStepWorkers + +Slideshow.collectSteps = function() +{ + var self = this; // NOTE: jquery binds this in .each,.click, etc to element + + var steps = []; + + this.$slides.each( function(i) { + self.debug ( 'collectSteps for ' + this.id + ':' ); + steps[i] = self.collectStepsWorker( this ); + }); + + $( steps ).each( function(i) { + self.debug( 'slide ' + (i+1) + ': found ' + this.length + ' steps' ); + }); + + return steps; +} // end collectSteps() + + +Slideshow.addClicker = function() +{ + var self = this; // NOTE: jquery binds this in .each,.click, etc to element + + // if you click on heading of slide -> go to next slide (or next step) + + $( this.settings.titleSelector, this.$slides ).click( function( ev ) { + if(ev.which != 1) return; // only process left clicks (e.g 1; middle and rightclick use 2 and 3) + + if( !self.isProjection ) // suspend clicker in outline view (just slideshow view) + return; + + var csteps = self.steps[self.snum-1]; // current slide steps array + if ( !csteps || self.incpos >= csteps.length ) + self.go(1); + else + self.subgo(1); + }); + + + $( this.settings.titleSelector, this.$slides ).on('contextmenu', function() { + if( !self.isProjection ) // suspend clicker in outline view (just slideshow view) + return; + + var csteps = self.steps[self.snum-1]; // current slide steps array + if ( !csteps || self.incpos >= csteps.length ) + self.go(-1); + else + self.subgo(-1); + + return false; + } ); +} // end addClicker() + + +Slideshow.addSlideIds = function() { + this.$slides.each( function(i) { + this.id = 'slide'+(i+1); + }); +} + + +Slideshow.addStyles = function() { + this.debug( 'add builtin css via inline style elements' ); + + var styleProjection = +"<style media='screen,projection'> \n"+ +" .slide { display: block; } \n"+ +" .notes { display: none; } \n"+ +" .layout { display: block; } \n"+ +"</style>"; + + var styleScreen = +"<style media='screen'> \n"+ +"/**** \n"+ +" * hide layout stuff (header, footer, navLinks, navList etc.) \n"+ +" */ \n"+ +" \n"+ +" .layout * { display: none; } \n"+ +"</style>"; + + var stylePrint = +"<style media='print'> \n"+ +" \n"+ +" .slide { display: block !important; } \n"+ +" .layout, .layout * { display: none !important; } \n"+ +" \n"+ +"/****** \n"+ +" * Turn on print-specific stuff/classes \n"+ +" */ \n"+ +" \n"+ +" .extra { display: block !important; } \n"+ +"</style>"; + + // note: use prepend (not append) to make sure this + // styles come first (and do not overrule user supplied styles) + + $( 'head' ).prepend( styleProjection ); + $( 'head' ).prepend( styleScreen ); + $( 'head' ).prepend( stylePrint ); +} + +Slideshow.addStyles();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.ready.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,15 @@ + +$(document).ready( function() { + Slideshow.init(); + + // Example 2: Start Off in Outline Mode + // Slideshow.init( { mode: 'outline' } ); + + // Example 3: Use Custom Transition + // Slideshow.transition = transitionScrollUp; + // Slideshow.init(); + + // Example 4: Start Off in Autoplay Mode with Custom Transition + // Slideshow.transition = transitionScrollUp; + // Slideshow.init( { mode: 'autoplay' } ); +} ); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/jquery.slideshow.transition.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,38 @@ + +function transition( $from, $to ) { + $from.hide(); + $to.show(); +} + +function transitionSlideUpSlideDown( $from, $to ) { + $from.slideUp( 500, function() { $to.slideDown( 1000 ); } ); +} + +function transitionFadeOutFadeIn( $from, $to ) { + $from.fadeOut( 500 ); + $to.fadeIn( 500 ); +} + +/*********************** + * sample custom transition using scrollUp effect + * inspired by Karl Swedberg's Scroll Up Headline Reader jQuery Tutorial[1] + * [1] http://docs.jquery.com/Tutorials:Scroll_Up_Headline_Reader + */ + +function transitionScrollUp( $from, $to ) { + var cheight = $from.outerHeight(); + + // hide scrollbar during animation + $( 'body' ).css( 'overflow-y', 'hidden' ); + + $to.css( 'top', cheight+'px' ); + $to.show(); + + $from.animate( {top: -cheight}, 'slow' ); + $to.animate( {top: 0}, 'slow', function() { + $from.hide().css( 'top', '0px'); + + // restore possible scrollbar + $( 'body' ).css( 'overflow-y', 'auto' ); + }); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/js/less-2.5.3.min.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,18 @@ +/*! + * Less - Leaner CSS v2.5.3 + * http://lesscss.org + * + * Copyright (c) 2009-2015, Alexis Sellier <self@cloudhead.net> + * Licensed under the License. + * + */ + + /** * @license + */ + +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.less=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;d.length>g;g++)e(d[g]);return e}({1:[function(a,b){var c=a("./utils").addDataAttr,d=a("./browser");b.exports=function(a,b){c(b,d.currentScript(a)),void 0===b.isFileProtocol&&(b.isFileProtocol=/^(file|(chrome|safari)(-extension)?|resource|qrc|app):/.test(a.location.protocol)),b.async=b.async||!1,b.fileAsync=b.fileAsync||!1,b.poll=b.poll||(b.isFileProtocol?1e3:1500),b.env=b.env||("127.0.0.1"==a.location.hostname||"0.0.0.0"==a.location.hostname||"localhost"==a.location.hostname||a.location.port&&a.location.port.length>0||b.isFileProtocol?"development":"production");var e=/!dumpLineNumbers:(comments|mediaquery|all)/.exec(a.location.hash);e&&(b.dumpLineNumbers=e[1]),void 0===b.useFileCache&&(b.useFileCache=!0),void 0===b.onReady&&(b.onReady=!0)}},{"./browser":3,"./utils":9}],2:[function(a,b){a("promise/polyfill.js");var c=window.less||{};a("./add-default-options")(window,c);var d=b.exports=a("./index")(window,c);window.less=d,c.onReady&&(/!watch/.test(window.location.hash)&&d.watch(),d.registerStylesheetsImmediately(),d.pageLoadFinished=d.refresh("development"===d.env))},{"./add-default-options":1,"./index":7,"promise/polyfill.js":95}],3:[function(a,b){var c=a("./utils");b.exports={createCSS:function(a,b,d){var e=d.href||"",f="less:"+(d.title||c.extractId(e)),g=a.getElementById(f),h=!1,i=a.createElement("style");i.setAttribute("type","text/css"),d.media&&i.setAttribute("media",d.media),i.id=f,i.styleSheet||(i.appendChild(a.createTextNode(b)),h=null!==g&&g.childNodes.length>0&&i.childNodes.length>0&&g.firstChild.nodeValue===i.firstChild.nodeValue);var j=a.getElementsByTagName("head")[0];if(null===g||h===!1){var k=d&&d.nextSibling||null;k?k.parentNode.insertBefore(i,k):j.appendChild(i)}if(g&&h===!1&&g.parentNode.removeChild(g),i.styleSheet)try{i.styleSheet.cssText=b}catch(l){throw new Error("Couldn't reassign styleSheet.cssText.")}},currentScript:function(a){var b=a.document;return b.currentScript||function(){var a=b.getElementsByTagName("script");return a[a.length-1]}()}}},{"./utils":9}],4:[function(a,b){b.exports=function(a,b,c){var d=null;if("development"!==b.env)try{d="undefined"==typeof a.localStorage?null:a.localStorage}catch(e){}return{setCSS:function(a,b,e){if(d){c.info("saving "+a+" to cache.");try{d.setItem(a,e),d.setItem(a+":timestamp",b)}catch(f){c.error('failed to save "'+a+'" to local storage for caching.')}}},getCSS:function(a,b){var c=d&&d.getItem(a),e=d&&d.getItem(a+":timestamp");return e&&b.lastModified&&new Date(b.lastModified).valueOf()===new Date(e).valueOf()?c:void 0}}}},{}],5:[function(a,b){var c=a("./utils"),d=a("./browser");b.exports=function(a,b,e){function f(b,f){var g,h,i="less-error-message:"+c.extractId(f||""),j='<li><label>{line}</label><pre class="{class}">{content}</pre></li>',k=a.document.createElement("div"),l=[],m=b.filename||f,n=m.match(/([^\/]+(\?.*)?)$/)[1];k.id=i,k.className="less-error-message",h="<h3>"+(b.type||"Syntax")+"Error: "+(b.message||"There is an error in your .less file")+'</h3><p>in <a href="'+m+'">'+n+"</a> ";var o=function(a,b,c){void 0!==a.extract[b]&&l.push(j.replace(/\{line\}/,(parseInt(a.line,10)||0)+(b-1)).replace(/\{class\}/,c).replace(/\{content\}/,a.extract[b]))};b.extract&&(o(b,0,""),o(b,1,"line"),o(b,2,""),h+="on line "+b.line+", column "+(b.column+1)+":</p><ul>"+l.join("")+"</ul>"),b.stack&&(b.extract||e.logLevel>=4)&&(h+="<br/>Stack Trace</br />"+b.stack.split("\n").slice(1).join("<br/>")),k.innerHTML=h,d.createCSS(a.document,[".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #dd6666;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.line {","color: #ff0000;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"),{title:"error-message"}),k.style.cssText=["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),"development"===e.env&&(g=setInterval(function(){var b=a.document,c=b.body;c&&(b.getElementById(i)?c.replaceChild(k,b.getElementById(i)):c.insertBefore(k,c.firstChild),clearInterval(g))},10))}function g(a,b){e.errorReporting&&"html"!==e.errorReporting?"console"===e.errorReporting?k(a,b):"function"==typeof e.errorReporting&&e.errorReporting("add",a,b):f(a,b)}function h(b){var d=a.document.getElementById("less-error-message:"+c.extractId(b));d&&d.parentNode.removeChild(d)}function i(){}function j(a){e.errorReporting&&"html"!==e.errorReporting?"console"===e.errorReporting?i(a):"function"==typeof e.errorReporting&&e.errorReporting("remove",a):h(a)}function k(a,c){var d="{line} {content}",f=a.filename||c,g=[],h=(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+" in "+f+" ",i=function(a,b,c){void 0!==a.extract[b]&&g.push(d.replace(/\{line\}/,(parseInt(a.line,10)||0)+(b-1)).replace(/\{class\}/,c).replace(/\{content\}/,a.extract[b]))};a.extract&&(i(a,0,""),i(a,1,"line"),i(a,2,""),h+="on line "+a.line+", column "+(a.column+1)+":\n"+g.join("\n")),a.stack&&(a.extract||e.logLevel>=4)&&(h+="\nStack Trace\n"+a.stack),b.logger.error(h)}return{add:g,remove:j}}},{"./browser":3,"./utils":9}],6:[function(a,b){b.exports=function(b,c){function d(){if(window.XMLHttpRequest&&!("file:"===window.location.protocol&&"ActiveXObject"in window))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(a){return c.error("browser doesn't support AJAX."),null}}var e=a("../less/environment/abstract-file-manager.js"),f={},g=function(){};return g.prototype=new e,g.prototype.alwaysMakePathsAbsolute=function(){return!0},g.prototype.join=function(a,b){return a?this.extractUrlParts(b,a).path:b},g.prototype.doXHR=function(a,e,f,g){function h(b,c,d){b.status>=200&&300>b.status?c(b.responseText,b.getResponseHeader("Last-Modified")):"function"==typeof d&&d(b.status,a)}var i=d(),j=b.isFileProtocol?b.fileAsync:b.async;"function"==typeof i.overrideMimeType&&i.overrideMimeType("text/css"),c.debug("XHR: Getting '"+a+"'"),i.open("GET",a,j),i.setRequestHeader("Accept",e||"text/x-less, text/css; q=0.9, */*; q=0.5"),i.send(null),b.isFileProtocol&&!b.fileAsync?0===i.status||i.status>=200&&300>i.status?f(i.responseText):g(i.status,a):j?i.onreadystatechange=function(){4==i.readyState&&h(i,f,g)}:h(i,f,g)},g.prototype.supports=function(){return!0},g.prototype.clearFileCache=function(){f={}},g.prototype.loadFile=function(a,b,c,d,e){b&&!this.isPathAbsolute(a)&&(a=b+a),c=c||{};var g=this.extractUrlParts(a,window.location.href),h=g.url;if(c.useFileCache&&f[h])try{var i=f[h];e(null,{contents:i,filename:h,webInfo:{lastModified:new Date}})}catch(j){e({filename:h,message:"Error loading file "+h+" error was "+j.message})}else this.doXHR(h,c.mime,function(a,b){f[h]=a,e(null,{contents:a,filename:h,webInfo:{lastModified:b}})},function(a,b){e({type:"File",message:"'"+b+"' wasn't found ("+a+")",href:h})})},g}},{"../less/environment/abstract-file-manager.js":14}],7:[function(a,b){var c=a("./utils").addDataAttr,d=a("./browser");b.exports=function(b,e){function f(a){return e.postProcessor&&"function"==typeof e.postProcessor&&(a=e.postProcessor.call(a,a)||a),a}function g(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function h(a,b){var c=Array.prototype.slice.call(arguments,2);return function(){var d=c.concat(Array.prototype.slice.call(arguments,0));return a.apply(b,d)}}function i(a){for(var b,c=m.getElementsByTagName("style"),d=0;c.length>d;d++)if(b=c[d],b.type.match(t)){var f=g(e);f.modifyVars=a;var i=b.innerHTML||"";f.filename=m.location.href.replace(/#.*$/,""),n.render(i,f,h(function(a,b,c){b?r.add(b,"inline"):(a.type="text/css",a.styleSheet?a.styleSheet.cssText=c.css:a.innerHTML=c.css)},null,b))}}function j(a,b,d,h,i){function j(c){var e=c.contents,g=c.filename,i=c.webInfo,j={currentDirectory:q.getPath(g),filename:g,rootFilename:g,relativeUrls:k.relativeUrls};if(j.entryPath=j.currentDirectory,j.rootpath=k.rootpath||j.currentDirectory,i&&(i.remaining=h,!k.modifyVars)){var l=s.getCSS(g,i);if(!d&&l)return i.local=!0,void b(null,l,e,a,i,g)}r.remove(g),k.rootFileInfo=j,n.render(e,k,function(c,d){c?(c.href=g,b(c)):(d.css=f(d.css),k.modifyVars||s.setCSS(a.href,i.lastModified,d.css),b(null,d.css,e,a,i,g))})}var k=g(e);c(k,a),k.mime=a.type,i&&(k.modifyVars=i),q.loadFile(a.href,null,k,o,function(a,c){return a?void b(a):void j(c)})}function k(a,b,c){for(var d=0;n.sheets.length>d;d++)j(n.sheets[d],a,b,n.sheets.length-(d+1),c)}function l(){"development"===n.env&&(n.watchTimer=setInterval(function(){n.watchMode&&(q.clearFileCache(),k(function(a,c,e,f){a?r.add(a,a.href||f.href):c&&d.createCSS(b.document,c,f)}))},e.poll))}var m=b.document,n=a("../less")();n.options=e;var o=n.environment,p=a("./file-manager")(e,n.logger),q=new p;o.addFileManager(q),n.FileManager=p,a("./log-listener")(n,e);var r=a("./error-reporting")(b,n,e),s=n.cache=e.cache||a("./cache")(b,e,n.logger);e.functions&&n.functions.functionRegistry.addMultiple(e.functions);var t=/^text\/(x-)?less$/;return n.watch=function(){return n.watchMode||(n.env="development",l()),this.watchMode=!0,!0},n.unwatch=function(){return clearInterval(n.watchTimer),this.watchMode=!1,!1},n.registerStylesheetsImmediately=function(){var a=m.getElementsByTagName("link");n.sheets=[];for(var b=0;a.length>b;b++)("stylesheet/less"===a[b].rel||a[b].rel.match(/stylesheet/)&&a[b].type.match(t))&&n.sheets.push(a[b])},n.registerStylesheets=function(){return new Promise(function(a){n.registerStylesheetsImmediately(),a()})},n.modifyVars=function(a){return n.refresh(!0,a,!1)},n.refresh=function(a,c,e){return(a||e)&&e!==!1&&q.clearFileCache(),new Promise(function(e,f){var g,h,j;g=h=new Date,k(function(a,c,i,k,l){return a?(r.add(a,a.href||k.href),void f(a)):(n.logger.info(l.local?"loading "+k.href+" from cache.":"rendered "+k.href+" successfully."),d.createCSS(b.document,c,k),n.logger.info("css for "+k.href+" generated in "+(new Date-h)+"ms"),0===l.remaining&&(j=new Date-g,n.logger.info("less has finished. css generated in "+j+"ms"),e({startTime:g,endTime:h,totalMilliseconds:j,sheets:n.sheets.length})),void(h=new Date))},a,c),i(c)})},n.refreshStyles=i,n}},{"../less":30,"./browser":3,"./cache":4,"./error-reporting":5,"./file-manager":6,"./log-listener":8,"./utils":9}],8:[function(a,b){b.exports=function(a,b){var c=4,d=3,e=2,f=1;b.logLevel="undefined"!=typeof b.logLevel?b.logLevel:"development"===b.env?d:f,b.loggers||(b.loggers=[{debug:function(a){b.logLevel>=c&&console.log(a)},info:function(a){b.logLevel>=d&&console.log(a)},warn:function(a){b.logLevel>=e&&console.warn(a)},error:function(a){b.logLevel>=f&&console.error(a)}}]);for(var g=0;b.loggers.length>g;g++)a.logger.addListener(b.loggers[g])}},{}],9:[function(a,b){b.exports={extractId:function(a){return a.replace(/^[a-z-]+:\/+?[^\/]+/,"").replace(/[\?\&]livereload=\w+/,"").replace(/^\//,"").replace(/\.[a-zA-Z]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")},addDataAttr:function(a,b){for(var c in b.dataset)if(b.dataset.hasOwnProperty(c))if("env"===c||"dumpLineNumbers"===c||"rootpath"===c||"errorReporting"===c)a[c]=b.dataset[c];else try{a[c]=JSON.parse(b.dataset[c])}catch(d){}}}},{}],10:[function(a,b){var c={};b.exports=c;var d=function(a,b,c){if(a)for(var d=0;c.length>d;d++)a.hasOwnProperty(c[d])&&(b[c[d]]=a[c[d]])},e=["paths","relativeUrls","rootpath","strictImports","insecure","dumpLineNumbers","compress","syncImport","chunkInput","mime","useFileCache","processImports","reference","pluginManager"];c.Parse=function(a){d(a,this,e),"string"==typeof this.paths&&(this.paths=[this.paths])};var f=["paths","compress","ieCompat","strictMath","strictUnits","sourceMap","importMultiple","urlArgs","javascriptEnabled","pluginManager","importantScope"];c.Eval=function(a,b){d(a,this,f),"string"==typeof this.paths&&(this.paths=[this.paths]),this.frames=b||[],this.importantScope=this.importantScope||[]},c.Eval.prototype.inParenthesis=function(){this.parensStack||(this.parensStack=[]),this.parensStack.push(!0)},c.Eval.prototype.outOfParenthesis=function(){this.parensStack.pop()},c.Eval.prototype.isMathOn=function(){return this.strictMath?this.parensStack&&this.parensStack.length:!0},c.Eval.prototype.isPathRelative=function(a){return!/^(?:[a-z-]+:|\/|#)/i.test(a)},c.Eval.prototype.normalizePath=function(a){var b,c=a.split("/").reverse();for(a=[];0!==c.length;)switch(b=c.pop()){case".":break;case"..":0===a.length||".."===a[a.length-1]?a.push(b):a.pop();break;default:a.push(b)}return a.join("/")}},{}],11:[function(a,b){b.exports={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{}],12:[function(a,b){b.exports={colors:a("./colors"),unitConversions:a("./unit-conversions")}},{"./colors":11,"./unit-conversions":13}],13:[function(a,b){b.exports={length:{m:1,cm:.01,mm:.001,"in":.0254,px:.0254/96,pt:.0254/72,pc:.0254/72*12},duration:{s:1,ms:.001},angle:{rad:1/(2*Math.PI),deg:1/360,grad:.0025,turn:1}}},{}],14:[function(a,b){var c=function(){};c.prototype.getPath=function(a){var b=a.lastIndexOf("?");return b>0&&(a=a.slice(0,b)),b=a.lastIndexOf("/"),0>b&&(b=a.lastIndexOf("\\")),0>b?"":a.slice(0,b+1)},c.prototype.tryAppendExtension=function(a,b){return/(\.[a-z]*$)|([\?;].*)$/.test(a)?a:a+b},c.prototype.tryAppendLessExtension=function(a){return this.tryAppendExtension(a,".less")},c.prototype.supportsSync=function(){return!1},c.prototype.alwaysMakePathsAbsolute=function(){return!1},c.prototype.isPathAbsolute=function(a){return/^(?:[a-z-]+:|\/|\\|#)/i.test(a)},c.prototype.join=function(a,b){return a?a+b:b},c.prototype.pathDiff=function(a,b){var c,d,e,f,g=this.extractUrlParts(a),h=this.extractUrlParts(b),i="";if(g.hostPart!==h.hostPart)return"";for(d=Math.max(h.directories.length,g.directories.length),c=0;d>c&&h.directories[c]===g.directories[c];c++);for(f=h.directories.slice(c),e=g.directories.slice(c),c=0;f.length-1>c;c++)i+="../";for(c=0;e.length-1>c;c++)i+=e[c]+"/";return i},c.prototype.extractUrlParts=function(a,b){var c,d,e=/^((?:[a-z-]+:)?\/+?(?:[^\/\?#]*\/)|([\/\\]))?((?:[^\/\\\?#]*[\/\\])*)([^\/\\\?#]*)([#\?].*)?$/i,f=a.match(e),g={},h=[];if(!f)throw new Error("Could not parse sheet href - '"+a+"'");if(b&&(!f[1]||f[2])){if(d=b.match(e),!d)throw new Error("Could not parse page url - '"+b+"'");f[1]=f[1]||d[1]||"",f[2]||(f[3]=d[3]+f[3])}if(f[3]){for(h=f[3].replace(/\\/g,"/").split("/"),c=0;h.length>c;c++)"."===h[c]&&(h.splice(c,1),c-=1);for(c=0;h.length>c;c++)".."===h[c]&&c>0&&(h.splice(c-1,2),c-=2)}return g.hostPart=f[1],g.directories=h,g.path=(f[1]||"")+h.join("/"),g.fileUrl=g.path+(f[4]||""),g.url=g.fileUrl+(f[5]||""),g},b.exports=c},{}],15:[function(a,b){var c=a("../logger"),d=function(a,b){this.fileManagers=b||[],a=a||{};for(var c=["encodeBase64","mimeLookup","charsetLookup","getSourceMapGenerator"],d=[],e=d.concat(c),f=0;e.length>f;f++){var g=e[f],h=a[g];h?this[g]=h.bind(a):d.length>f&&this.warn("missing required function in environment - "+g)}};d.prototype.getFileManager=function(a,b,d,e,f){a||c.warn("getFileManager called with no filename.. Please report this issue. continuing."),null==b&&c.warn("getFileManager called with null directory.. Please report this issue. continuing.");var g=this.fileManagers;d.pluginManager&&(g=[].concat(g).concat(d.pluginManager.getFileManagers()));for(var h=g.length-1;h>=0;h--){var i=g[h];if(i[f?"supportsSync":"supports"](a,b,d,e))return i}return null},d.prototype.addFileManager=function(a){this.fileManagers.push(a)},d.prototype.clearFileManagers=function(){this.fileManagers=[]},b.exports=d},{"../logger":32}],16:[function(a){function b(a,b,d){var e,f,g,h,i=b.alpha,j=d.alpha,k=[];g=j+i*(1-j);for(var l=0;3>l;l++)e=b.rgb[l]/255,f=d.rgb[l]/255,h=a(e,f),g&&(h=(j*f+i*(e-j*(e+f-h)))/g),k[l]=255*h;return new c(k,g)}var c=a("../tree/color"),d=a("./function-registry"),e={multiply:function(a,b){return a*b},screen:function(a,b){return a+b-a*b},overlay:function(a,b){return a*=2,1>=a?e.multiply(a,b):e.screen(a-1,b)},softlight:function(a,b){var c=1,d=a;return b>.5&&(d=1,c=a>.25?Math.sqrt(a):((16*a-12)*a+4)*a),a-(1-2*b)*d*(c-a)},hardlight:function(a,b){return e.overlay(b,a)},difference:function(a,b){return Math.abs(a-b)},exclusion:function(a,b){return a+b-2*a*b},average:function(a,b){return(a+b)/2},negation:function(a,b){return 1-Math.abs(a+b-1)}};for(var f in e)e.hasOwnProperty(f)&&(b[f]=b.bind(null,e[f]));d.addMultiple(b)},{"../tree/color":49,"./function-registry":21}],17:[function(a){function b(a){return Math.min(1,Math.max(0,a))}function c(a){return f.hsla(a.h,a.s,a.l,a.a)}function d(a){if(a instanceof g)return parseFloat(a.unit.is("%")?a.value/100:a.value);if("number"==typeof a)return a;throw{type:"Argument",message:"color functions take numbers as parameters"}}function e(a,b){return a instanceof g&&a.unit.is("%")?parseFloat(a.value*b/100):d(a)}var f,g=a("../tree/dimension"),h=a("../tree/color"),i=a("../tree/quoted"),j=a("../tree/anonymous"),k=a("./function-registry");f={rgb:function(a,b,c){return f.rgba(a,b,c,1)},rgba:function(a,b,c,f){var g=[a,b,c].map(function(a){return e(a,255)});return f=d(f),new h(g,f)},hsl:function(a,b,c){return f.hsla(a,b,c,1)},hsla:function(a,c,e,g){function h(a){return a=0>a?a+1:a>1?a-1:a,1>6*a?j+(i-j)*a*6:1>2*a?i:2>3*a?j+(i-j)*(2/3-a)*6:j}a=d(a)%360/360,c=b(d(c)),e=b(d(e)),g=b(d(g));var i=.5>=e?e*(c+1):e+c-e*c,j=2*e-i;return f.rgba(255*h(a+1/3),255*h(a),255*h(a-1/3),g)},hsv:function(a,b,c){return f.hsva(a,b,c,1)},hsva:function(a,b,c,e){a=d(a)%360/360*360,b=d(b),c=d(c),e=d(e);var g,h;g=Math.floor(a/60%6),h=a/60-g;var i=[c,c*(1-b),c*(1-h*b),c*(1-(1-h)*b)],j=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return f.rgba(255*i[j[g][0]],255*i[j[g][1]],255*i[j[g][2]],e)},hue:function(a){return new g(a.toHSL().h)},saturation:function(a){return new g(100*a.toHSL().s,"%")},lightness:function(a){return new g(100*a.toHSL().l,"%")},hsvhue:function(a){return new g(a.toHSV().h)},hsvsaturation:function(a){return new g(100*a.toHSV().s,"%")},hsvvalue:function(a){return new g(100*a.toHSV().v,"%")},red:function(a){return new g(a.rgb[0])},green:function(a){return new g(a.rgb[1])},blue:function(a){return new g(a.rgb[2])},alpha:function(a){return new g(a.toHSL().a)},luma:function(a){return new g(a.luma()*a.alpha*100,"%")},luminance:function(a){var b=.2126*a.rgb[0]/255+.7152*a.rgb[1]/255+.0722*a.rgb[2]/255;return new g(b*a.alpha*100,"%")},saturate:function(a,d,e){if(!a.rgb)return null;var f=a.toHSL();return f.s+="undefined"!=typeof e&&"relative"===e.value?f.s*d.value/100:d.value/100,f.s=b(f.s),c(f)},desaturate:function(a,d,e){var f=a.toHSL();return f.s-="undefined"!=typeof e&&"relative"===e.value?f.s*d.value/100:d.value/100,f.s=b(f.s),c(f)},lighten:function(a,d,e){var f=a.toHSL();return f.l+="undefined"!=typeof e&&"relative"===e.value?f.l*d.value/100:d.value/100,f.l=b(f.l),c(f)},darken:function(a,d,e){var f=a.toHSL();return f.l-="undefined"!=typeof e&&"relative"===e.value?f.l*d.value/100:d.value/100,f.l=b(f.l),c(f)},fadein:function(a,d,e){var f=a.toHSL();return f.a+="undefined"!=typeof e&&"relative"===e.value?f.a*d.value/100:d.value/100,f.a=b(f.a),c(f)},fadeout:function(a,d,e){var f=a.toHSL();return f.a-="undefined"!=typeof e&&"relative"===e.value?f.a*d.value/100:d.value/100,f.a=b(f.a),c(f)},fade:function(a,d){var e=a.toHSL();return e.a=d.value/100,e.a=b(e.a),c(e)},spin:function(a,b){var d=a.toHSL(),e=(d.h+b.value)%360;return d.h=0>e?360+e:e,c(d)},mix:function(a,b,c){a.toHSL&&b.toHSL||(console.log(b.type),console.dir(b)),c||(c=new g(50));var d=c.value/100,e=2*d-1,f=a.toHSL().a-b.toHSL().a,i=((e*f==-1?e:(e+f)/(1+e*f))+1)/2,j=1-i,k=[a.rgb[0]*i+b.rgb[0]*j,a.rgb[1]*i+b.rgb[1]*j,a.rgb[2]*i+b.rgb[2]*j],l=a.alpha*d+b.alpha*(1-d);return new h(k,l)},greyscale:function(a){return f.desaturate(a,new g(100))},contrast:function(a,b,c,e){if(!a.rgb)return null;if("undefined"==typeof c&&(c=f.rgba(255,255,255,1)),"undefined"==typeof b&&(b=f.rgba(0,0,0,1)),b.luma()>c.luma()){var g=c;c=b,b=g}return e="undefined"==typeof e?.43:d(e),a.luma()<e?c:b},argb:function(a){return new j(a.toARGB())},color:function(a){if(a instanceof i&&/^#([a-f0-9]{6}|[a-f0-9]{3})$/i.test(a.value))return new h(a.value.slice(1));if(a instanceof h||(a=h.fromKeyword(a.value)))return a.value=void 0,a;throw{type:"Argument",message:"argument must be a color keyword or 3/6 digit hex e.g. #FFF"}},tint:function(a,b){return f.mix(f.rgb(255,255,255),a,b)},shade:function(a,b){return f.mix(f.rgb(0,0,0),a,b)}},k.addMultiple(f)},{"../tree/anonymous":45,"../tree/color":49,"../tree/dimension":55,"../tree/quoted":72,"./function-registry":21}],18:[function(a,b){b.exports=function(b){var c=a("../tree/quoted"),d=a("../tree/url"),e=a("./function-registry"),f=function(a,b){return new d(b,a.index,a.currentFileInfo).eval(a.context)},g=a("../logger");e.add("data-uri",function(a,e){e||(e=a,a=null);var h=a&&a.value,i=e.value,j=this.currentFileInfo,k=j.relativeUrls?j.currentDirectory:j.entryPath,l=i.indexOf("#"),m="";-1!==l&&(m=i.slice(l),i=i.slice(0,l));var n=b.getFileManager(i,k,this.context,b,!0);if(!n)return f(this,e);var o=!1;if(a)o=/;base64$/.test(h);else{if(h=b.mimeLookup(i),"image/svg+xml"===h)o=!1;else{var p=b.charsetLookup(h);o=["US-ASCII","UTF-8"].indexOf(p)<0}o&&(h+=";base64")}var q=n.loadFileSync(i,k,this.context,b);if(!q.contents)return g.warn("Skipped data-uri embedding of "+i+" because file not found"),f(this,e||a);var r=q.contents;if(o&&!b.encodeBase64)return f(this,e);r=o?b.encodeBase64(r):encodeURIComponent(r);var s="data:"+h+","+r+m,t=32768;return s.length>=t&&this.context.ieCompat!==!1?(g.warn("Skipped data-uri embedding of "+i+" because its size ("+s.length+" characters) exceeds IE8-safe "+t+" characters!"),f(this,e||a)):new d(new c('"'+s+'"',s,!1,this.index,this.currentFileInfo),this.index,this.currentFileInfo)})}},{"../logger":32,"../tree/quoted":72,"../tree/url":79,"./function-registry":21}],19:[function(a,b){var c=a("../tree/keyword"),d=a("./function-registry"),e={eval:function(){var a=this.value_,b=this.error_;if(b)throw b;return null!=a?a?c.True:c.False:void 0},value:function(a){this.value_=a},error:function(a){this.error_=a},reset:function(){this.value_=this.error_=null}};d.add("default",e.eval.bind(e)),b.exports=e},{"../tree/keyword":64,"./function-registry":21}],20:[function(a,b){var c=a("../tree/expression"),d=function(a,b,c,d){this.name=a.toLowerCase(),this.index=c,this.context=b,this.currentFileInfo=d,this.func=b.frames[0].functionRegistry.get(this.name)};d.prototype.isValid=function(){return Boolean(this.func)},d.prototype.call=function(a){return Array.isArray(a)&&(a=a.filter(function(a){return"Comment"===a.type?!1:!0}).map(function(a){if("Expression"===a.type){var b=a.value.filter(function(a){return"Comment"===a.type?!1:!0});return 1===b.length?b[0]:new c(b)}return a})),this.func.apply(this,a)},b.exports=d},{"../tree/expression":58}],21:[function(a,b){function c(a){return{_data:{},add:function(a,b){a=a.toLowerCase(),this._data.hasOwnProperty(a),this._data[a]=b},addMultiple:function(a){Object.keys(a).forEach(function(b){this.add(b,a[b])}.bind(this))},get:function(b){return this._data[b]||a&&a.get(b)},inherit:function(){return c(this)}}}b.exports=c(null)},{}],22:[function(a,b){b.exports=function(b){var c={functionRegistry:a("./function-registry"),functionCaller:a("./function-caller")};return a("./default"),a("./color"),a("./color-blending"),a("./data-uri")(b),a("./math"),a("./number"),a("./string"),a("./svg")(b),a("./types"),c}},{"./color":17,"./color-blending":16,"./data-uri":18,"./default":19,"./function-caller":20,"./function-registry":21,"./math":24,"./number":25,"./string":26,"./svg":27,"./types":28}],23:[function(a,b){var c=a("../tree/dimension"),d=function(){};d._math=function(a,b,d){if(!(d instanceof c))throw{type:"Argument",message:"argument must be a number"};return null==b?b=d.unit:d=d.unify(),new c(a(parseFloat(d.value)),b)},b.exports=d},{"../tree/dimension":55}],24:[function(a){var b=a("./function-registry"),c=a("./math-helper.js"),d={ceil:null,floor:null,sqrt:null,abs:null,tan:"",sin:"",cos:"",atan:"rad",asin:"rad",acos:"rad"};for(var e in d)d.hasOwnProperty(e)&&(d[e]=c._math.bind(null,Math[e],d[e]));d.round=function(a,b){var d="undefined"==typeof b?0:b.value;return c._math(function(a){return a.toFixed(d)},null,a)},b.addMultiple(d)},{"./function-registry":21,"./math-helper.js":23}],25:[function(a){var b=a("../tree/dimension"),c=a("../tree/anonymous"),d=a("./function-registry"),e=a("./math-helper.js"),f=function(a,d){switch(d=Array.prototype.slice.call(d),d.length){case 0:throw{type:"Argument",message:"one or more arguments required"}}var e,f,g,h,i,j,k,l,m=[],n={};for(e=0;d.length>e;e++)if(g=d[e],g instanceof b)if(h=""===g.unit.toString()&&void 0!==l?new b(g.value,l).unify():g.unify(),j=""===h.unit.toString()&&void 0!==k?k:h.unit.toString(),k=""!==j&&void 0===k||""!==j&&""===m[0].unify().unit.toString()?j:k,l=""!==j&&void 0===l?g.unit.toString():l,f=void 0!==n[""]&&""!==j&&j===k?n[""]:n[j],void 0!==f)i=""===m[f].unit.toString()&&void 0!==l?new b(m[f].value,l).unify():m[f].unify(),(a&&i.value>h.value||!a&&h.value>i.value)&&(m[f]=g);else{if(void 0!==k&&j!==k)throw{type:"Argument",message:"incompatible types"};n[j]=m.length,m.push(g)}else Array.isArray(d[e].value)&&Array.prototype.push.apply(d,Array.prototype.slice.call(d[e].value));return 1==m.length?m[0]:(d=m.map(function(a){return a.toCSS(this.context)}).join(this.context.compress?",":", "),new c((a?"min":"max")+"("+d+")"))};d.addMultiple({min:function(){return f(!0,arguments)},max:function(){return f(!1,arguments)},convert:function(a,b){return a.convertTo(b.value)},pi:function(){return new b(Math.PI)},mod:function(a,c){return new b(a.value%c.value,a.unit)},pow:function(a,c){if("number"==typeof a&&"number"==typeof c)a=new b(a),c=new b(c);else if(!(a instanceof b&&c instanceof b))throw{type:"Argument",message:"arguments must be numbers"};return new b(Math.pow(a.value,c.value),a.unit)},percentage:function(a){var b=e._math(function(a){return 100*a},"%",a);return b}})},{"../tree/anonymous":45,"../tree/dimension":55,"./function-registry":21,"./math-helper.js":23}],26:[function(a){var b=a("../tree/quoted"),c=a("../tree/anonymous"),d=a("../tree/javascript"),e=a("./function-registry");e.addMultiple({e:function(a){return new c(a instanceof d?a.evaluated:a.value)},escape:function(a){return new c(encodeURI(a.value).replace(/=/g,"%3D").replace(/:/g,"%3A").replace(/#/g,"%23").replace(/;/g,"%3B").replace(/\(/g,"%28").replace(/\)/g,"%29"))},replace:function(a,c,d,e){var f=a.value;return d="Quoted"===d.type?d.value:d.toCSS(),f=f.replace(new RegExp(c.value,e?e.value:""),d),new b(a.quote||"",f,a.escaped)},"%":function(a){for(var c=Array.prototype.slice.call(arguments,1),d=a.value,e=0;c.length>e;e++)d=d.replace(/%[sda]/i,function(a){var b="Quoted"===c[e].type&&a.match(/s/i)?c[e].value:c[e].toCSS();return a.match(/[A-Z]$/)?encodeURIComponent(b):b});return d=d.replace(/%%/g,"%"),new b(a.quote||"",d,a.escaped)}})},{"../tree/anonymous":45,"../tree/javascript":62,"../tree/quoted":72,"./function-registry":21}],27:[function(a,b){b.exports=function(){var b=a("../tree/dimension"),c=a("../tree/color"),d=a("../tree/expression"),e=a("../tree/quoted"),f=a("../tree/url"),g=a("./function-registry");g.add("svg-gradient",function(a){function g(){throw{type:"Argument",message:"svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position] or direction, color list"}}var h,i,j,k,l,m,n,o,p="linear",q='x="0" y="0" width="1" height="1"',r={compress:!1},s=a.toCSS(r);switch(2==arguments.length?(arguments[1].value.length<2&&g(),h=arguments[1].value):arguments.length<3?g():h=Array.prototype.slice.call(arguments,1),s){case"to bottom":i='x1="0%" y1="0%" x2="0%" y2="100%"';break;case"to right":i='x1="0%" y1="0%" x2="100%" y2="0%"';break;case"to bottom right":i='x1="0%" y1="0%" x2="100%" y2="100%"';break;case"to top right":i='x1="0%" y1="100%" x2="100%" y2="0%"';break;case"ellipse":case"ellipse at center":p="radial",i='cx="50%" cy="50%" r="75%"',q='x="-50" y="-50" width="101" height="101"';break;default:throw{type:"Argument",message:"svg-gradient direction must be 'to bottom', 'to right', 'to bottom right', 'to top right' or 'ellipse at center'" +}}for(j='<?xml version="1.0" ?><svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none"><'+p+'Gradient id="gradient" gradientUnits="userSpaceOnUse" '+i+">",k=0;h.length>k;k+=1)h[k]instanceof d?(l=h[k].value[0],m=h[k].value[1]):(l=h[k],m=void 0),l instanceof c&&((0===k||k+1===h.length)&&void 0===m||m instanceof b)||g(),n=m?m.toCSS(r):0===k?"0%":"100%",o=l.alpha,j+='<stop offset="'+n+'" stop-color="'+l.toRGB()+'"'+(1>o?' stop-opacity="'+o+'"':"")+"/>";return j+="</"+p+"Gradient><rect "+q+' fill="url(#gradient)" /></svg>',j=encodeURIComponent(j),j="data:image/svg+xml,"+j,new f(new e("'"+j+"'",j,!1,this.index,this.currentFileInfo),this.index,this.currentFileInfo)})}},{"../tree/color":49,"../tree/dimension":55,"../tree/expression":58,"../tree/quoted":72,"../tree/url":79,"./function-registry":21}],28:[function(a){var b=a("../tree/keyword"),c=a("../tree/detached-ruleset"),d=a("../tree/dimension"),e=a("../tree/color"),f=a("../tree/quoted"),g=a("../tree/anonymous"),h=a("../tree/url"),i=a("../tree/operation"),j=a("./function-registry"),k=function(a,c){return a instanceof c?b.True:b.False},l=function(a,c){if(void 0===c)throw{type:"Argument",message:"missing the required second argument to isunit."};if(c="string"==typeof c.value?c.value:c,"string"!=typeof c)throw{type:"Argument",message:"Second argument to isunit should be a unit or a string."};return a instanceof d&&a.unit.is(c)?b.True:b.False},m=function(a){var b=Array.isArray(a.value)?a.value:Array(a);return b};j.addMultiple({isruleset:function(a){return k(a,c)},iscolor:function(a){return k(a,e)},isnumber:function(a){return k(a,d)},isstring:function(a){return k(a,f)},iskeyword:function(a){return k(a,b)},isurl:function(a){return k(a,h)},ispixel:function(a){return l(a,"px")},ispercentage:function(a){return l(a,"%")},isem:function(a){return l(a,"em")},isunit:l,unit:function(a,c){if(!(a instanceof d))throw{type:"Argument",message:"the first argument to unit must be a number"+(a instanceof i?". Have you forgotten parenthesis?":"")};return c=c?c instanceof b?c.value:c.toCSS():"",new d(a.value,c)},"get-unit":function(a){return new g(a.unit)},extract:function(a,b){return b=b.value-1,m(a)[b]},length:function(a){return new d(m(a).length)}})},{"../tree/anonymous":45,"../tree/color":49,"../tree/detached-ruleset":54,"../tree/dimension":55,"../tree/keyword":64,"../tree/operation":70,"../tree/quoted":72,"../tree/url":79,"./function-registry":21}],29:[function(a,b){var c=a("./contexts"),d=a("./parser/parser"),e=a("./plugins/function-importer");b.exports=function(a){var b=function(a,b){this.rootFilename=b.filename,this.paths=a.paths||[],this.contents={},this.contentsIgnoredChars={},this.mime=a.mime,this.error=null,this.context=a,this.queue=[],this.files={}};return b.prototype.push=function(b,f,g,h,i){var j=this;this.queue.push(b);var k=function(a,c,d){j.queue.splice(j.queue.indexOf(b),1);var e=d===j.rootFilename;h.optional&&a?i(null,{rules:[]},!1,null):(j.files[d]=c,a&&!j.error&&(j.error=a),i(a,c,e,d))},l={relativeUrls:this.context.relativeUrls,entryPath:g.entryPath,rootpath:g.rootpath,rootFilename:g.rootFilename},m=a.getFileManager(b,g.currentDirectory,this.context,a);if(!m)return void k({message:"Could not find a file-manager for "+b});f&&(b=m.tryAppendExtension(b,h.plugin?".js":".less"));var n=function(a){var b=a.filename,f=a.contents.replace(/^\uFEFF/,"");l.currentDirectory=m.getPath(b),l.relativeUrls&&(l.rootpath=m.join(j.context.rootpath||"",m.pathDiff(l.currentDirectory,l.entryPath)),!m.isPathAbsolute(l.rootpath)&&m.alwaysMakePathsAbsolute()&&(l.rootpath=m.join(l.entryPath,l.rootpath))),l.filename=b;var i=new c.Parse(j.context);i.processImports=!1,j.contents[b]=f,(g.reference||h.reference)&&(l.reference=!0),h.plugin?new e(i,l).eval(f,function(a,c){k(a,c,b)}):h.inline?k(null,f,b):new d(i,j,l).parse(f,function(a,c){k(a,c,b)})},o=m.loadFile(b,g.currentDirectory,this.context,a,function(a,b){a?k(a):n(b)});o&&o.then(n,k)},b}},{"./contexts":10,"./parser/parser":37,"./plugins/function-importer":39}],30:[function(a,b){b.exports=function(b,c){var d,e,f,g,h,i={version:[2,5,3],data:a("./data"),tree:a("./tree"),Environment:h=a("./environment/environment"),AbstractFileManager:a("./environment/abstract-file-manager"),environment:b=new h(b,c),visitors:a("./visitors"),Parser:a("./parser/parser"),functions:a("./functions")(b),contexts:a("./contexts"),SourceMapOutput:d=a("./source-map-output")(b),SourceMapBuilder:e=a("./source-map-builder")(d,b),ParseTree:f=a("./parse-tree")(e),ImportManager:g=a("./import-manager")(b),render:a("./render")(b,f,g),parse:a("./parse")(b,f,g),LessError:a("./less-error"),transformTree:a("./transform-tree"),utils:a("./utils"),PluginManager:a("./plugin-manager"),logger:a("./logger")};return i}},{"./contexts":10,"./data":12,"./environment/abstract-file-manager":14,"./environment/environment":15,"./functions":22,"./import-manager":29,"./less-error":31,"./logger":32,"./parse":34,"./parse-tree":33,"./parser/parser":37,"./plugin-manager":38,"./render":40,"./source-map-builder":41,"./source-map-output":42,"./transform-tree":43,"./tree":61,"./utils":82,"./visitors":86}],31:[function(a,b){var c=a("./utils"),d=b.exports=function(a,b,d){Error.call(this);var e=a.filename||d;if(b&&e){var f=b.contents[e],g=c.getLocation(a.index,f),h=g.line,i=g.column,j=a.call&&c.getLocation(a.call,f).line,k=f.split("\n");this.type=a.type||"Syntax",this.filename=e,this.index=a.index,this.line="number"==typeof h?h+1:null,this.callLine=j+1,this.callExtract=k[j],this.column=i,this.extract=[k[h-1],k[h],k[h+1]]}this.message=a.message,this.stack=a.stack};if("undefined"==typeof Object.create){var e=function(){};e.prototype=Error.prototype,d.prototype=new e}else d.prototype=Object.create(Error.prototype);d.prototype.constructor=d},{"./utils":82}],32:[function(a,b){b.exports={error:function(a){this._fireEvent("error",a)},warn:function(a){this._fireEvent("warn",a)},info:function(a){this._fireEvent("info",a)},debug:function(a){this._fireEvent("debug",a)},addListener:function(a){this._listeners.push(a)},removeListener:function(a){for(var b=0;this._listeners.length>b;b++)if(this._listeners[b]===a)return void this._listeners.splice(b,1)},_fireEvent:function(a,b){for(var c=0;this._listeners.length>c;c++){var d=this._listeners[c][a];d&&d(b)}},_listeners:[]}},{}],33:[function(a,b){var c=a("./less-error"),d=a("./transform-tree"),e=a("./logger");b.exports=function(a){var b=function(a,b){this.root=a,this.imports=b};return b.prototype.toCSS=function(b){var f,g,h={};try{f=d(this.root,b)}catch(i){throw new c(i,this.imports)}try{var j=Boolean(b.compress);j&&e.warn("The compress option has been deprecated. We recommend you use a dedicated css minifier, for instance see less-plugin-clean-css.");var k={compress:j,dumpLineNumbers:b.dumpLineNumbers,strictUnits:Boolean(b.strictUnits),numPrecision:8};b.sourceMap?(g=new a(b.sourceMap),h.css=g.toCSS(f,k,this.imports)):h.css=f.toCSS(k)}catch(i){throw new c(i,this.imports)}if(b.pluginManager)for(var l=b.pluginManager.getPostProcessors(),m=0;l.length>m;m++)h.css=l[m].process(h.css,{sourceMap:g,options:b,imports:this.imports});b.sourceMap&&(h.map=g.getExternalSourceMap()),h.imports=[];for(var n in this.imports.files)this.imports.files.hasOwnProperty(n)&&n!==this.imports.rootFilename&&h.imports.push(n);return h},b}},{"./less-error":31,"./logger":32,"./transform-tree":43}],34:[function(a,b){var c,d=a("./contexts"),e=a("./parser/parser"),f=a("./plugin-manager");b.exports=function(b,g,h){var i=function(b,g,j){if(g=g||{},"function"==typeof g&&(j=g,g={}),!j){c||(c="undefined"==typeof Promise?a("promise"):Promise);var k=this;return new c(function(a,c){i.call(k,b,g,function(b,d){b?c(b):a(d)})})}var l,m,n=new f(this);if(n.addPlugins(g.plugins),g.pluginManager=n,l=new d.Parse(g),g.rootFileInfo)m=g.rootFileInfo;else{var o=g.filename||"input",p=o.replace(/[^\/\\]*$/,"");m={filename:o,relativeUrls:l.relativeUrls,rootpath:l.rootpath||"",currentDirectory:p,entryPath:p,rootFilename:o},m.rootpath&&"/"!==m.rootpath.slice(-1)&&(m.rootpath+="/")}var q=new h(l,m);new e(l,q,m).parse(b,function(a,b){return a?j(a):void j(null,b,q,g)},g)};return i}},{"./contexts":10,"./parser/parser":37,"./plugin-manager":38,promise:void 0}],35:[function(a,b){b.exports=function(a,b){function c(b){var c=h-q;512>c&&!b||!c||(p.push(a.slice(q,h+1)),q=h+1)}var d,e,f,g,h,i,j,k,l,m=a.length,n=0,o=0,p=[],q=0;for(h=0;m>h;h++)if(j=a.charCodeAt(h),!(j>=97&&122>=j||34>j))switch(j){case 40:o++,e=h;continue;case 41:if(--o<0)return b("missing opening `(`",h);continue;case 59:o||c();continue;case 123:n++,d=h;continue;case 125:if(--n<0)return b("missing opening `{`",h);n||o||c();continue;case 92:if(m-1>h){h++;continue}return b("unescaped `\\`",h);case 34:case 39:case 96:for(l=0,i=h,h+=1;m>h;h++)if(k=a.charCodeAt(h),!(k>96)){if(k==j){l=1;break}if(92==k){if(h==m-1)return b("unescaped `\\`",h);h++}}if(l)continue;return b("unmatched `"+String.fromCharCode(j)+"`",i);case 47:if(o||h==m-1)continue;if(k=a.charCodeAt(h+1),47==k)for(h+=2;m>h&&(k=a.charCodeAt(h),!(13>=k)||10!=k&&13!=k);h++);else if(42==k){for(f=i=h,h+=2;m-1>h&&(k=a.charCodeAt(h),125==k&&(g=h),42!=k||47!=a.charCodeAt(h+1));h++);if(h==m-1)return b("missing closing `*/`",i);h++}continue;case 42:if(m-1>h&&47==a.charCodeAt(h+1))return b("unmatched `/*`",h);continue}return 0!==n?f>d&&g>f?b("missing closing `}` or `*/`",d):b("missing closing `}`",d):0!==o?b("missing closing `)`",e):(c(!0),p)}},{}],36:[function(a,b){var c=a("./chunker");b.exports=function(){var a,b,d,e,f,g,h,i=[],j={};j.save=function(){h=j.i,i.push({current:g,i:j.i,j:b})},j.restore=function(a){(j.i>d||j.i===d&&a&&!e)&&(d=j.i,e=a);var c=i.pop();g=c.current,h=j.i=c.i,b=c.j},j.forget=function(){i.pop()},j.isWhitespace=function(b){var c=j.i+(b||0),d=a.charCodeAt(c);return d===k||d===n||d===l||d===m},j.$re=function(a){j.i>h&&(g=g.slice(j.i-h),h=j.i);var b=a.exec(g);return b?(s(b[0].length),"string"==typeof b?b:1===b.length?b[0]:b):null},j.$char=function(b){return a.charAt(j.i)!==b?null:(s(1),b)},j.$str=function(b){for(var c=b.length,d=0;c>d;d++)if(a.charAt(j.i+d)!==b.charAt(d))return null;return s(c),b},j.$quoted=function(){var b=a.charAt(j.i);if("'"===b||'"'===b){for(var c=a.length,d=j.i,e=1;c>e+d;e++){var f=a.charAt(e+d);switch(f){case"\\":e++;continue;case"\r":case"\n":break;case b:var g=a.substr(d,e+1);return s(e+1),g}}return null}};var k=32,l=9,m=10,n=13,o=43,p=44,q=47,r=57;j.autoCommentAbsorb=!0,j.commentStore=[],j.finished=!1;var s=function(c){for(var d,e,i,o=j.i,p=b,r=j.i-h,t=j.i+g.length-r,u=j.i+=c,v=a;t>j.i;j.i++){if(d=v.charCodeAt(j.i),j.autoCommentAbsorb&&d===q){if(e=v.charAt(j.i+1),"/"===e){i={index:j.i,isLineComment:!0};var w=v.indexOf("\n",j.i+2);0>w&&(w=t),j.i=w,i.text=v.substr(i.i,j.i-i.i),j.commentStore.push(i);continue}if("*"===e){var x=v.indexOf("*/",j.i+2);if(x>=0){i={index:j.i,text:v.substr(j.i,x+2-j.i),isLineComment:!1},j.i+=i.text.length-1,j.commentStore.push(i);continue}}break}if(d!==k&&d!==m&&d!==l&&d!==n)break}if(g=g.slice(c+j.i-u+r),h=j.i,!g.length){if(f.length-1>b)return g=f[++b],s(0),!0;j.finished=!0}return o!==j.i||p!==b};return j.peek=function(b){if("string"==typeof b){for(var c=0;b.length>c;c++)if(a.charAt(j.i+c)!==b.charAt(c))return!1;return!0}return b.test(g)},j.peekChar=function(b){return a.charAt(j.i)===b},j.currentChar=function(){return a.charAt(j.i)},j.getInput=function(){return a},j.peekNotNumeric=function(){var b=a.charCodeAt(j.i);return b>r||o>b||b===q||b===p},j.start=function(e,i,k){a=e,j.i=b=h=d=0,f=i?c(e,k):[e],g=f[0],s(0)},j.end=function(){var b,c=j.i>=a.length;return d>j.i&&(b=e,j.i=d),{isFinished:c,furthest:j.i,furthestPossibleErrorMessage:b,furthestReachedEnd:j.i>=a.length-1,furthestChar:a[j.i]}},j}},{"./chunker":35}],37:[function(a,b){var c=a("../less-error"),d=a("../tree"),e=a("../visitors"),f=a("./parser-input"),g=a("../utils"),h=function i(a,b,h){function j(a,b){var c="[object Function]"===Object.prototype.toString.call(a)?a.call(n):o.$re(a);return c?c:void l(b||("string"==typeof a?"expected '"+a+"' got '"+o.currentChar()+"'":"unexpected token"))}function k(a,b){return o.$char(a)?a:void l(b||"expected '"+a+"' got '"+o.currentChar()+"'")}function l(a,d){throw new c({index:o.i,filename:h.filename,type:d||"Syntax",message:a},b)}function m(a){var b=h.filename;return{lineNumber:g.getLocation(a,o.getInput()).line+1,fileName:b}}var n,o=f();return{parse:function(f,g,j){var k,l,m,n,p=null,q="";if(l=j&&j.globalVars?i.serializeVars(j.globalVars)+"\n":"",m=j&&j.modifyVars?"\n"+i.serializeVars(j.modifyVars):"",a.pluginManager)for(var r=a.pluginManager.getPreProcessors(),s=0;r.length>s;s++)f=r[s].process(f,{context:a,imports:b,fileInfo:h});(l||j&&j.banner)&&(q=(j&&j.banner?j.banner:"")+l,n=b.contentsIgnoredChars,n[h.filename]=n[h.filename]||0,n[h.filename]+=q.length),f=f.replace(/\r\n?/g,"\n"),f=q+f.replace(/^\uFEFF/,"")+m,b.contents[h.filename]=f;try{o.start(f,a.chunkInput,function(a,d){throw new c({index:d,type:"Parse",message:a,filename:h.filename},b)}),k=new d.Ruleset(null,this.parsers.primary()),k.root=!0,k.firstRoot=!0}catch(t){return g(new c(t,b,h.filename))}var u=o.end();if(!u.isFinished){var v=u.furthestPossibleErrorMessage;v||(v="Unrecognised input","}"===u.furthestChar?v+=". Possibly missing opening '{'":")"===u.furthestChar?v+=". Possibly missing opening '('":u.furthestReachedEnd&&(v+=". Possibly missing something")),p=new c({type:"Parse",message:v,index:u.furthest,filename:h.filename},b)}var w=function(a){return a=p||a||b.error,a?(a instanceof c||(a=new c(a,b,h.filename)),g(a)):g(null,k)};return a.processImports===!1?w():void new e.ImportVisitor(b,w).run(k)},parsers:n={primary:function(){for(var a,b=this.mixin,c=[];;){for(;;){if(a=this.comment(),!a)break;c.push(a)}if(o.finished)break;if(o.peek("}"))break;if(a=this.extendRule())c=c.concat(a);else if(a=b.definition()||this.rule()||this.ruleset()||b.call()||this.rulesetCall()||this.directive())c.push(a);else{for(var d=!1;o.$char(";");)d=!0;if(!d)break}}return c},comment:function(){if(o.commentStore.length){var a=o.commentStore.shift();return new d.Comment(a.text,a.isLineComment,a.index,h)}},entities:{quoted:function(){var a,b=o.i,c=!1;return o.save(),o.$char("~")&&(c=!0),(a=o.$quoted())?(o.forget(),new d.Quoted(a.charAt(0),a.substr(1,a.length-2),c,b,h)):void o.restore()},keyword:function(){var a=o.$char("%")||o.$re(/^[_A-Za-z-][_A-Za-z0-9-]*/);return a?d.Color.fromKeyword(a)||new d.Keyword(a):void 0},call:function(){var a,b,c,e,f=o.i;if(!o.peek(/^url\(/i))return o.save(),(a=o.$re(/^([\w-]+|%|progid:[\w\.]+)\(/))?(a=a[1],b=a.toLowerCase(),"alpha"===b&&(e=n.alpha())?(o.forget(),e):(c=this.arguments(),o.$char(")")?(o.forget(),new d.Call(a,c,f,h)):void o.restore("Could not parse call arguments or missing ')'"))):void o.forget()},arguments:function(){for(var a,b=[];;){if(a=this.assignment()||n.expression(),!a)break;if(b.push(a),!o.$char(","))break}return b},literal:function(){return this.dimension()||this.color()||this.quoted()||this.unicodeDescriptor()},assignment:function(){var a,b;return o.save(),(a=o.$re(/^\w+(?=\s?=)/i))&&o.$char("=")&&(b=n.entity())?(o.forget(),new d.Assignment(a,b)):void o.restore()},url:function(){var a,b=o.i;return o.autoCommentAbsorb=!1,o.$str("url(")?(a=this.quoted()||this.variable()||o.$re(/^(?:(?:\\[\(\)'"])|[^\(\)'"])+/)||"",o.autoCommentAbsorb=!0,k(")"),new d.URL(null!=a.value||a instanceof d.Variable?a:new d.Anonymous(a),b,h)):void(o.autoCommentAbsorb=!0)},variable:function(){var a,b=o.i;return"@"===o.currentChar()&&(a=o.$re(/^@@?[\w-]+/))?new d.Variable(a,b,h):void 0},variableCurly:function(){var a,b=o.i;return"@"===o.currentChar()&&(a=o.$re(/^@\{([\w-]+)\}/))?new d.Variable("@"+a[1],b,h):void 0},color:function(){var a;if("#"===o.currentChar()&&(a=o.$re(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/))){var b=a.input.match(/^#([\w]+).*/);return b=b[1],b.match(/^[A-Fa-f0-9]+$/)||l("Invalid HEX color code"),new d.Color(a[1],void 0,"#"+b)}},dimension:function(){if(!o.peekNotNumeric()){var a=o.$re(/^([+-]?\d*\.?\d+)(%|[a-z]+)?/i);return a?new d.Dimension(a[1],a[2]):void 0}},unicodeDescriptor:function(){var a;return a=o.$re(/^U\+[0-9a-fA-F?]+(\-[0-9a-fA-F?]+)?/),a?new d.UnicodeDescriptor(a[0]):void 0},javascript:function(){var a,b=o.i;o.save();var c=o.$char("~"),e=o.$char("`");return e?(a=o.$re(/^[^`]*`/))?(o.forget(),new d.JavaScript(a.substr(0,a.length-1),Boolean(c),b,h)):void o.restore("invalid javascript definition"):void o.restore()}},variable:function(){var a;return"@"===o.currentChar()&&(a=o.$re(/^(@[\w-]+)\s*:/))?a[1]:void 0},rulesetCall:function(){var a;return"@"===o.currentChar()&&(a=o.$re(/^(@[\w-]+)\s*\(\s*\)\s*;/))?new d.RulesetCall(a[1]):void 0},extend:function(a){var b,c,e,f,g,h=o.i;if(o.$str(a?"&:extend(":":extend(")){do{for(e=null,b=null;!(e=o.$re(/^(all)(?=\s*(\)|,))/))&&(c=this.element());)b?b.push(c):b=[c];e=e&&e[1],b||l("Missing target selector for :extend()."),g=new d.Extend(new d.Selector(b),e,h),f?f.push(g):f=[g]}while(o.$char(","));return j(/^\)/),a&&j(/^;/),f}},extendRule:function(){return this.extend(!0)},mixin:{call:function(){var a,b,c,e,f,g,i=o.currentChar(),j=!1,l=o.i;if("."===i||"#"===i){for(o.save();;){if(a=o.i,e=o.$re(/^[#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/),!e)break;c=new d.Element(f,e,a,h),b?b.push(c):b=[c],f=o.$char(">")}return b&&(o.$char("(")&&(g=this.args(!0).args,k(")")),n.important()&&(j=!0),n.end())?(o.forget(),new d.mixin.Call(b,g,l,h,j)):void o.restore()}},args:function(a){var b,c,e,f,g,h,i,j=n.entities,k={args:null,variadic:!1},m=[],p=[],q=[];for(o.save();;){if(a)h=n.detachedRuleset()||n.expression();else{if(o.commentStore.length=0,o.$str("...")){k.variadic=!0,o.$char(";")&&!b&&(b=!0),(b?p:q).push({variadic:!0});break}h=j.variable()||j.literal()||j.keyword()}if(!h)break;f=null,h.throwAwayComments&&h.throwAwayComments(),g=h;var r=null;if(a?h.value&&1==h.value.length&&(r=h.value[0]):r=h,r&&r instanceof d.Variable)if(o.$char(":")){if(m.length>0&&(b&&l("Cannot mix ; and , as delimiter types"),c=!0),g=n.detachedRuleset()||n.expression(),!g){if(!a)return o.restore(),k.args=[],k;l("could not understand value for named argument")}f=e=r.name}else if(o.$str("...")){if(!a){k.variadic=!0,o.$char(";")&&!b&&(b=!0),(b?p:q).push({name:h.name,variadic:!0});break}i=!0}else a||(e=f=r.name,g=null);g&&m.push(g),q.push({name:f,value:g,expand:i}),o.$char(",")||(o.$char(";")||b)&&(c&&l("Cannot mix ; and , as delimiter types"),b=!0,m.length>1&&(g=new d.Value(m)),p.push({name:e,value:g,expand:i}),e=null,m=[],c=!1)}return o.forget(),k.args=b?p:q,k},definition:function(){var a,b,c,e,f=[],g=!1;if(!("."!==o.currentChar()&&"#"!==o.currentChar()||o.peek(/^[^{]*\}/)))if(o.save(),b=o.$re(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/)){a=b[1];var h=this.args(!1);if(f=h.args,g=h.variadic,!o.$char(")"))return void o.restore("Missing closing ')'");if(o.commentStore.length=0,o.$str("when")&&(e=j(n.conditions,"expected condition")),c=n.block())return o.forget(),new d.mixin.Definition(a,f,c,e,g);o.restore()}else o.forget()}},entity:function(){var a=this.entities;return this.comment()||a.literal()||a.variable()||a.url()||a.call()||a.keyword()||a.javascript()},end:function(){return o.$char(";")||o.peek("}")},alpha:function(){var a;if(o.$re(/^opacity=/i))return a=o.$re(/^\d+/),a||(a=j(this.entities.variable,"Could not parse alpha")),k(")"),new d.Alpha(a)},element:function(){var a,b,c,e=o.i;return b=this.combinator(),a=o.$re(/^(?:\d+\.\d+|\d+)%/)||o.$re(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/)||o.$char("*")||o.$char("&")||this.attribute()||o.$re(/^\([^&()@]+\)/)||o.$re(/^[\.#:](?=@)/)||this.entities.variableCurly(),a||(o.save(),o.$char("(")?(c=this.selector())&&o.$char(")")?(a=new d.Paren(c),o.forget()):o.restore("Missing closing ')'"):o.forget()),a?new d.Element(b,a,e,h):void 0},combinator:function(){var a=o.currentChar();if("/"===a){o.save();var b=o.$re(/^\/[a-z]+\//i);if(b)return o.forget(),new d.Combinator(b);o.restore()}if(">"===a||"+"===a||"~"===a||"|"===a||"^"===a){for(o.i++,"^"===a&&"^"===o.currentChar()&&(a="^^",o.i++);o.isWhitespace();)o.i++;return new d.Combinator(a)}return new d.Combinator(o.isWhitespace(-1)?" ":null)},lessSelector:function(){return this.selector(!0)},selector:function(a){for(var b,c,e,f,g,i,k,m=o.i;(a&&(c=this.extend())||a&&(i=o.$str("when"))||(f=this.element()))&&(i?k=j(this.conditions,"expected condition"):k?l("CSS guard can only be used at the end of selector"):c?g=g?g.concat(c):c:(g&&l("Extend can only be used at the end of selector"),e=o.currentChar(),b?b.push(f):b=[f],f=null),"{"!==e&&"}"!==e&&";"!==e&&","!==e&&")"!==e););return b?new d.Selector(b,g,k,m,h):void(g&&l("Extend must be used to extend a selector, it cannot be used on its own"))},attribute:function(){if(o.$char("[")){var a,b,c,e=this.entities;return(a=e.variableCurly())||(a=j(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)),c=o.$re(/^[|~*$^]?=/),c&&(b=e.quoted()||o.$re(/^[0-9]+%/)||o.$re(/^[\w-]+/)||e.variableCurly()),k("]"),new d.Attribute(a,c,b)}},block:function(){var a;return o.$char("{")&&(a=this.primary())&&o.$char("}")?a:void 0},blockRuleset:function(){var a=this.block();return a&&(a=new d.Ruleset(null,a)),a},detachedRuleset:function(){var a=this.blockRuleset();return a?new d.DetachedRuleset(a):void 0},ruleset:function(){var b,c,e,f;for(o.save(),a.dumpLineNumbers&&(f=m(o.i));;){if(c=this.lessSelector(),!c)break;if(b?b.push(c):b=[c],o.commentStore.length=0,c.condition&&b.length>1&&l("Guards are only currently allowed on a single selector."),!o.$char(","))break;c.condition&&l("Guards are only currently allowed on a single selector."),o.commentStore.length=0}if(b&&(e=this.block())){o.forget();var g=new d.Ruleset(b,e,a.strictImports);return a.dumpLineNumbers&&(g.debugInfo=f),g}o.restore()},rule:function(b){var c,e,f,g,i,j=o.i,k=o.currentChar();if("."!==k&&"#"!==k&&"&"!==k&&":"!==k)if(o.save(),c=this.variable()||this.ruleProperty()){if(i="string"==typeof c,i&&(e=this.detachedRuleset()),o.commentStore.length=0,!e){g=!i&&c.length>1&&c.pop().value;var l=!b&&(a.compress||i);if(l&&(e=this.value()),!e&&(e=this.anonymousValue()))return o.forget(),new d.Rule(c,e,!1,g,j,h);l||e||(e=this.value()),f=this.important()}if(e&&this.end())return o.forget(),new d.Rule(c,e,f,g,j,h);if(o.restore(),e&&!b)return this.rule(!0)}else o.forget()},anonymousValue:function(){var a=o.$re(/^([^@+\/'"*`(;{}-]*);/);return a?new d.Anonymous(a[1]):void 0},"import":function(){var a,b,c=o.i,e=o.$re(/^@import?\s+/);if(e){var f=(e?this.importOptions():null)||{};if(a=this.entities.quoted()||this.entities.url())return b=this.mediaFeatures(),o.$char(";")||(o.i=c,l("missing semi-colon or unrecognised media features on import")),b=b&&new d.Value(b),new d.Import(a,b,f,c,h);o.i=c,l("malformed import statement")}},importOptions:function(){var a,b,c,d={};if(!o.$char("("))return null;do if(a=this.importOption()){switch(b=a,c=!0,b){case"css":b="less",c=!1;break;case"once":b="multiple",c=!1}if(d[b]=c,!o.$char(","))break}while(a);return k(")"),d},importOption:function(){var a=o.$re(/^(less|css|multiple|once|inline|reference|optional)/);return a?a[1]:void 0},mediaFeature:function(){var a,b,c=this.entities,e=[];o.save();do if(a=c.keyword()||c.variable())e.push(a);else if(o.$char("(")){if(b=this.property(),a=this.value(),!o.$char(")"))return o.restore("Missing closing ')'"),null;if(b&&a)e.push(new d.Paren(new d.Rule(b,a,null,null,o.i,h,!0)));else{if(!a)return o.restore("badly formed media feature definition"),null;e.push(new d.Paren(a))}}while(a);return o.forget(),e.length>0?new d.Expression(e):void 0},mediaFeatures:function(){var a,b=this.entities,c=[];do if(a=this.mediaFeature()){if(c.push(a),!o.$char(","))break}else if(a=b.variable(),a&&(c.push(a),!o.$char(",")))break;while(a);return c.length>0?c:null},media:function(){var b,c,e,f;return a.dumpLineNumbers&&(f=m(o.i)),o.save(),o.$str("@media")?(b=this.mediaFeatures(),(c=this.block())?(o.forget(),e=new d.Media(c,b,o.i,h),a.dumpLineNumbers&&(e.debugInfo=f),e):void o.restore("media definitions require block statements after any features")):void o.restore()},plugin:function(){var a,b=o.i,c=o.$re(/^@plugin?\s+/);if(c){var e={plugin:!0};if(a=this.entities.quoted()||this.entities.url())return o.$char(";")||(o.i=b,l("missing semi-colon on plugin")),new d.Import(a,null,e,b,h);o.i=b,l("malformed plugin statement")}},directive:function(){var b,c,e,f,g,i,j,k=o.i,n=!0,p=!0;if("@"===o.currentChar()){if(c=this["import"]()||this.plugin()||this.media())return c;if(o.save(),b=o.$re(/^@[a-z-]+/)){switch(f=b,"-"==b.charAt(1)&&b.indexOf("-",2)>0&&(f="@"+b.slice(b.indexOf("-",2)+1)),f){case"@counter-style":g=!0,n=!0;break;case"@charset":g=!0,n=!1;break;case"@namespace":i=!0,n=!1;break;case"@keyframes":g=!0;break;case"@host":case"@page":j=!0;break;case"@document":case"@supports":j=!0,p=!1}return o.commentStore.length=0,g?(c=this.entity(),c||l("expected "+b+" identifier")):i?(c=this.expression(),c||l("expected "+b+" expression")):j&&(c=(o.$re(/^[^{;]+/)||"").trim(),c&&(c=new d.Anonymous(c))),n&&(e=this.blockRuleset()),e||!n&&c&&o.$char(";")?(o.forget(),new d.Directive(b,c,e,k,h,a.dumpLineNumbers?m(k):null,!1,p)):void o.restore("directive options not recognised")}}},value:function(){var a,b=[];do if(a=this.expression(),a&&(b.push(a),!o.$char(",")))break;while(a);return b.length>0?new d.Value(b):void 0},important:function(){return"!"===o.currentChar()?o.$re(/^! *important/):void 0},sub:function(){var a,b;return o.save(),o.$char("(")?(a=this.addition(),a&&o.$char(")")?(o.forget(),b=new d.Expression([a]),b.parens=!0,b):void o.restore("Expected ')'")):void o.restore()},multiplication:function(){var a,b,c,e,f;if(a=this.operand()){for(f=o.isWhitespace(-1);;){if(o.peek(/^\/[*\/]/))break;if(o.save(),c=o.$char("/")||o.$char("*"),!c){o.forget();break}if(b=this.operand(),!b){o.restore();break}o.forget(),a.parensInOp=!0,b.parensInOp=!0,e=new d.Operation(c,[e||a,b],f),f=o.isWhitespace(-1)}return e||a}},addition:function(){var a,b,c,e,f;if(a=this.multiplication()){for(f=o.isWhitespace(-1);;){if(c=o.$re(/^[-+]\s+/)||!f&&(o.$char("+")||o.$char("-")),!c)break;if(b=this.multiplication(),!b)break;a.parensInOp=!0,b.parensInOp=!0,e=new d.Operation(c,[e||a,b],f),f=o.isWhitespace(-1)}return e||a}},conditions:function(){var a,b,c,e=o.i;if(a=this.condition()){for(;;){if(!o.peek(/^,\s*(not\s*)?\(/)||!o.$char(","))break;if(b=this.condition(),!b)break;c=new d.Condition("or",c||a,b,e)}return c||a}},condition:function(){var a,b,c,e,f=this.entities,g=o.i,h=!1;return o.$str("not")&&(h=!0),k("("),a=this.addition()||f.keyword()||f.quoted(),a?(o.$char(">")?e=o.$char("=")?">=":">":o.$char("<")?e=o.$char("=")?"<=":"<":o.$char("=")&&(e=o.$char(">")?"=>":o.$char("<")?"=<":"="),e?(b=this.addition()||f.keyword()||f.quoted(),b?c=new d.Condition(e,a,b,g,h):l("expected expression")):c=new d.Condition("=",a,new d.Keyword("true"),g,h),k(")"),o.$str("and")?new d.Condition("and",c,this.condition()):c):void 0},operand:function(){var a,b=this.entities;o.peek(/^-[@\(]/)&&(a=o.$char("-"));var c=this.sub()||b.dimension()||b.color()||b.variable()||b.call();return a&&(c.parensInOp=!0,c=new d.Negative(c)),c},expression:function(){var a,b,c=[];do a=this.comment(),a?c.push(a):(a=this.addition()||this.entity(),a&&(c.push(a),o.peek(/^\/[\/*]/)||(b=o.$char("/"),b&&c.push(new d.Anonymous(b)))));while(a);return c.length>0?new d.Expression(c):void 0},property:function(){var a=o.$re(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);return a?a[1]:void 0},ruleProperty:function(){function a(a){var b=o.i,c=o.$re(a);return c?(f.push(b),e.push(c[1])):void 0}var b,c,e=[],f=[];o.save();var g=o.$re(/^([_a-zA-Z0-9-]+)\s*:/);if(g)return e=[new d.Keyword(g[1])],o.forget(),e;for(a(/^(\*?)/);;)if(!a(/^((?:[\w-]+)|(?:@\{[\w-]+\}))/))break;if(e.length>1&&a(/^((?:\+_|\+)?)\s*:/)){for(o.forget(),""===e[0]&&(e.shift(),f.shift()),c=0;e.length>c;c++)b=e[c],e[c]="@"!==b.charAt(0)?new d.Keyword(b):new d.Variable("@"+b.slice(2,-1),f[c],h);return e}o.restore()}}}};h.serializeVars=function(a){var b="";for(var c in a)if(Object.hasOwnProperty.call(a,c)){var d=a[c];b+=("@"===c[0]?"":"@")+c+": "+d+(";"===String(d).slice(-1)?"":";")}return b},b.exports=h},{"../less-error":31,"../tree":61,"../utils":82,"../visitors":86,"./parser-input":36}],38:[function(a,b){var c=function(a){this.less=a,this.visitors=[],this.preProcessors=[],this.postProcessors=[],this.installedPlugins=[],this.fileManagers=[]};c.prototype.addPlugins=function(a){if(a)for(var b=0;a.length>b;b++)this.addPlugin(a[b])},c.prototype.addPlugin=function(a){this.installedPlugins.push(a),a.install(this.less,this)},c.prototype.addVisitor=function(a){this.visitors.push(a)},c.prototype.addPreProcessor=function(a,b){var c;for(c=0;this.preProcessors.length>c&&!(this.preProcessors[c].priority>=b);c++);this.preProcessors.splice(c,0,{preProcessor:a,priority:b})},c.prototype.addPostProcessor=function(a,b){var c;for(c=0;this.postProcessors.length>c&&!(this.postProcessors[c].priority>=b);c++);this.postProcessors.splice(c,0,{postProcessor:a,priority:b})},c.prototype.addFileManager=function(a){this.fileManagers.push(a)},c.prototype.getPreProcessors=function(){for(var a=[],b=0;this.preProcessors.length>b;b++)a.push(this.preProcessors[b].preProcessor);return a},c.prototype.getPostProcessors=function(){for(var a=[],b=0;this.postProcessors.length>b;b++)a.push(this.postProcessors[b].postProcessor);return a},c.prototype.getVisitors=function(){return this.visitors},c.prototype.getFileManagers=function(){return this.fileManagers},b.exports=c},{}],39:[function(a,b){var c=a("../less-error"),d=a("../tree"),e=b.exports=function(a,b){this.fileInfo=b};e.prototype.eval=function(a,b){var e,f,g={};f={add:function(a,b){g[a]=b},addMultiple:function(a){Object.keys(a).forEach(function(b){g[b]=a[b]})}};try{e=new Function("functions","tree","fileInfo",a),e(f,d,this.fileInfo)}catch(h){b(new c({message:"Plugin evaluation error: '"+h.name+": "+h.message.replace(/["]/g,"'")+"'",filename:this.fileInfo.filename}),null)}b(null,{functions:g})}},{"../less-error":31,"../tree":61}],40:[function(a,b){var c;b.exports=function(b,d){var e=function(b,f,g){if("function"==typeof f&&(g=f,f={}),!g){c||(c="undefined"==typeof Promise?a("promise"):Promise);var h=this;return new c(function(a,c){e.call(h,b,f,function(b,d){b?c(b):a(d)})})}this.parse(b,f,function(a,b,c,e){if(a)return g(a);var f;try{var h=new d(b,c);f=h.toCSS(e)}catch(a){return g(a)}g(null,f)})};return e}},{promise:void 0}],41:[function(a,b){b.exports=function(a,b){var c=function(a){this.options=a};return c.prototype.toCSS=function(b,c,d){var e=new a({contentsIgnoredCharsMap:d.contentsIgnoredChars,rootNode:b,contentsMap:d.contents,sourceMapFilename:this.options.sourceMapFilename,sourceMapURL:this.options.sourceMapURL,outputFilename:this.options.sourceMapOutputFilename,sourceMapBasepath:this.options.sourceMapBasepath,sourceMapRootpath:this.options.sourceMapRootpath,outputSourceFiles:this.options.outputSourceFiles,sourceMapGenerator:this.options.sourceMapGenerator,sourceMapFileInline:this.options.sourceMapFileInline}),f=e.toCSS(c);return this.sourceMap=e.sourceMap,this.sourceMapURL=e.sourceMapURL,this.options.sourceMapInputFilename&&(this.sourceMapInputFilename=e.normalizeFilename(this.options.sourceMapInputFilename)),f+this.getCSSAppendage()},c.prototype.getCSSAppendage=function(){var a=this.sourceMapURL;if(this.options.sourceMapFileInline){if(void 0===this.sourceMap)return"";a="data:application/json;base64,"+b.encodeBase64(this.sourceMap)}return a?"/*# sourceMappingURL="+a+" */":""},c.prototype.getExternalSourceMap=function(){return this.sourceMap},c.prototype.setExternalSourceMap=function(a){this.sourceMap=a},c.prototype.isInline=function(){return this.options.sourceMapFileInline},c.prototype.getSourceMapURL=function(){return this.sourceMapURL},c.prototype.getOutputFilename=function(){return this.options.sourceMapOutputFilename},c.prototype.getInputFilename=function(){return this.sourceMapInputFilename},c}},{}],42:[function(a,b){b.exports=function(a){var b=function(b){this._css=[],this._rootNode=b.rootNode,this._contentsMap=b.contentsMap, +this._contentsIgnoredCharsMap=b.contentsIgnoredCharsMap,b.sourceMapFilename&&(this._sourceMapFilename=b.sourceMapFilename.replace(/\\/g,"/")),this._outputFilename=b.outputFilename,this.sourceMapURL=b.sourceMapURL,b.sourceMapBasepath&&(this._sourceMapBasepath=b.sourceMapBasepath.replace(/\\/g,"/")),b.sourceMapRootpath?(this._sourceMapRootpath=b.sourceMapRootpath.replace(/\\/g,"/"),"/"!==this._sourceMapRootpath.charAt(this._sourceMapRootpath.length-1)&&(this._sourceMapRootpath+="/")):this._sourceMapRootpath="",this._outputSourceFiles=b.outputSourceFiles,this._sourceMapGeneratorConstructor=a.getSourceMapGenerator(),this._lineNumber=0,this._column=0};return b.prototype.normalizeFilename=function(a){return a=a.replace(/\\/g,"/"),this._sourceMapBasepath&&0===a.indexOf(this._sourceMapBasepath)&&(a=a.substring(this._sourceMapBasepath.length),("\\"===a.charAt(0)||"/"===a.charAt(0))&&(a=a.substring(1))),(this._sourceMapRootpath||"")+a},b.prototype.add=function(a,b,c,d){if(a){var e,f,g,h,i;if(b){var j=this._contentsMap[b.filename];this._contentsIgnoredCharsMap[b.filename]&&(c-=this._contentsIgnoredCharsMap[b.filename],0>c&&(c=0),j=j.slice(this._contentsIgnoredCharsMap[b.filename])),j=j.substring(0,c),f=j.split("\n"),h=f[f.length-1]}if(e=a.split("\n"),g=e[e.length-1],b)if(d)for(i=0;e.length>i;i++)this._sourceMapGenerator.addMapping({generated:{line:this._lineNumber+i+1,column:0===i?this._column:0},original:{line:f.length+i,column:0===i?h.length:0},source:this.normalizeFilename(b.filename)});else this._sourceMapGenerator.addMapping({generated:{line:this._lineNumber+1,column:this._column},original:{line:f.length,column:h.length},source:this.normalizeFilename(b.filename)});1===e.length?this._column+=g.length:(this._lineNumber+=e.length-1,this._column=g.length),this._css.push(a)}},b.prototype.isEmpty=function(){return 0===this._css.length},b.prototype.toCSS=function(a){if(this._sourceMapGenerator=new this._sourceMapGeneratorConstructor({file:this._outputFilename,sourceRoot:null}),this._outputSourceFiles)for(var b in this._contentsMap)if(this._contentsMap.hasOwnProperty(b)){var c=this._contentsMap[b];this._contentsIgnoredCharsMap[b]&&(c=c.slice(this._contentsIgnoredCharsMap[b])),this._sourceMapGenerator.setSourceContent(this.normalizeFilename(b),c)}if(this._rootNode.genCSS(a,this),this._css.length>0){var d,e=JSON.stringify(this._sourceMapGenerator.toJSON());this.sourceMapURL?d=this.sourceMapURL:this._sourceMapFilename&&(d=this._sourceMapFilename),this.sourceMapURL=d,this.sourceMap=e}return this._css.join("")},b}},{}],43:[function(a,b){var c=a("./contexts"),d=a("./visitors"),e=a("./tree");b.exports=function(a,b){b=b||{};var f,g=b.variables,h=new c.Eval(b);"object"!=typeof g||Array.isArray(g)||(g=Object.keys(g).map(function(a){var b=g[a];return b instanceof e.Value||(b instanceof e.Expression||(b=new e.Expression([b])),b=new e.Value([b])),new e.Rule("@"+a,b,!1,null,0)}),h.frames=[new e.Ruleset(null,g)]);var i,j=[],k=[new d.JoinSelectorVisitor,new d.ExtendVisitor,new d.ToCSSVisitor({compress:Boolean(b.compress)})];if(b.pluginManager){var l=b.pluginManager.getVisitors();for(i=0;l.length>i;i++){var m=l[i];m.isPreEvalVisitor?j.push(m):m.isPreVisitor?k.splice(0,0,m):k.push(m)}}for(i=0;j.length>i;i++)j[i].run(a);for(f=a.eval(h),i=0;k.length>i;i++)k[i].run(f);return f}},{"./contexts":10,"./tree":61,"./visitors":86}],44:[function(a,b){var c=a("./node"),d=function(a){this.value=a};d.prototype=new c,d.prototype.type="Alpha",d.prototype.accept=function(a){this.value=a.visit(this.value)},d.prototype.eval=function(a){return this.value.eval?new d(this.value.eval(a)):this},d.prototype.genCSS=function(a,b){b.add("alpha(opacity="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value),b.add(")")},b.exports=d},{"./node":69}],45:[function(a,b){var c=a("./node"),d=function(a,b,c,d,e,f){this.value=a,this.index=b,this.mapLines=d,this.currentFileInfo=c,this.rulesetLike="undefined"==typeof e?!1:e,this.isReferenced=f||!1};d.prototype=new c,d.prototype.type="Anonymous",d.prototype.eval=function(){return new d(this.value,this.index,this.currentFileInfo,this.mapLines,this.rulesetLike,this.isReferenced)},d.prototype.compare=function(a){return a.toCSS&&this.toCSS()===a.toCSS()?0:void 0},d.prototype.isRulesetLike=function(){return this.rulesetLike},d.prototype.genCSS=function(a,b){b.add(this.value,this.currentFileInfo,this.index,this.mapLines)},d.prototype.markReferenced=function(){this.isReferenced=!0},d.prototype.getIsReferenced=function(){return!this.currentFileInfo||!this.currentFileInfo.reference||this.isReferenced},b.exports=d},{"./node":69}],46:[function(a,b){var c=a("./node"),d=function(a,b){this.key=a,this.value=b};d.prototype=new c,d.prototype.type="Assignment",d.prototype.accept=function(a){this.value=a.visit(this.value)},d.prototype.eval=function(a){return this.value.eval?new d(this.key,this.value.eval(a)):this},d.prototype.genCSS=function(a,b){b.add(this.key+"="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value)},b.exports=d},{"./node":69}],47:[function(a,b){var c=a("./node"),d=function(a,b,c){this.key=a,this.op=b,this.value=c};d.prototype=new c,d.prototype.type="Attribute",d.prototype.eval=function(a){return new d(this.key.eval?this.key.eval(a):this.key,this.op,this.value&&this.value.eval?this.value.eval(a):this.value)},d.prototype.genCSS=function(a,b){b.add(this.toCSS(a))},d.prototype.toCSS=function(a){var b=this.key.toCSS?this.key.toCSS(a):this.key;return this.op&&(b+=this.op,b+=this.value.toCSS?this.value.toCSS(a):this.value),"["+b+"]"},b.exports=d},{"./node":69}],48:[function(a,b){var c=a("./node"),d=a("../functions/function-caller"),e=function(a,b,c,d){this.name=a,this.args=b,this.index=c,this.currentFileInfo=d};e.prototype=new c,e.prototype.type="Call",e.prototype.accept=function(a){this.args&&(this.args=a.visitArray(this.args))},e.prototype.eval=function(a){var b,c=this.args.map(function(b){return b.eval(a)}),f=new d(this.name,a,this.index,this.currentFileInfo);if(f.isValid())try{if(b=f.call(c),null!=b)return b}catch(g){throw{type:g.type||"Runtime",message:"error evaluating function `"+this.name+"`"+(g.message?": "+g.message:""),index:this.index,filename:this.currentFileInfo.filename}}return new e(this.name,c,this.index,this.currentFileInfo)},e.prototype.genCSS=function(a,b){b.add(this.name+"(",this.currentFileInfo,this.index);for(var c=0;this.args.length>c;c++)this.args[c].genCSS(a,b),this.args.length>c+1&&b.add(", ");b.add(")")},b.exports=e},{"../functions/function-caller":20,"./node":69}],49:[function(a,b){function c(a,b){return Math.min(Math.max(a,0),b)}function d(a){return"#"+a.map(function(a){return a=c(Math.round(a),255),(16>a?"0":"")+a.toString(16)}).join("")}var e=a("./node"),f=a("../data/colors"),g=function(a,b,c){this.rgb=Array.isArray(a)?a:6==a.length?a.match(/.{2}/g).map(function(a){return parseInt(a,16)}):a.split("").map(function(a){return parseInt(a+a,16)}),this.alpha="number"==typeof b?b:1,"undefined"!=typeof c&&(this.value=c)};g.prototype=new e,g.prototype.type="Color",g.prototype.luma=function(){var a=this.rgb[0]/255,b=this.rgb[1]/255,c=this.rgb[2]/255;return a=.03928>=a?a/12.92:Math.pow((a+.055)/1.055,2.4),b=.03928>=b?b/12.92:Math.pow((b+.055)/1.055,2.4),c=.03928>=c?c/12.92:Math.pow((c+.055)/1.055,2.4),.2126*a+.7152*b+.0722*c},g.prototype.genCSS=function(a,b){b.add(this.toCSS(a))},g.prototype.toCSS=function(a,b){var d,e,f=a&&a.compress&&!b;if(this.value)return this.value;if(e=this.fround(a,this.alpha),1>e)return"rgba("+this.rgb.map(function(a){return c(Math.round(a),255)}).concat(c(e,1)).join(","+(f?"":" "))+")";if(d=this.toRGB(),f){var g=d.split("");g[1]===g[2]&&g[3]===g[4]&&g[5]===g[6]&&(d="#"+g[1]+g[3]+g[5])}return d},g.prototype.operate=function(a,b,c){for(var d=[],e=this.alpha*(1-c.alpha)+c.alpha,f=0;3>f;f++)d[f]=this._operate(a,b,this.rgb[f],c.rgb[f]);return new g(d,e)},g.prototype.toRGB=function(){return d(this.rgb)},g.prototype.toHSL=function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=(g+h)/2,j=g-h;if(g===h)a=b=0;else{switch(b=i>.5?j/(2-g-h):j/(g+h),g){case c:a=(d-e)/j+(e>d?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,l:i,a:f}},g.prototype.toHSV=function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=0;else{switch(g){case c:a=(d-e)/j+(e>d?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,v:i,a:f}},g.prototype.toARGB=function(){return d([255*this.alpha].concat(this.rgb))},g.prototype.compare=function(a){return a.rgb&&a.rgb[0]===this.rgb[0]&&a.rgb[1]===this.rgb[1]&&a.rgb[2]===this.rgb[2]&&a.alpha===this.alpha?0:void 0},g.fromKeyword=function(a){var b,c=a.toLowerCase();return f.hasOwnProperty(c)?b=new g(f[c].slice(1)):"transparent"===c&&(b=new g([0,0,0],0)),b?(b.value=a,b):void 0},b.exports=g},{"../data/colors":11,"./node":69}],50:[function(a,b){var c=a("./node"),d=function(a){" "===a?(this.value=" ",this.emptyOrWhitespace=!0):(this.value=a?a.trim():"",this.emptyOrWhitespace=""===this.value)};d.prototype=new c,d.prototype.type="Combinator";var e={"":!0," ":!0,"|":!0};d.prototype.genCSS=function(a,b){var c=a.compress||e[this.value]?"":" ";b.add(c+this.value+c)},b.exports=d},{"./node":69}],51:[function(a,b){var c=a("./node"),d=a("./debug-info"),e=function(a,b,c,d){this.value=a,this.isLineComment=b,this.currentFileInfo=d};e.prototype=new c,e.prototype.type="Comment",e.prototype.genCSS=function(a,b){this.debugInfo&&b.add(d(a,this),this.currentFileInfo,this.index),b.add(this.value)},e.prototype.isSilent=function(a){var b=this.currentFileInfo&&this.currentFileInfo.reference&&!this.isReferenced,c=a.compress&&"!"!==this.value[2];return this.isLineComment||b||c},e.prototype.markReferenced=function(){this.isReferenced=!0},b.exports=e},{"./debug-info":53,"./node":69}],52:[function(a,b){var c=a("./node"),d=function(a,b,c,d,e){this.op=a.trim(),this.lvalue=b,this.rvalue=c,this.index=d,this.negate=e};d.prototype=new c,d.prototype.type="Condition",d.prototype.accept=function(a){this.lvalue=a.visit(this.lvalue),this.rvalue=a.visit(this.rvalue)},d.prototype.eval=function(a){var b=function(a,b,d){switch(a){case"and":return b&&d;case"or":return b||d;default:switch(c.compare(b,d)){case-1:return"<"===a||"=<"===a||"<="===a;case 0:return"="===a||">="===a||"=<"===a||"<="===a;case 1:return">"===a||">="===a;default:return!1}}}(this.op,this.lvalue.eval(a),this.rvalue.eval(a));return this.negate?!b:b},b.exports=d},{"./node":69}],53:[function(a,b){var c=function(a,b,d){var e="";if(a.dumpLineNumbers&&!a.compress)switch(a.dumpLineNumbers){case"comments":e=c.asComment(b);break;case"mediaquery":e=c.asMediaQuery(b);break;case"all":e=c.asComment(b)+(d||"")+c.asMediaQuery(b)}return e};c.asComment=function(a){return"/* line "+a.debugInfo.lineNumber+", "+a.debugInfo.fileName+" */\n"},c.asMediaQuery=function(a){var b=a.debugInfo.fileName;return/^[a-z]+:\/\//i.test(b)||(b="file://"+b),"@media -sass-debug-info{filename{font-family:"+b.replace(/([.:\/\\])/g,function(a){return"\\"==a&&(a="/"),"\\"+a})+"}line{font-family:\\00003"+a.debugInfo.lineNumber+"}}\n"},b.exports=c},{}],54:[function(a,b){var c=a("./node"),d=a("../contexts"),e=function(a,b){this.ruleset=a,this.frames=b};e.prototype=new c,e.prototype.type="DetachedRuleset",e.prototype.evalFirst=!0,e.prototype.accept=function(a){this.ruleset=a.visit(this.ruleset)},e.prototype.eval=function(a){var b=this.frames||a.frames.slice(0);return new e(this.ruleset,b)},e.prototype.callEval=function(a){return this.ruleset.eval(this.frames?new d.Eval(a,this.frames.concat(a.frames)):a)},b.exports=e},{"../contexts":10,"./node":69}],55:[function(a,b){var c=a("./node"),d=a("../data/unit-conversions"),e=a("./unit"),f=a("./color"),g=function(a,b){this.value=parseFloat(a),this.unit=b&&b instanceof e?b:new e(b?[b]:void 0)};g.prototype=new c,g.prototype.type="Dimension",g.prototype.accept=function(a){this.unit=a.visit(this.unit)},g.prototype.eval=function(){return this},g.prototype.toColor=function(){return new f([this.value,this.value,this.value])},g.prototype.genCSS=function(a,b){if(a&&a.strictUnits&&!this.unit.isSingular())throw new Error("Multiple units in dimension. Correct the units or use the unit function. Bad unit: "+this.unit.toString());var c=this.fround(a,this.value),d=String(c);if(0!==c&&1e-6>c&&c>-1e-6&&(d=c.toFixed(20).replace(/0+$/,"")),a&&a.compress){if(0===c&&this.unit.isLength())return void b.add(d);c>0&&1>c&&(d=d.substr(1))}b.add(d),this.unit.genCSS(a,b)},g.prototype.operate=function(a,b,c){var d=this._operate(a,b,this.value,c.value),e=this.unit.clone();if("+"===b||"-"===b)if(0===e.numerator.length&&0===e.denominator.length)e=c.unit.clone(),this.unit.backupUnit&&(e.backupUnit=this.unit.backupUnit);else if(0===c.unit.numerator.length&&0===e.denominator.length);else{if(c=c.convertTo(this.unit.usedUnits()),a.strictUnits&&c.unit.toString()!==e.toString())throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '"+e.toString()+"' and '"+c.unit.toString()+"'.");d=this._operate(a,b,this.value,c.value)}else"*"===b?(e.numerator=e.numerator.concat(c.unit.numerator).sort(),e.denominator=e.denominator.concat(c.unit.denominator).sort(),e.cancel()):"/"===b&&(e.numerator=e.numerator.concat(c.unit.denominator).sort(),e.denominator=e.denominator.concat(c.unit.numerator).sort(),e.cancel());return new g(d,e)},g.prototype.compare=function(a){var b,d;if(!(a instanceof g))return void 0;if(this.unit.isEmpty()||a.unit.isEmpty())b=this,d=a;else if(b=this.unify(),d=a.unify(),0!==b.unit.compare(d.unit))return void 0;return c.numericCompare(b.value,d.value)},g.prototype.unify=function(){return this.convertTo({length:"px",duration:"s",angle:"rad"})},g.prototype.convertTo=function(a){var b,c,e,f,h,i=this.value,j=this.unit.clone(),k={};if("string"==typeof a){for(b in d)d[b].hasOwnProperty(a)&&(k={},k[b]=a);a=k}h=function(a,b){return e.hasOwnProperty(a)?(b?i/=e[a]/e[f]:i*=e[a]/e[f],f):a};for(c in a)a.hasOwnProperty(c)&&(f=a[c],e=d[c],j.map(h));return j.cancel(),new g(i,j)},b.exports=g},{"../data/unit-conversions":13,"./color":49,"./node":69,"./unit":78}],56:[function(a,b){var c=a("./node"),d=a("./selector"),e=a("./ruleset"),f=function(a,b,c,e,f,g,h,i){var j;if(this.name=a,this.value=b,c)for(Array.isArray(c)?this.rules=c:(this.rules=[c],this.rules[0].selectors=new d([],null,null,this.index,f).createEmptySelectors()),j=0;this.rules.length>j;j++)this.rules[j].allowImports=!0;this.index=e,this.currentFileInfo=f,this.debugInfo=g,this.isReferenced=h,this.isRooted=i||!1};f.prototype=new c,f.prototype.type="Directive",f.prototype.accept=function(a){var b=this.value,c=this.rules;c&&(this.rules=a.visitArray(c)),b&&(this.value=a.visit(b))},f.prototype.isRulesetLike=function(){return this.rules||!this.isCharset()},f.prototype.isCharset=function(){return"@charset"===this.name},f.prototype.genCSS=function(a,b){var c=this.value,d=this.rules;b.add(this.name,this.currentFileInfo,this.index),c&&(b.add(" "),c.genCSS(a,b)),d?this.outputRuleset(a,b,d):b.add(";")},f.prototype.eval=function(a){var b,c,d=this.value,e=this.rules;return b=a.mediaPath,c=a.mediaBlocks,a.mediaPath=[],a.mediaBlocks=[],d&&(d=d.eval(a)),e&&(e=[e[0].eval(a)],e[0].root=!0),a.mediaPath=b,a.mediaBlocks=c,new f(this.name,d,e,this.index,this.currentFileInfo,this.debugInfo,this.isReferenced,this.isRooted)},f.prototype.variable=function(a){return this.rules?e.prototype.variable.call(this.rules[0],a):void 0},f.prototype.find=function(){return this.rules?e.prototype.find.apply(this.rules[0],arguments):void 0},f.prototype.rulesets=function(){return this.rules?e.prototype.rulesets.apply(this.rules[0]):void 0},f.prototype.markReferenced=function(){var a,b;if(this.isReferenced=!0,this.rules)for(b=this.rules,a=0;b.length>a;a++)b[a].markReferenced&&b[a].markReferenced()},f.prototype.getIsReferenced=function(){return!this.currentFileInfo||!this.currentFileInfo.reference||this.isReferenced},f.prototype.outputRuleset=function(a,b,c){var d,e=c.length;if(a.tabLevel=(0|a.tabLevel)+1,a.compress){for(b.add("{"),d=0;e>d;d++)c[d].genCSS(a,b);return b.add("}"),void a.tabLevel--}var f="\n"+Array(a.tabLevel).join(" "),g=f+" ";if(e){for(b.add(" {"+g),c[0].genCSS(a,b),d=1;e>d;d++)b.add(g),c[d].genCSS(a,b);b.add(f+"}")}else b.add(" {"+f+"}");a.tabLevel--},b.exports=f},{"./node":69,"./ruleset":75,"./selector":76}],57:[function(a,b){var c=a("./node"),d=a("./paren"),e=a("./combinator"),f=function(a,b,c,d){this.combinator=a instanceof e?a:new e(a),this.value="string"==typeof b?b.trim():b?b:"",this.index=c,this.currentFileInfo=d};f.prototype=new c,f.prototype.type="Element",f.prototype.accept=function(a){var b=this.value;this.combinator=a.visit(this.combinator),"object"==typeof b&&(this.value=a.visit(b))},f.prototype.eval=function(a){return new f(this.combinator,this.value.eval?this.value.eval(a):this.value,this.index,this.currentFileInfo)},f.prototype.genCSS=function(a,b){b.add(this.toCSS(a),this.currentFileInfo,this.index)},f.prototype.toCSS=function(a){a=a||{};var b=this.value,c=a.firstSelector;return b instanceof d&&(a.firstSelector=!0),b=b.toCSS?b.toCSS(a):b,a.firstSelector=c,""===b&&"&"===this.combinator.value.charAt(0)?"":this.combinator.toCSS(a)+b},b.exports=f},{"./combinator":50,"./node":69,"./paren":71}],58:[function(a,b){var c=a("./node"),d=a("./paren"),e=a("./comment"),f=function(a){if(this.value=a,!a)throw new Error("Expression requires an array parameter")};f.prototype=new c,f.prototype.type="Expression",f.prototype.accept=function(a){this.value=a.visitArray(this.value)},f.prototype.eval=function(a){var b,c=this.parens&&!this.parensInOp,e=!1;return c&&a.inParenthesis(),this.value.length>1?b=new f(this.value.map(function(b){return b.eval(a)})):1===this.value.length?(this.value[0].parens&&!this.value[0].parensInOp&&(e=!0),b=this.value[0].eval(a)):b=this,c&&a.outOfParenthesis(),this.parens&&this.parensInOp&&!a.isMathOn()&&!e&&(b=new d(b)),b},f.prototype.genCSS=function(a,b){for(var c=0;this.value.length>c;c++)this.value[c].genCSS(a,b),this.value.length>c+1&&b.add(" ")},f.prototype.throwAwayComments=function(){this.value=this.value.filter(function(a){return!(a instanceof e)})},f.prototype.markReferenced=function(){this.value.forEach(function(a){a.markReferenced&&a.markReferenced()})},b.exports=f},{"./comment":51,"./node":69,"./paren":71}],59:[function(a,b){var c=a("./node"),d=function e(a,b,c){switch(this.selector=a,this.option=b,this.index=c,this.object_id=e.next_id++,this.parent_ids=[this.object_id],b){case"all":this.allowBefore=!0,this.allowAfter=!0;break;default:this.allowBefore=!1,this.allowAfter=!1}};d.next_id=0,d.prototype=new c,d.prototype.type="Extend",d.prototype.accept=function(a){this.selector=a.visit(this.selector)},d.prototype.eval=function(a){return new d(this.selector.eval(a),this.option,this.index)},d.prototype.clone=function(){return new d(this.selector,this.option,this.index)},d.prototype.findSelfSelectors=function(a){var b,c,d=[];for(b=0;a.length>b;b++)c=a[b].elements,b>0&&c.length&&""===c[0].combinator.value&&(c[0].combinator.value=" "),d=d.concat(a[b].elements);this.selfSelectors=[{elements:d}]},b.exports=d},{"./node":69}],60:[function(a,b){var c=a("./node"),d=a("./media"),e=a("./url"),f=a("./quoted"),g=a("./ruleset"),h=a("./anonymous"),i=function(a,b,c,d,e){if(this.options=c,this.index=d,this.path=a,this.features=b,this.currentFileInfo=e,void 0!==this.options.less||this.options.inline)this.css=!this.options.less||this.options.inline;else{var f=this.getPath();f&&/[#\.\&\?\/]css([\?;].*)?$/.test(f)&&(this.css=!0)}};i.prototype=new c,i.prototype.type="Import",i.prototype.accept=function(a){this.features&&(this.features=a.visit(this.features)),this.path=a.visit(this.path),this.options.plugin||this.options.inline||!this.root||(this.root=a.visit(this.root))},i.prototype.genCSS=function(a,b){this.css&&void 0===this.path.currentFileInfo.reference&&(b.add("@import ",this.currentFileInfo,this.index),this.path.genCSS(a,b),this.features&&(b.add(" "),this.features.genCSS(a,b)),b.add(";"))},i.prototype.getPath=function(){return this.path instanceof e?this.path.value.value:this.path.value},i.prototype.isVariableImport=function(){var a=this.path;return a instanceof e&&(a=a.value),a instanceof f?a.containsVariables():!0},i.prototype.evalForImport=function(a){var b=this.path;return b instanceof e&&(b=b.value),new i(b.eval(a),this.features,this.options,this.index,this.currentFileInfo)},i.prototype.evalPath=function(a){var b=this.path.eval(a),c=this.currentFileInfo&&this.currentFileInfo.rootpath;if(!(b instanceof e)){if(c){var d=b.value;d&&a.isPathRelative(d)&&(b.value=c+d)}b.value=a.normalizePath(b.value)}return b},i.prototype.eval=function(a){var b,c,e=this.features&&this.features.eval(a);if(this.options.plugin)return c=a.frames[0]&&a.frames[0].functionRegistry,c&&this.root&&this.root.functions&&c.addMultiple(this.root.functions),[];if(this.skip&&("function"==typeof this.skip&&(this.skip=this.skip()),this.skip))return[];if(this.options.inline){var f=new h(this.root,0,{filename:this.importedFilename,reference:this.path.currentFileInfo&&this.path.currentFileInfo.reference},!0,!0,!1);return this.features?new d([f],this.features.value):[f]}if(this.css){var j=new i(this.evalPath(a),e,this.options,this.index);if(!j.css&&this.error)throw this.error;return j}return b=new g(null,this.root.rules.slice(0)),b.evalImports(a),this.features?new d(b.rules,this.features.value):b.rules},b.exports=i},{"./anonymous":45,"./media":65,"./node":69,"./quoted":72,"./ruleset":75,"./url":79}],61:[function(a,b){var c={};c.Node=a("./node"),c.Alpha=a("./alpha"),c.Color=a("./color"),c.Directive=a("./directive"),c.DetachedRuleset=a("./detached-ruleset"),c.Operation=a("./operation"),c.Dimension=a("./dimension"),c.Unit=a("./unit"),c.Keyword=a("./keyword"),c.Variable=a("./variable"),c.Ruleset=a("./ruleset"),c.Element=a("./element"),c.Attribute=a("./attribute"),c.Combinator=a("./combinator"),c.Selector=a("./selector"),c.Quoted=a("./quoted"),c.Expression=a("./expression"),c.Rule=a("./rule"),c.Call=a("./call"),c.URL=a("./url"),c.Import=a("./import"),c.mixin={Call:a("./mixin-call"),Definition:a("./mixin-definition")},c.Comment=a("./comment"),c.Anonymous=a("./anonymous"),c.Value=a("./value"),c.JavaScript=a("./javascript"),c.Assignment=a("./assignment"),c.Condition=a("./condition"),c.Paren=a("./paren"),c.Media=a("./media"),c.UnicodeDescriptor=a("./unicode-descriptor"),c.Negative=a("./negative"),c.Extend=a("./extend"),c.RulesetCall=a("./ruleset-call"),b.exports=c},{"./alpha":44,"./anonymous":45,"./assignment":46,"./attribute":47,"./call":48,"./color":49,"./combinator":50,"./comment":51,"./condition":52,"./detached-ruleset":54,"./dimension":55,"./directive":56,"./element":57,"./expression":58,"./extend":59,"./import":60,"./javascript":62,"./keyword":64,"./media":65,"./mixin-call":66,"./mixin-definition":67,"./negative":68,"./node":69,"./operation":70,"./paren":71,"./quoted":72,"./rule":73,"./ruleset":75,"./ruleset-call":74,"./selector":76,"./unicode-descriptor":77,"./unit":78,"./url":79,"./value":80,"./variable":81}],62:[function(a,b){var c=a("./js-eval-node"),d=a("./dimension"),e=a("./quoted"),f=a("./anonymous"),g=function(a,b,c,d){this.escaped=b,this.expression=a,this.index=c,this.currentFileInfo=d};g.prototype=new c,g.prototype.type="JavaScript",g.prototype.eval=function(a){var b=this.evaluateJavaScript(this.expression,a);return"number"==typeof b?new d(b):"string"==typeof b?new e('"'+b+'"',b,this.escaped,this.index):new f(Array.isArray(b)?b.join(", "):b)},b.exports=g},{"./anonymous":45,"./dimension":55,"./js-eval-node":63,"./quoted":72}],63:[function(a,b){var c=a("./node"),d=a("./variable"),e=function(){};e.prototype=new c,e.prototype.evaluateJavaScript=function(a,b){var c,e=this,f={};if(void 0!==b.javascriptEnabled&&!b.javascriptEnabled)throw{message:"You are using JavaScript, which has been disabled.",filename:this.currentFileInfo.filename,index:this.index};a=a.replace(/@\{([\w-]+)\}/g,function(a,c){return e.jsify(new d("@"+c,e.index,e.currentFileInfo).eval(b))});try{a=new Function("return ("+a+")")}catch(g){throw{message:"JavaScript evaluation error: "+g.message+" from `"+a+"`",filename:this.currentFileInfo.filename,index:this.index}}var h=b.frames[0].variables();for(var i in h)h.hasOwnProperty(i)&&(f[i.slice(1)]={value:h[i].value,toJS:function(){return this.value.eval(b).toCSS()}});try{c=a.call(f)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message.replace(/["]/g,"'")+"'",filename:this.currentFileInfo.filename,index:this.index}}return c},e.prototype.jsify=function(a){return Array.isArray(a.value)&&a.value.length>1?"["+a.value.map(function(a){return a.toCSS()}).join(", ")+"]":a.toCSS()},b.exports=e},{"./node":69,"./variable":81}],64:[function(a,b){var c=a("./node"),d=function(a){this.value=a};d.prototype=new c,d.prototype.type="Keyword",d.prototype.genCSS=function(a,b){if("%"===this.value)throw{type:"Syntax",message:"Invalid % without number"};b.add(this.value)},d.True=new d("true"),d.False=new d("false"),b.exports=d},{"./node":69}],65:[function(a,b){var c=a("./ruleset"),d=a("./value"),e=a("./selector"),f=a("./anonymous"),g=a("./expression"),h=a("./directive"),i=function(a,b,f,g){this.index=f,this.currentFileInfo=g;var h=new e([],null,null,this.index,this.currentFileInfo).createEmptySelectors();this.features=new d(b),this.rules=[new c(h,a)],this.rules[0].allowImports=!0};i.prototype=new h,i.prototype.type="Media",i.prototype.isRulesetLike=!0,i.prototype.accept=function(a){this.features&&(this.features=a.visit(this.features)),this.rules&&(this.rules=a.visitArray(this.rules))},i.prototype.genCSS=function(a,b){b.add("@media ",this.currentFileInfo,this.index),this.features.genCSS(a,b),this.outputRuleset(a,b,this.rules)},i.prototype.eval=function(a){a.mediaBlocks||(a.mediaBlocks=[],a.mediaPath=[]);var b=new i(null,[],this.index,this.currentFileInfo);this.debugInfo&&(this.rules[0].debugInfo=this.debugInfo,b.debugInfo=this.debugInfo);var c=!1;a.strictMath||(c=!0,a.strictMath=!0);try{b.features=this.features.eval(a)}finally{c&&(a.strictMath=!1)}return a.mediaPath.push(b),a.mediaBlocks.push(b),this.rules[0].functionRegistry=a.frames[0].functionRegistry.inherit(),a.frames.unshift(this.rules[0]),b.rules=[this.rules[0].eval(a)],a.frames.shift(),a.mediaPath.pop(),0===a.mediaPath.length?b.evalTop(a):b.evalNested(a)},i.prototype.evalTop=function(a){var b=this;if(a.mediaBlocks.length>1){var d=new e([],null,null,this.index,this.currentFileInfo).createEmptySelectors();b=new c(d,a.mediaBlocks),b.multiMedia=!0}return delete a.mediaBlocks,delete a.mediaPath,b},i.prototype.evalNested=function(a){var b,e,h=a.mediaPath.concat([this]);for(b=0;h.length>b;b++)e=h[b].features instanceof d?h[b].features.value:h[b].features,h[b]=Array.isArray(e)?e:[e];return this.features=new d(this.permute(h).map(function(a){for(a=a.map(function(a){return a.toCSS?a:new f(a)}),b=a.length-1;b>0;b--)a.splice(b,0,new f("and"));return new g(a)})),new c([],[])},i.prototype.permute=function(a){if(0===a.length)return[];if(1===a.length)return a[0];for(var b=[],c=this.permute(a.slice(1)),d=0;c.length>d;d++)for(var e=0;a[0].length>e;e++)b.push([a[0][e]].concat(c[d]));return b},i.prototype.bubbleSelectors=function(a){a&&(this.rules=[new c(a.slice(0),[this.rules[0]])])},b.exports=i},{"./anonymous":45,"./directive":56,"./expression":58,"./ruleset":75,"./selector":76,"./value":80}],66:[function(a,b){var c=a("./node"),d=a("./selector"),e=a("./mixin-definition"),f=a("../functions/default"),g=function(a,b,c,e,f){this.selector=new d(a),this.arguments=b||[],this.index=c,this.currentFileInfo=e,this.important=f};g.prototype=new c,g.prototype.type="MixinCall",g.prototype.accept=function(a){this.selector&&(this.selector=a.visit(this.selector)),this.arguments.length&&(this.arguments=a.visitArray(this.arguments))},g.prototype.eval=function(a){function b(b,c){var d,e,g;for(d=0;2>d;d++){for(y[d]=!0,f.value(d),e=0;c.length>e&&y[d];e++)g=c[e],g.matchCondition&&(y[d]=y[d]&&g.matchCondition(null,a));b.matchCondition&&(y[d]=y[d]&&b.matchCondition(u,a))}return y[0]||y[1]?y[0]!=y[1]?y[1]?B:C:A:z}var c,d,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=[],v=[],w=!1,x=[],y=[],z=-1,A=0,B=1,C=2;for(k=0;this.arguments.length>k;k++)if(h=this.arguments[k],i=h.value.eval(a),h.expand&&Array.isArray(i.value))for(i=i.value,l=0;i.length>l;l++)u.push({value:i[l]});else u.push({name:h.name,value:i});for(t=function(b){return b.matchArgs(null,a)},k=0;a.frames.length>k;k++)if((c=a.frames[k].find(this.selector,null,t)).length>0){for(o=!0,l=0;c.length>l;l++){for(d=c[l].rule,g=c[l].path,n=!1,m=0;a.frames.length>m;m++)if(!(d instanceof e)&&d===(a.frames[m].originalRuleset||a.frames[m])){n=!0;break}n||d.matchArgs(u,a)&&(p={mixin:d,group:b(d,g)},p.group!==z&&x.push(p),w=!0)}for(f.reset(),r=[0,0,0],l=0;x.length>l;l++)r[x[l].group]++;if(r[A]>0)q=C;else if(q=B,r[B]+r[C]>1)throw{type:"Runtime",message:"Ambiguous use of `default()` found when matching for `"+this.format(u)+"`",index:this.index,filename:this.currentFileInfo.filename};for(l=0;x.length>l;l++)if(p=x[l].group,p===A||p===q)try{d=x[l].mixin,d instanceof e||(s=d.originalRuleset||d,d=new e("",[],d.rules,null,!1),d.originalRuleset=s),Array.prototype.push.apply(v,d.evalCall(a,u,this.important).rules)}catch(D){throw{message:D.message,index:this.index,filename:this.currentFileInfo.filename,stack:D.stack}}if(w){if(!this.currentFileInfo||!this.currentFileInfo.reference)for(k=0;v.length>k;k++)j=v[k],j.markReferenced&&j.markReferenced();return v}}throw o?{type:"Runtime",message:"No matching definition was found for `"+this.format(u)+"`",index:this.index,filename:this.currentFileInfo.filename}:{type:"Name",message:this.selector.toCSS().trim()+" is undefined",index:this.index,filename:this.currentFileInfo.filename}},g.prototype.format=function(a){return this.selector.toCSS().trim()+"("+(a?a.map(function(a){var b="";return a.name&&(b+=a.name+":"),b+=a.value.toCSS?a.value.toCSS():"???"}).join(", "):"")+")"},b.exports=g},{"../functions/default":19,"./mixin-definition":67,"./node":69,"./selector":76}],67:[function(a,b){var c=a("./selector"),d=a("./element"),e=a("./ruleset"),f=a("./rule"),g=a("./expression"),h=a("../contexts"),i=function(a,b,e,f,g,h){this.name=a,this.selectors=[new c([new d(null,a,this.index,this.currentFileInfo)])],this.params=b,this.condition=f,this.variadic=g,this.arity=b.length,this.rules=e,this._lookups={};var i=[];this.required=b.reduce(function(a,b){return!b.name||b.name&&!b.value?a+1:(i.push(b.name),a)},0),this.optionalParameters=i,this.frames=h};i.prototype=new e,i.prototype.type="MixinDefinition",i.prototype.evalFirst=!0,i.prototype.accept=function(a){this.params&&this.params.length&&(this.params=a.visitArray(this.params)),this.rules=a.visitArray(this.rules),this.condition&&(this.condition=a.visit(this.condition))},i.prototype.evalParams=function(a,b,c,d){var i,j,k,l,m,n,o,p,q=new e(null,null),r=this.params.slice(0),s=0;if(b.frames&&b.frames[0]&&b.frames[0].functionRegistry&&(q.functionRegistry=b.frames[0].functionRegistry.inherit()),b=new h.Eval(b,[q].concat(b.frames)),c)for(c=c.slice(0),s=c.length,k=0;s>k;k++)if(j=c[k],n=j&&j.name){for(o=!1,l=0;r.length>l;l++)if(!d[l]&&n===r[l].name){d[l]=j.value.eval(a),q.prependRule(new f(n,j.value.eval(a))),o=!0;break}if(o){c.splice(k,1),k--;continue}throw{type:"Runtime",message:"Named argument for "+this.name+" "+c[k].name+" not found"}}for(p=0,k=0;r.length>k;k++)if(!d[k]){if(j=c&&c[p],n=r[k].name)if(r[k].variadic){for(i=[],l=p;s>l;l++)i.push(c[l].value.eval(a));q.prependRule(new f(n,new g(i).eval(a)))}else{if(m=j&&j.value)m=m.eval(a);else{if(!r[k].value)throw{type:"Runtime",message:"wrong number of arguments for "+this.name+" ("+s+" for "+this.arity+")"};m=r[k].value.eval(b),q.resetCache()}q.prependRule(new f(n,m)),d[k]=m}if(r[k].variadic&&c)for(l=p;s>l;l++)d[l]=c[l].value.eval(a);p++}return q},i.prototype.makeImportant=function(){var a=this.rules?this.rules.map(function(a){return a.makeImportant?a.makeImportant(!0):a}):this.rules,b=new i(this.name,this.params,a,this.condition,this.variadic,this.frames); + +return b},i.prototype.eval=function(a){return new i(this.name,this.params,this.rules,this.condition,this.variadic,this.frames||a.frames.slice(0))},i.prototype.evalCall=function(a,b,c){var d,i,j=[],k=this.frames?this.frames.concat(a.frames):a.frames,l=this.evalParams(a,new h.Eval(a,k),b,j);return l.prependRule(new f("@arguments",new g(j).eval(a))),d=this.rules.slice(0),i=new e(null,d),i.originalRuleset=this,i=i.eval(new h.Eval(a,[this,l].concat(k))),c&&(i=i.makeImportant()),i},i.prototype.matchCondition=function(a,b){return this.condition&&!this.condition.eval(new h.Eval(b,[this.evalParams(b,new h.Eval(b,this.frames?this.frames.concat(b.frames):b.frames),a,[])].concat(this.frames||[]).concat(b.frames)))?!1:!0},i.prototype.matchArgs=function(a,b){var c,d=a&&a.length||0,e=this.optionalParameters,f=a?a.reduce(function(a,b){return e.indexOf(b.name)<0?a+1:a},0):0;if(this.variadic){if(this.required-1>f)return!1}else{if(this.required>f)return!1;if(d>this.params.length)return!1}c=Math.min(f,this.arity);for(var g=0;c>g;g++)if(!this.params[g].name&&!this.params[g].variadic&&a[g].value.eval(b).toCSS()!=this.params[g].value.eval(b).toCSS())return!1;return!0},b.exports=i},{"../contexts":10,"./element":57,"./expression":58,"./rule":73,"./ruleset":75,"./selector":76}],68:[function(a,b){var c=a("./node"),d=a("./operation"),e=a("./dimension"),f=function(a){this.value=a};f.prototype=new c,f.prototype.type="Negative",f.prototype.genCSS=function(a,b){b.add("-"),this.value.genCSS(a,b)},f.prototype.eval=function(a){return a.isMathOn()?new d("*",[new e(-1),this.value]).eval(a):new f(this.value.eval(a))},b.exports=f},{"./dimension":55,"./node":69,"./operation":70}],69:[function(a,b){var c=function(){};c.prototype.toCSS=function(a){var b=[];return this.genCSS(a,{add:function(a){b.push(a)},isEmpty:function(){return 0===b.length}}),b.join("")},c.prototype.genCSS=function(a,b){b.add(this.value)},c.prototype.accept=function(a){this.value=a.visit(this.value)},c.prototype.eval=function(){return this},c.prototype._operate=function(a,b,c,d){switch(b){case"+":return c+d;case"-":return c-d;case"*":return c*d;case"/":return c/d}},c.prototype.fround=function(a,b){var c=a&&a.numPrecision;return null==c?b:Number((b+2e-16).toFixed(c))},c.compare=function(a,b){if(a.compare&&"Quoted"!==b.type&&"Anonymous"!==b.type)return a.compare(b);if(b.compare)return-b.compare(a);if(a.type!==b.type)return void 0;if(a=a.value,b=b.value,!Array.isArray(a))return a===b?0:void 0;if(a.length!==b.length)return void 0;for(var d=0;a.length>d;d++)if(0!==c.compare(a[d],b[d]))return void 0;return 0},c.numericCompare=function(a,b){return b>a?-1:a===b?0:a>b?1:void 0},b.exports=c},{}],70:[function(a,b){var c=a("./node"),d=a("./color"),e=a("./dimension"),f=function(a,b,c){this.op=a.trim(),this.operands=b,this.isSpaced=c};f.prototype=new c,f.prototype.type="Operation",f.prototype.accept=function(a){this.operands=a.visit(this.operands)},f.prototype.eval=function(a){var b=this.operands[0].eval(a),c=this.operands[1].eval(a);if(a.isMathOn()){if(b instanceof e&&c instanceof d&&(b=b.toColor()),c instanceof e&&b instanceof d&&(c=c.toColor()),!b.operate)throw{type:"Operation",message:"Operation on an invalid type"};return b.operate(a,this.op,c)}return new f(this.op,[b,c],this.isSpaced)},f.prototype.genCSS=function(a,b){this.operands[0].genCSS(a,b),this.isSpaced&&b.add(" "),b.add(this.op),this.isSpaced&&b.add(" "),this.operands[1].genCSS(a,b)},b.exports=f},{"./color":49,"./dimension":55,"./node":69}],71:[function(a,b){var c=a("./node"),d=function(a){this.value=a};d.prototype=new c,d.prototype.type="Paren",d.prototype.genCSS=function(a,b){b.add("("),this.value.genCSS(a,b),b.add(")")},d.prototype.eval=function(a){return new d(this.value.eval(a))},b.exports=d},{"./node":69}],72:[function(a,b){var c=a("./node"),d=a("./js-eval-node"),e=a("./variable"),f=function(a,b,c,d,e){this.escaped=null==c?!0:c,this.value=b||"",this.quote=a.charAt(0),this.index=d,this.currentFileInfo=e};f.prototype=new d,f.prototype.type="Quoted",f.prototype.genCSS=function(a,b){this.escaped||b.add(this.quote,this.currentFileInfo,this.index),b.add(this.value),this.escaped||b.add(this.quote)},f.prototype.containsVariables=function(){return this.value.match(/(`([^`]+)`)|@\{([\w-]+)\}/)},f.prototype.eval=function(a){function b(a,b,c){var d=a;do a=d,d=a.replace(b,c);while(a!==d);return d}var c=this,d=this.value,g=function(b,d){return String(c.evaluateJavaScript(d,a))},h=function(b,d){var g=new e("@"+d,c.index,c.currentFileInfo).eval(a,!0);return g instanceof f?g.value:g.toCSS()};return d=b(d,/`([^`]+)`/g,g),d=b(d,/@\{([\w-]+)\}/g,h),new f(this.quote+d+this.quote,d,this.escaped,this.index,this.currentFileInfo)},f.prototype.compare=function(a){return"Quoted"!==a.type||this.escaped||a.escaped?a.toCSS&&this.toCSS()===a.toCSS()?0:void 0:c.numericCompare(this.value,a.value)},b.exports=f},{"./js-eval-node":63,"./node":69,"./variable":81}],73:[function(a,b){function c(a,b){var c,d="",e=b.length,f={add:function(a){d+=a}};for(c=0;e>c;c++)b[c].eval(a).genCSS(a,f);return d}var d=a("./node"),e=a("./value"),f=a("./keyword"),g=function(a,b,c,f,g,h,i,j){this.name=a,this.value=b instanceof d?b:new e([b]),this.important=c?" "+c.trim():"",this.merge=f,this.index=g,this.currentFileInfo=h,this.inline=i||!1,this.variable=void 0!==j?j:a.charAt&&"@"===a.charAt(0)};g.prototype=new d,g.prototype.type="Rule",g.prototype.genCSS=function(a,b){b.add(this.name+(a.compress?":":": "),this.currentFileInfo,this.index);try{this.value.genCSS(a,b)}catch(c){throw c.index=this.index,c.filename=this.currentFileInfo.filename,c}b.add(this.important+(this.inline||a.lastRule&&a.compress?"":";"),this.currentFileInfo,this.index)},g.prototype.eval=function(a){var b,d=!1,e=this.name,h=this.variable;"string"!=typeof e&&(e=1===e.length&&e[0]instanceof f?e[0].value:c(a,e),h=!1),"font"!==e||a.strictMath||(d=!0,a.strictMath=!0);try{if(a.importantScope.push({}),b=this.value.eval(a),!this.variable&&"DetachedRuleset"===b.type)throw{message:"Rulesets cannot be evaluated on a property.",index:this.index,filename:this.currentFileInfo.filename};var i=this.important,j=a.importantScope.pop();return!i&&j.important&&(i=j.important),new g(e,b,i,this.merge,this.index,this.currentFileInfo,this.inline,h)}catch(k){throw"number"!=typeof k.index&&(k.index=this.index,k.filename=this.currentFileInfo.filename),k}finally{d&&(a.strictMath=!1)}},g.prototype.makeImportant=function(){return new g(this.name,this.value,"!important",this.merge,this.index,this.currentFileInfo,this.inline)};var h=function(a){Array.isArray(a)?a.forEach(function(a){h(a)}):a.markReferenced&&a.markReferenced()};g.prototype.markReferenced=function(){this.value&&h(this.value)},b.exports=g},{"./keyword":64,"./node":69,"./value":80}],74:[function(a,b){var c=a("./node"),d=a("./variable"),e=function(a){this.variable=a};e.prototype=new c,e.prototype.type="RulesetCall",e.prototype.eval=function(a){var b=new d(this.variable).eval(a);return b.callEval(a)},b.exports=e},{"./node":69,"./variable":81}],75:[function(a,b){var c=a("./node"),d=a("./rule"),e=a("./selector"),f=a("./element"),g=a("./paren"),h=a("../contexts"),i=a("../functions/function-registry"),j=a("../functions/default"),k=a("./debug-info"),l=function(a,b,c){this.selectors=a,this.rules=b,this._lookups={},this.strictImports=c};l.prototype=new c,l.prototype.type="Ruleset",l.prototype.isRuleset=!0,l.prototype.isRulesetLike=!0,l.prototype.accept=function(a){this.paths?a.visitArray(this.paths,!0):this.selectors&&(this.selectors=a.visitArray(this.selectors)),this.rules&&this.rules.length&&(this.rules=a.visitArray(this.rules))},l.prototype.eval=function(a){var b,c,e,f,g=this.selectors,h=!1;if(g&&(c=g.length)){for(b=[],j.error({type:"Syntax",message:"it is currently only allowed in parametric mixin guards,"}),f=0;c>f;f++)e=g[f].eval(a),b.push(e),e.evaldCondition&&(h=!0);j.reset()}else h=!0;var k,m,n=this.rules?this.rules.slice(0):null,o=new l(b,n,this.strictImports);o.originalRuleset=this,o.root=this.root,o.firstRoot=this.firstRoot,o.allowImports=this.allowImports,this.debugInfo&&(o.debugInfo=this.debugInfo),h||(n.length=0),o.functionRegistry=function(a){for(var b,c=0,d=a.length;c!==d;++c)if(b=a[c].functionRegistry)return b;return i}(a.frames).inherit();var p=a.frames;p.unshift(o);var q=a.selectors;q||(a.selectors=q=[]),q.unshift(this.selectors),(o.root||o.allowImports||!o.strictImports)&&o.evalImports(a);var r=o.rules,s=r?r.length:0;for(f=0;s>f;f++)r[f].evalFirst&&(r[f]=r[f].eval(a));var t=a.mediaBlocks&&a.mediaBlocks.length||0;for(f=0;s>f;f++)"MixinCall"===r[f].type?(n=r[f].eval(a).filter(function(a){return a instanceof d&&a.variable?!o.variable(a.name):!0}),r.splice.apply(r,[f,1].concat(n)),s+=n.length-1,f+=n.length-1,o.resetCache()):"RulesetCall"===r[f].type&&(n=r[f].eval(a).rules.filter(function(a){return a instanceof d&&a.variable?!1:!0}),r.splice.apply(r,[f,1].concat(n)),s+=n.length-1,f+=n.length-1,o.resetCache());for(f=0;r.length>f;f++)k=r[f],k.evalFirst||(r[f]=k=k.eval?k.eval(a):k);for(f=0;r.length>f;f++)if(k=r[f],k instanceof l&&k.selectors&&1===k.selectors.length&&k.selectors[0].isJustParentSelector()){r.splice(f--,1);for(var u=0;k.rules.length>u;u++)m=k.rules[u],m instanceof d&&m.variable||r.splice(++f,0,m)}if(p.shift(),q.shift(),a.mediaBlocks)for(f=t;a.mediaBlocks.length>f;f++)a.mediaBlocks[f].bubbleSelectors(b);return o},l.prototype.evalImports=function(a){var b,c,d=this.rules;if(d)for(b=0;d.length>b;b++)"Import"===d[b].type&&(c=d[b].eval(a),c&&c.length?(d.splice.apply(d,[b,1].concat(c)),b+=c.length-1):d.splice(b,1,c),this.resetCache())},l.prototype.makeImportant=function(){var a=new l(this.selectors,this.rules.map(function(a){return a.makeImportant?a.makeImportant():a}),this.strictImports);return a},l.prototype.matchArgs=function(a){return!a||0===a.length},l.prototype.matchCondition=function(a,b){var c=this.selectors[this.selectors.length-1];return c.evaldCondition?c.condition&&!c.condition.eval(new h.Eval(b,b.frames))?!1:!0:!1},l.prototype.resetCache=function(){this._rulesets=null,this._variables=null,this._lookups={}},l.prototype.variables=function(){return this._variables||(this._variables=this.rules?this.rules.reduce(function(a,b){if(b instanceof d&&b.variable===!0&&(a[b.name]=b),"Import"===b.type&&b.root&&b.root.variables){var c=b.root.variables();for(var e in c)c.hasOwnProperty(e)&&(a[e]=c[e])}return a},{}):{}),this._variables},l.prototype.variable=function(a){return this.variables()[a]},l.prototype.rulesets=function(){if(!this.rules)return[];var a,b,c=[],d=this.rules,e=d.length;for(a=0;e>a;a++)b=d[a],b.isRuleset&&c.push(b);return c},l.prototype.prependRule=function(a){var b=this.rules;b?b.unshift(a):this.rules=[a]},l.prototype.find=function(a,b,c){b=b||this;var d,f,g=[],h=a.toCSS();return h in this._lookups?this._lookups[h]:(this.rulesets().forEach(function(h){if(h!==b)for(var i=0;h.selectors.length>i;i++)if(d=a.match(h.selectors[i])){if(a.elements.length>d){if(!c||c(h)){f=h.find(new e(a.elements.slice(d)),b,c);for(var j=0;f.length>j;++j)f[j].path.push(h);Array.prototype.push.apply(g,f)}}else g.push({rule:h,path:[]});break}}),this._lookups[h]=g,g)},l.prototype.genCSS=function(a,b){function c(a){return"boolean"==typeof a.isRulesetLike?a.isRulesetLike:"function"==typeof a.isRulesetLike?a.isRulesetLike():!1}var d,e,f,g,h,i=[],j=[];a.tabLevel=a.tabLevel||0,this.root||a.tabLevel++;var l,m=a.compress?"":Array(a.tabLevel+1).join(" "),n=a.compress?"":Array(a.tabLevel).join(" "),o=0,p=0;for(d=0;this.rules.length>d;d++)g=this.rules[d],"Comment"===g.type?(p===d&&p++,j.push(g)):g.isCharset&&g.isCharset()?(j.splice(o,0,g),o++,p++):"Import"===g.type?(j.splice(p,0,g),p++):j.push(g);if(j=i.concat(j),!this.root){f=k(a,this,n),f&&(b.add(f),b.add(n));var q,r=this.paths,s=r.length;for(l=a.compress?",":",\n"+n,d=0;s>d;d++)if(h=r[d],q=h.length)for(d>0&&b.add(l),a.firstSelector=!0,h[0].genCSS(a,b),a.firstSelector=!1,e=1;q>e;e++)h[e].genCSS(a,b);b.add((a.compress?"{":" {\n")+m)}for(d=0;j.length>d;d++){g=j[d],d+1===j.length&&(a.lastRule=!0);var t=a.lastRule;c(g)&&(a.lastRule=!1),g.genCSS?g.genCSS(a,b):g.value&&b.add(g.value.toString()),a.lastRule=t,a.lastRule?a.lastRule=!1:b.add(a.compress?"":"\n"+m)}this.root||(b.add(a.compress?"}":"\n"+n+"}"),a.tabLevel--),b.isEmpty()||a.compress||!this.firstRoot||b.add("\n")},l.prototype.markReferenced=function(){var a;if(this.selectors)for(a=0;this.selectors.length>a;a++)this.selectors[a].markReferenced();if(this.rules)for(a=0;this.rules.length>a;a++)this.rules[a].markReferenced&&this.rules[a].markReferenced()},l.prototype.getIsReferenced=function(){var a,b,c,d;if(this.paths)for(a=0;this.paths.length>a;a++)for(c=this.paths[a],b=0;c.length>b;b++)if(c[b].getIsReferenced&&c[b].getIsReferenced())return!0;if(this.selectors)for(a=0;this.selectors.length>a;a++)if(d=this.selectors[a],d.getIsReferenced&&d.getIsReferenced())return!0;return!1},l.prototype.joinSelectors=function(a,b,c){for(var d=0;c.length>d;d++)this.joinSelector(a,b,c[d])},l.prototype.joinSelector=function(a,b,c){function d(a,b){var c,d;if(0===a.length)c=new g(a[0]);else{var h=[];for(d=0;a.length>d;d++)h.push(new f(null,a[d],b.index,b.currentFileInfo));c=new g(new e(h))}return c}function h(a,b){var c,d;return c=new f(null,a,b.index,b.currentFileInfo),d=new e([c])}function i(a,b,c){function e(a){var b;return"Paren"!==a.value.type?null:(b=a.value.value,"Selector"!==b.type?null:b)}var g,m,n,o,p,q,r,s,t,u,v=!1;for(o=[],p=[[]],g=0;c.elements.length>g;g++)if(s=c.elements[g],"&"!==s.value){var w=e(s);if(null!=w){l(o,p);var x,y=[],z=[];for(x=i(y,b,w),v=v||x,n=0;y.length>n;n++){var A=h(d(y[n],s),s);k(p,[A],s,c,z)}p=z,o=[]}else o.push(s)}else{for(v=!0,q=[],l(o,p),m=0;p.length>m;m++)if(r=p[m],0===b.length)r.length>0&&r[0].elements.push(new f(s.combinator,"",s.index,s.currentFileInfo)),q.push(r);else for(n=0;b.length>n;n++){var B=j(r,b[n],s,c);q.push(B)}p=q,o=[]}for(l(o,p),g=0;p.length>g;g++)t=p[g].length,t>0&&(a.push(p[g]),u=p[g][t-1],p[g][t-1]=u.createDerived(u.elements,c.extendList));return v}function j(a,b,c,d){var e,g,h;if(e=[],a.length>0?(e=a.slice(0),g=e.pop(),h=d.createDerived(g.elements.slice(0))):h=d.createDerived([]),b.length>0){var i=c.combinator,j=b[0].elements[0];i.emptyOrWhitespace&&!j.combinator.emptyOrWhitespace&&(i=j.combinator),h.elements.push(new f(i,j.value,c.index,c.currentFileInfo)),h.elements=h.elements.concat(b[0].elements.slice(1))}return 0!==h.elements.length&&e.push(h),b.length>1&&(e=e.concat(b.slice(1))),e}function k(a,b,c,d,e){var f;for(f=0;a.length>f;f++){var g=j(a[f],b,c,d);e.push(g)}return e}function l(a,b){var c,d;if(0!==a.length){if(0===b.length)return void b.push([new e(a)]);for(c=0;b.length>c;c++)d=b[c],d.length>0?d[d.length-1]=d[d.length-1].createDerived(d[d.length-1].elements.concat(a)):d.push(new e(a))}}var m,n,o;if(n=[],o=i(n,b,c),!o)if(b.length>0)for(n=[],m=0;b.length>m;m++)n.push(b[m].concat(c));else n=[[c]];for(m=0;n.length>m;m++)a.push(n[m])},b.exports=l},{"../contexts":10,"../functions/default":19,"../functions/function-registry":21,"./debug-info":53,"./element":57,"./node":69,"./paren":71,"./rule":73,"./selector":76}],76:[function(a,b){var c=a("./node"),d=a("./element"),e=function(a,b,c,d,e,f){this.elements=a,this.extendList=b,this.condition=c,this.currentFileInfo=e||{},this.isReferenced=f,c||(this.evaldCondition=!0)};e.prototype=new c,e.prototype.type="Selector",e.prototype.accept=function(a){this.elements&&(this.elements=a.visitArray(this.elements)),this.extendList&&(this.extendList=a.visitArray(this.extendList)),this.condition&&(this.condition=a.visit(this.condition))},e.prototype.createDerived=function(a,b,c){c=null!=c?c:this.evaldCondition;var d=new e(a,b||this.extendList,null,this.index,this.currentFileInfo,this.isReferenced);return d.evaldCondition=c,d.mediaEmpty=this.mediaEmpty,d},e.prototype.createEmptySelectors=function(){var a=new d("","&",this.index,this.currentFileInfo),b=[new e([a],null,null,this.index,this.currentFileInfo)];return b[0].mediaEmpty=!0,b},e.prototype.match=function(a){var b,c,d=this.elements,e=d.length;if(a.CacheElements(),b=a._elements.length,0===b||b>e)return 0;for(c=0;b>c;c++)if(d[c].value!==a._elements[c])return 0;return b},e.prototype.CacheElements=function(){if(!this._elements){var a=this.elements.map(function(a){return a.combinator.value+(a.value.value||a.value)}).join("").match(/[,&#\*\.\w-]([\w-]|(\\.))*/g);a?"&"===a[0]&&a.shift():a=[],this._elements=a}},e.prototype.isJustParentSelector=function(){return!this.mediaEmpty&&1===this.elements.length&&"&"===this.elements[0].value&&(" "===this.elements[0].combinator.value||""===this.elements[0].combinator.value)},e.prototype.eval=function(a){var b=this.condition&&this.condition.eval(a),c=this.elements,d=this.extendList;return c=c&&c.map(function(b){return b.eval(a)}),d=d&&d.map(function(b){return b.eval(a)}),this.createDerived(c,d,b)},e.prototype.genCSS=function(a,b){var c,d;if(a&&a.firstSelector||""!==this.elements[0].combinator.value||b.add(" ",this.currentFileInfo,this.index),!this._css)for(c=0;this.elements.length>c;c++)d=this.elements[c],d.genCSS(a,b)},e.prototype.markReferenced=function(){this.isReferenced=!0},e.prototype.getIsReferenced=function(){return!this.currentFileInfo.reference||this.isReferenced},e.prototype.getIsOutput=function(){return this.evaldCondition},b.exports=e},{"./element":57,"./node":69}],77:[function(a,b){var c=a("./node"),d=function(a){this.value=a};d.prototype=new c,d.prototype.type="UnicodeDescriptor",b.exports=d},{"./node":69}],78:[function(a,b){var c=a("./node"),d=a("../data/unit-conversions"),e=function(a,b,c){this.numerator=a?a.slice(0).sort():[],this.denominator=b?b.slice(0).sort():[],c?this.backupUnit=c:a&&a.length&&(this.backupUnit=a[0])};e.prototype=new c,e.prototype.type="Unit",e.prototype.clone=function(){return new e(this.numerator.slice(0),this.denominator.slice(0),this.backupUnit)},e.prototype.genCSS=function(a,b){var c=a&&a.strictUnits;1===this.numerator.length?b.add(this.numerator[0]):!c&&this.backupUnit?b.add(this.backupUnit):!c&&this.denominator.length&&b.add(this.denominator[0])},e.prototype.toString=function(){var a,b=this.numerator.join("*");for(a=0;this.denominator.length>a;a++)b+="/"+this.denominator[a];return b},e.prototype.compare=function(a){return this.is(a.toString())?0:void 0},e.prototype.is=function(a){return this.toString().toUpperCase()===a.toUpperCase()},e.prototype.isLength=function(){return Boolean(this.toCSS().match(/px|em|%|in|cm|mm|pc|pt|ex/))},e.prototype.isEmpty=function(){return 0===this.numerator.length&&0===this.denominator.length},e.prototype.isSingular=function(){return 1>=this.numerator.length&&0===this.denominator.length},e.prototype.map=function(a){var b;for(b=0;this.numerator.length>b;b++)this.numerator[b]=a(this.numerator[b],!1);for(b=0;this.denominator.length>b;b++)this.denominator[b]=a(this.denominator[b],!0)},e.prototype.usedUnits=function(){var a,b,c={};b=function(b){return a.hasOwnProperty(b)&&!c[e]&&(c[e]=b),b};for(var e in d)d.hasOwnProperty(e)&&(a=d[e],this.map(b));return c},e.prototype.cancel=function(){var a,b,c={};for(b=0;this.numerator.length>b;b++)a=this.numerator[b],c[a]=(c[a]||0)+1;for(b=0;this.denominator.length>b;b++)a=this.denominator[b],c[a]=(c[a]||0)-1;this.numerator=[],this.denominator=[];for(a in c)if(c.hasOwnProperty(a)){var d=c[a];if(d>0)for(b=0;d>b;b++)this.numerator.push(a);else if(0>d)for(b=0;-d>b;b++)this.denominator.push(a)}this.numerator.sort(),this.denominator.sort()},b.exports=e},{"../data/unit-conversions":13,"./node":69}],79:[function(a,b){var c=a("./node"),d=function(a,b,c,d){this.value=a,this.currentFileInfo=c,this.index=b,this.isEvald=d};d.prototype=new c,d.prototype.type="Url",d.prototype.accept=function(a){this.value=a.visit(this.value)},d.prototype.genCSS=function(a,b){b.add("url("),this.value.genCSS(a,b),b.add(")")},d.prototype.eval=function(a){var b,c=this.value.eval(a);if(!this.isEvald&&(b=this.currentFileInfo&&this.currentFileInfo.rootpath,b&&"string"==typeof c.value&&a.isPathRelative(c.value)&&(c.quote||(b=b.replace(/[\(\)'"\s]/g,function(a){return"\\"+a})),c.value=b+c.value),c.value=a.normalizePath(c.value),a.urlArgs&&!c.value.match(/^\s*data:/))){var e=-1===c.value.indexOf("?")?"?":"&",f=e+a.urlArgs;-1!==c.value.indexOf("#")?c.value=c.value.replace("#",f+"#"):c.value+=f}return new d(c,this.index,this.currentFileInfo,!0)},b.exports=d},{"./node":69}],80:[function(a,b){var c=a("./node"),d=function(a){if(this.value=a,!a)throw new Error("Value requires an array argument")};d.prototype=new c,d.prototype.type="Value",d.prototype.accept=function(a){this.value&&(this.value=a.visitArray(this.value))},d.prototype.eval=function(a){return 1===this.value.length?this.value[0].eval(a):new d(this.value.map(function(b){return b.eval(a)}))},d.prototype.genCSS=function(a,b){var c;for(c=0;this.value.length>c;c++)this.value[c].genCSS(a,b),this.value.length>c+1&&b.add(a&&a.compress?",":", ")},b.exports=d},{"./node":69}],81:[function(a,b){var c=a("./node"),d=function(a,b,c){this.name=a,this.index=b,this.currentFileInfo=c||{}};d.prototype=new c,d.prototype.type="Variable",d.prototype.eval=function(a){var b,c=this.name;if(0===c.indexOf("@@")&&(c="@"+new d(c.slice(1),this.index,this.currentFileInfo).eval(a).value),this.evaluating)throw{type:"Name",message:"Recursive variable definition for "+c,filename:this.currentFileInfo.filename,index:this.index};if(this.evaluating=!0,b=this.find(a.frames,function(b){var d=b.variable(c);if(d){if(d.important){var e=a.importantScope[a.importantScope.length-1];e.important=d.important}return d.value.eval(a)}}))return this.evaluating=!1,b;throw{type:"Name",message:"variable "+c+" is undefined",filename:this.currentFileInfo.filename,index:this.index}},d.prototype.find=function(a,b){for(var c,d=0;a.length>d;d++)if(c=b.call(a,a[d]))return c;return null},b.exports=d},{"./node":69}],82:[function(a,b){b.exports={getLocation:function(a,b){for(var c=a+1,d=null,e=-1;--c>=0&&"\n"!==b.charAt(c);)e++;return"number"==typeof a&&(d=(b.slice(0,a).match(/\n/g)||"").length),{line:d,column:e}}}},{}],83:[function(a,b){var c=a("../tree"),d=a("./visitor"),e=a("../logger"),f=function(){this._visitor=new d(this),this.contexts=[],this.allExtendsStack=[[]]};f.prototype={run:function(a){return a=this._visitor.visit(a),a.allExtends=this.allExtendsStack[0],a},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){if(!a.root){var b,d,e,f,g=[],h=a.rules,i=h?h.length:0;for(b=0;i>b;b++)a.rules[b]instanceof c.Extend&&(g.push(h[b]),a.extendOnEveryPath=!0);var j=a.paths;for(b=0;j.length>b;b++){var k=j[b],l=k[k.length-1],m=l.extendList;for(f=m?m.slice(0).concat(g):g,f&&(f=f.map(function(a){return a.clone()})),d=0;f.length>d;d++)this.foundExtends=!0,e=f[d],e.findSelfSelectors(k),e.ruleset=a,0===d&&(e.firstExtendOnThisSelectorPath=!0),this.allExtendsStack[this.allExtendsStack.length-1].push(e)}this.contexts.push(a.selectors)}},visitRulesetOut:function(a){a.root||(this.contexts.length=this.contexts.length-1)},visitMedia:function(a){a.allExtends=[],this.allExtendsStack.push(a.allExtends)},visitMediaOut:function(){this.allExtendsStack.length=this.allExtendsStack.length-1},visitDirective:function(a){a.allExtends=[],this.allExtendsStack.push(a.allExtends)},visitDirectiveOut:function(){this.allExtendsStack.length=this.allExtendsStack.length-1}};var g=function(){this._visitor=new d(this)};g.prototype={run:function(a){var b=new f;if(this.extendIndicies={},b.run(a),!b.foundExtends)return a;a.allExtends=a.allExtends.concat(this.doExtendChaining(a.allExtends,a.allExtends)),this.allExtendsStack=[a.allExtends];var c=this._visitor.visit(a);return this.checkExtendsForNonMatched(a.allExtends),c},checkExtendsForNonMatched:function(a){var b=this.extendIndicies;a.filter(function(a){return!a.hasFoundMatches&&1==a.parent_ids.length}).forEach(function(a){var c="_unknown_";try{c=a.selector.toCSS({})}catch(d){}b[a.index+" "+c]||(b[a.index+" "+c]=!0,e.warn("extend '"+c+"' has no matches"))})},doExtendChaining:function(a,b,d){var e,f,g,h,i,j,k,l,m=[],n=this;for(d=d||0,e=0;a.length>e;e++)for(f=0;b.length>f;f++)j=a[e],k=b[f],j.parent_ids.indexOf(k.object_id)>=0||(i=[k.selfSelectors[0]],g=n.findMatch(j,i),g.length&&(j.hasFoundMatches=!0,j.selfSelectors.forEach(function(a){h=n.extendSelector(g,i,a),l=new c.Extend(k.selector,k.option,0),l.selfSelectors=h,h[h.length-1].extendList=[l],m.push(l),l.ruleset=k.ruleset,l.parent_ids=l.parent_ids.concat(k.parent_ids,j.parent_ids),k.firstExtendOnThisSelectorPath&&(l.firstExtendOnThisSelectorPath=!0,k.ruleset.paths.push(h))})));if(m.length){if(this.extendChainCount++,d>100){var o="{unable to calculate}",p="{unable to calculate}";try{o=m[0].selfSelectors[0].toCSS(),p=m[0].selector.toCSS()}catch(q){}throw{message:"extend circular reference detected. One of the circular extends is currently:"+o+":extend("+p+")"}}return m.concat(n.doExtendChaining(m,b,d+1))}return m},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitSelector:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){if(!a.root){var b,c,d,e,f=this.allExtendsStack[this.allExtendsStack.length-1],g=[],h=this;for(d=0;f.length>d;d++)for(c=0;a.paths.length>c;c++)if(e=a.paths[c],!a.extendOnEveryPath){var i=e[e.length-1].extendList;i&&i.length||(b=this.findMatch(f[d],e),b.length&&(f[d].hasFoundMatches=!0,f[d].selfSelectors.forEach(function(a){g.push(h.extendSelector(b,e,a))})))}a.paths=a.paths.concat(g)}},findMatch:function(a,b){var c,d,e,f,g,h,i,j=this,k=a.selector.elements,l=[],m=[];for(c=0;b.length>c;c++)for(d=b[c],e=0;d.elements.length>e;e++)for(f=d.elements[e],(a.allowBefore||0===c&&0===e)&&l.push({pathIndex:c,index:e,matched:0,initialCombinator:f.combinator}),h=0;l.length>h;h++)i=l[h],g=f.combinator.value,""===g&&0===e&&(g=" "),!j.isElementValuesEqual(k[i.matched].value,f.value)||i.matched>0&&k[i.matched].combinator.value!==g?i=null:i.matched++,i&&(i.finished=i.matched===k.length,i.finished&&!a.allowAfter&&(d.elements.length>e+1||b.length>c+1)&&(i=null)),i?i.finished&&(i.length=k.length,i.endPathIndex=c,i.endPathElementIndex=e+1,l.length=0,m.push(i)):(l.splice(h,1),h--);return m},isElementValuesEqual:function(a,b){if("string"==typeof a||"string"==typeof b)return a===b;if(a instanceof c.Attribute)return a.op!==b.op||a.key!==b.key?!1:a.value&&b.value?(a=a.value.value||a.value,b=b.value.value||b.value,a===b):a.value||b.value?!1:!0;if(a=a.value,b=b.value,a instanceof c.Selector){if(!(b instanceof c.Selector)||a.elements.length!==b.elements.length)return!1;for(var d=0;a.elements.length>d;d++){if(a.elements[d].combinator.value!==b.elements[d].combinator.value&&(0!==d||(a.elements[d].combinator.value||" ")!==(b.elements[d].combinator.value||" ")))return!1;if(!this.isElementValuesEqual(a.elements[d].value,b.elements[d].value))return!1}return!0}return!1},extendSelector:function(a,b,d){var e,f,g,h,i,j=0,k=0,l=[];for(e=0;a.length>e;e++)h=a[e],f=b[h.pathIndex],g=new c.Element(h.initialCombinator,d.elements[0].value,d.elements[0].index,d.elements[0].currentFileInfo),h.pathIndex>j&&k>0&&(l[l.length-1].elements=l[l.length-1].elements.concat(b[j].elements.slice(k)),k=0,j++),i=f.elements.slice(k,h.index).concat([g]).concat(d.elements.slice(1)),j===h.pathIndex&&e>0?l[l.length-1].elements=l[l.length-1].elements.concat(i):(l=l.concat(b.slice(j,h.pathIndex)),l.push(new c.Selector(i))),j=h.endPathIndex,k=h.endPathElementIndex,k>=b[j].elements.length&&(k=0,j++);return b.length>j&&k>0&&(l[l.length-1].elements=l[l.length-1].elements.concat(b[j].elements.slice(k)),j++),l=l.concat(b.slice(j,b.length))},visitRulesetOut:function(){},visitMedia:function(a){var b=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);b=b.concat(this.doExtendChaining(b,a.allExtends)),this.allExtendsStack.push(b)},visitMediaOut:function(){var a=this.allExtendsStack.length-1;this.allExtendsStack.length=a},visitDirective:function(a){var b=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);b=b.concat(this.doExtendChaining(b,a.allExtends)),this.allExtendsStack.push(b)},visitDirectiveOut:function(){var a=this.allExtendsStack.length-1;this.allExtendsStack.length=a}},b.exports=g},{"../logger":32,"../tree":61,"./visitor":89}],84:[function(a,b){function c(a){this.imports=[],this.variableImports=[],this._onSequencerEmpty=a,this._currentDepth=0}c.prototype.addImport=function(a){var b=this,c={callback:a,args:null,isReady:!1};return this.imports.push(c),function(){c.args=Array.prototype.slice.call(arguments,0),c.isReady=!0,b.tryRun()}},c.prototype.addVariableImport=function(a){this.variableImports.push(a)},c.prototype.tryRun=function(){this._currentDepth++;try{for(;;){for(;this.imports.length>0;){var a=this.imports[0];if(!a.isReady)return;this.imports=this.imports.slice(1),a.callback.apply(null,a.args)}if(0===this.variableImports.length)break;var b=this.variableImports[0];this.variableImports=this.variableImports.slice(1),b()}}finally{this._currentDepth--}0===this._currentDepth&&this._onSequencerEmpty&&this._onSequencerEmpty()},b.exports=c},{}],85:[function(a,b){var c=a("../contexts"),d=a("./visitor"),e=a("./import-sequencer"),f=function(a,b){this._visitor=new d(this),this._importer=a,this._finish=b,this.context=new c.Eval,this.importCount=0,this.onceFileDetectionMap={},this.recursionDetector={},this._sequencer=new e(this._onSequencerEmpty.bind(this))};f.prototype={isReplacing:!1,run:function(a){try{this._visitor.visit(a)}catch(b){this.error=b}this.isFinished=!0,this._sequencer.tryRun()},_onSequencerEmpty:function(){this.isFinished&&this._finish(this.error)},visitImport:function(a,b){var d=a.options.inline;if(!a.css||d){var e=new c.Eval(this.context,this.context.frames.slice(0)),f=e.frames[0];this.importCount++,a.isVariableImport()?this._sequencer.addVariableImport(this.processImportNode.bind(this,a,e,f)):this.processImportNode(a,e,f)}b.visitDeeper=!1},processImportNode:function(a,b,c){var d,e=a.options.inline;try{d=a.evalForImport(b)}catch(f){f.filename||(f.index=a.index,f.filename=a.currentFileInfo.filename),a.css=!0,a.error=f}if(!d||d.css&&!e)this.importCount--,this.isFinished&&this._sequencer.tryRun();else{d.options.multiple&&(b.importMultiple=!0);for(var g=void 0===d.css,h=0;c.rules.length>h;h++)if(c.rules[h]===a){c.rules[h]=d;break}var i=this.onImported.bind(this,d,b),j=this._sequencer.addImport(i);this._importer.push(d.getPath(),g,d.currentFileInfo,d.options,j)}},onImported:function(a,b,c,d,e,f){c&&(c.filename||(c.index=a.index,c.filename=a.currentFileInfo.filename),this.error=c);var g=this,h=a.options.inline,i=a.options.plugin,j=a.options.optional,k=e||f in g.recursionDetector;if(b.importMultiple||(a.skip=k?!0:function(){return f in g.onceFileDetectionMap?!0:(g.onceFileDetectionMap[f]=!0,!1)}),!f&&j&&(a.skip=!0),d&&(a.root=d,a.importedFilename=f,!(h||i||!b.importMultiple&&k))){g.recursionDetector[f]=!0;var l=this.context;this.context=b;try{this._visitor.visit(d)}catch(c){this.error=c}this.context=l}g.importCount--,g.isFinished&&g._sequencer.tryRun()},visitRule:function(a,b){"DetachedRuleset"===a.value.type?this.context.frames.unshift(a):b.visitDeeper=!1},visitRuleOut:function(a){"DetachedRuleset"===a.value.type&&this.context.frames.shift()},visitDirective:function(a){this.context.frames.unshift(a)},visitDirectiveOut:function(){this.context.frames.shift()},visitMixinDefinition:function(a){this.context.frames.unshift(a)},visitMixinDefinitionOut:function(){this.context.frames.shift()},visitRuleset:function(a){this.context.frames.unshift(a)},visitRulesetOut:function(){this.context.frames.shift()},visitMedia:function(a){this.context.frames.unshift(a.rules[0])},visitMediaOut:function(){this.context.frames.shift()}},b.exports=f},{"../contexts":10,"./import-sequencer":84,"./visitor":89}],86:[function(a,b){var c={Visitor:a("./visitor"),ImportVisitor:a("./import-visitor"),ExtendVisitor:a("./extend-visitor"),JoinSelectorVisitor:a("./join-selector-visitor"),ToCSSVisitor:a("./to-css-visitor")};b.exports=c},{"./extend-visitor":83,"./import-visitor":85,"./join-selector-visitor":87,"./to-css-visitor":88,"./visitor":89 +}],87:[function(a,b){var c=a("./visitor"),d=function(){this.contexts=[[]],this._visitor=new c(this)};d.prototype={run:function(a){return this._visitor.visit(a)},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){var b,c=this.contexts[this.contexts.length-1],d=[];this.contexts.push(d),a.root||(b=a.selectors,b&&(b=b.filter(function(a){return a.getIsOutput()}),a.selectors=b.length?b:b=null,b&&a.joinSelectors(d,c,b)),b||(a.rules=null),a.paths=d)},visitRulesetOut:function(){this.contexts.length=this.contexts.length-1},visitMedia:function(a){var b=this.contexts[this.contexts.length-1];a.rules[0].root=0===b.length||b[0].multiMedia},visitDirective:function(a){var b=this.contexts[this.contexts.length-1];a.rules&&a.rules.length&&(a.rules[0].root=a.isRooted||0===b.length||null)}},b.exports=d},{"./visitor":89}],88:[function(a,b){var c=a("../tree"),d=a("./visitor"),e=function(a){this._visitor=new d(this),this._context=a};e.prototype={isReplacing:!0,run:function(a){return this._visitor.visit(a)},visitRule:function(a){return a.variable?void 0:a},visitMixinDefinition:function(a){a.frames=[]},visitExtend:function(){},visitComment:function(a){return a.isSilent(this._context)?void 0:a},visitMedia:function(a,b){return a.accept(this._visitor),b.visitDeeper=!1,a.rules.length?a:void 0},visitImport:function(a){return void 0!==a.path.currentFileInfo.reference&&a.css?void 0:a},visitDirective:function(a,b){function d(a){var b,c=a.rules;1!==c.length||c[0].paths&&0!==c[0].paths.length||(c=c[0].rules);for(var d=0;c.length>d;d++)if(b=c[d],b.getIsReferenced&&b.getIsReferenced())return!0;return!1}if("@charset"===a.name){if(!a.getIsReferenced())return;if(this.charset){if(a.debugInfo){var e=new c.Comment("/* "+a.toCSS(this._context).replace(/\n/g,"")+" */\n");return e.debugInfo=a.debugInfo,this._visitor.visit(e)}return}this.charset=!0}if(a.rules&&a.rules.length){if(this._mergeRules(a.rules[0].rules),a.accept(this._visitor),b.visitDeeper=!1,a.getIsReferenced())return a;if(!a.rules||!a.rules.length)return;if(d(a))return a.markReferenced(),a}else if(a.getIsReferenced())return a},checkPropertiesInRoot:function(a){for(var b,d=0;a.length>d;d++)if(b=a[d],b instanceof c.Rule&&!b.variable)throw{message:"properties must be inside selector blocks, they cannot be in the root.",index:b.index,filename:b.currentFileInfo?b.currentFileInfo.filename:null}},visitRuleset:function(a,b){var d,e=[];if(a.firstRoot&&this.checkPropertiesInRoot(a.rules),a.root)a.accept(this._visitor),b.visitDeeper=!1,(a.firstRoot||a.rules&&a.rules.length>0)&&e.splice(0,0,a);else{a.paths&&(a.paths=a.paths.filter(function(a){var b;for(" "===a[0].elements[0].combinator.value&&(a[0].elements[0].combinator=new c.Combinator("")),b=0;a.length>b;b++)if(a[b].getIsReferenced()&&a[b].getIsOutput())return!0;return!1}));for(var f=a.rules,g=f?f.length:0,h=0;g>h;)d=f[h],d&&d.rules?(e.push(this._visitor.visit(d)),f.splice(h,1),g--):h++;g>0?a.accept(this._visitor):a.rules=null,b.visitDeeper=!1,f=a.rules,f&&(this._mergeRules(f),f=a.rules),f&&(this._removeDuplicateRules(f),f=a.rules),f&&f.length>0&&a.paths.length>0&&e.splice(0,0,a)}return 1===e.length?e[0]:e},_removeDuplicateRules:function(a){if(a){var b,d,e,f={};for(e=a.length-1;e>=0;e--)if(d=a[e],d instanceof c.Rule)if(f[d.name]){b=f[d.name],b instanceof c.Rule&&(b=f[d.name]=[f[d.name].toCSS(this._context)]);var g=d.toCSS(this._context);-1!==b.indexOf(g)?a.splice(e,1):b.push(g)}else f[d.name]=d}},_mergeRules:function(a){if(a){for(var b,d,e,f={},g=0;a.length>g;g++)d=a[g],d instanceof c.Rule&&d.merge&&(e=[d.name,d.important?"!":""].join(","),f[e]?a.splice(g--,1):f[e]=[],f[e].push(d));Object.keys(f).map(function(a){function e(a){return new c.Expression(a.map(function(a){return a.value}))}function g(a){return new c.Value(a.map(function(a){return a}))}if(b=f[a],b.length>1){d=b[0];var h=[],i=[];b.map(function(a){"+"===a.merge&&(i.length>0&&h.push(e(i)),i=[]),i.push(a)}),h.push(e(i)),d.value=g(h)}})}},visitAnonymous:function(a){return a.getIsReferenced()?(a.accept(this._visitor),a):void 0}},b.exports=e},{"../tree":61,"./visitor":89}],89:[function(a,b){function c(a){return a}function d(a,b){var c,e;for(c in a)if(a.hasOwnProperty(c))switch(e=a[c],typeof e){case"function":e.prototype&&e.prototype.type&&(e.prototype.typeIndex=b++);break;case"object":b=d(e,b)}return b}var e=a("../tree"),f={visitDeeper:!0},g=!1,h=function(a){this._implementation=a,this._visitFnCache=[],g||(d(e,1),g=!0)};h.prototype={visit:function(a){if(!a)return a;var b=a.typeIndex;if(!b)return a;var d,e=this._visitFnCache,g=this._implementation,h=b<<1,i=1|h,j=e[h],k=e[i],l=f;if(l.visitDeeper=!0,j||(d="visit"+a.type,j=g[d]||c,k=g[d+"Out"]||c,e[h]=j,e[i]=k),j!==c){var m=j.call(g,a,l);g.isReplacing&&(a=m)}return l.visitDeeper&&a&&a.accept&&a.accept(this),k!=c&&k.call(g,a),a},visitArray:function(a,b){if(!a)return a;var c,d=a.length;if(b||!this._implementation.isReplacing){for(c=0;d>c;c++)this.visit(a[c]);return a}var e=[];for(c=0;d>c;c++){var f=this.visit(a[c]);void 0!==f&&(f.splice?f.length&&this.flatten(f,e):e.push(f))}return e},flatten:function(a,b){b||(b=[]);var c,d,e,f,g,h;for(d=0,c=a.length;c>d;d++)if(e=a[d],void 0!==e)if(e.splice)for(g=0,f=e.length;f>g;g++)h=e[g],void 0!==h&&(h.splice?h.length&&this.flatten(h,b):b.push(h));else b.push(e);return b}},b.exports=h},{"../tree":61}],90:[function(a,b){function c(){if(!g){g=!0;for(var a,b=f.length;b;){a=f,f=[];for(var c=-1;++c<b;)a[c]();b=f.length}g=!1}}function d(){}var e=b.exports={},f=[],g=!1;e.nextTick=function(a){f.push(a),g||setTimeout(c,0)},e.title="browser",e.browser=!0,e.env={},e.argv=[],e.version="",e.versions={},e.on=d,e.addListener=d,e.once=d,e.off=d,e.removeListener=d,e.removeAllListeners=d,e.emit=d,e.binding=function(){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(){throw new Error("process.chdir is not supported")},e.umask=function(){return 0}},{}],91:[function(a,b){"use strict";function c(a){function b(a){return null===i?void k.push(a):void f(function(){var b=i?a.onFulfilled:a.onRejected;if(null===b)return void(i?a.resolve:a.reject)(j);var c;try{c=b(j)}catch(d){return void a.reject(d)}a.resolve(c)})}function c(a){try{if(a===l)throw new TypeError("A promise cannot be resolved with itself.");if(a&&("object"==typeof a||"function"==typeof a)){var b=a.then;if("function"==typeof b)return void e(b.bind(a),c,g)}i=!0,j=a,h()}catch(d){g(d)}}function g(a){i=!1,j=a,h()}function h(){for(var a=0,c=k.length;c>a;a++)b(k[a]);k=null}if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof a)throw new TypeError("not a function");var i=null,j=null,k=[],l=this;this.then=function(a,c){return new l.constructor(function(e,f){b(new d(a,c,e,f))})},e(a,c,g)}function d(a,b,c,d){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.resolve=c,this.reject=d}function e(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}var f=a("asap");b.exports=c},{asap:93}],92:[function(a,b){"use strict";function c(a){this.then=function(b){return"function"!=typeof b?this:new d(function(c,d){e(function(){try{c(b(a))}catch(e){d(e)}})})}}var d=a("./core.js"),e=a("asap");b.exports=d,c.prototype=d.prototype;var f=new c(!0),g=new c(!1),h=new c(null),i=new c(void 0),j=new c(0),k=new c("");d.resolve=function(a){if(a instanceof d)return a;if(null===a)return h;if(void 0===a)return i;if(a===!0)return f;if(a===!1)return g;if(0===a)return j;if(""===a)return k;if("object"==typeof a||"function"==typeof a)try{var b=a.then;if("function"==typeof b)return new d(b.bind(a))}catch(e){return new d(function(a,b){b(e)})}return new c(a)},d.all=function(a){var b=Array.prototype.slice.call(a);return new d(function(a,c){function d(f,g){try{if(g&&("object"==typeof g||"function"==typeof g)){var h=g.then;if("function"==typeof h)return void h.call(g,function(a){d(f,a)},c)}b[f]=g,0===--e&&a(b)}catch(i){c(i)}}if(0===b.length)return a([]);for(var e=b.length,f=0;b.length>f;f++)d(f,b[f])})},d.reject=function(a){return new d(function(b,c){c(a)})},d.race=function(a){return new d(function(b,c){a.forEach(function(a){d.resolve(a).then(b,c)})})},d.prototype["catch"]=function(a){return this.then(null,a)}},{"./core.js":91,asap:93}],93:[function(a,b){(function(a){function c(){for(;e.next;){e=e.next;var a=e.task;e.task=void 0;var b=e.domain;b&&(e.domain=void 0,b.enter());try{a()}catch(d){if(i)throw b&&b.exit(),setTimeout(c,0),b&&b.enter(),d;setTimeout(function(){throw d},0)}b&&b.exit()}g=!1}function d(b){f=f.next={task:b,domain:i&&a.domain,next:null},g||(g=!0,h())}var e={task:void 0,next:null},f=e,g=!1,h=void 0,i=!1;if("undefined"!=typeof a&&a.nextTick)i=!0,h=function(){a.nextTick(c)};else if("function"==typeof setImmediate)h="undefined"!=typeof window?setImmediate.bind(window,c):function(){setImmediate(c)};else if("undefined"!=typeof MessageChannel){var j=new MessageChannel;j.port1.onmessage=c,h=function(){j.port2.postMessage(0)}}else h=function(){setTimeout(c,0)};b.exports=d}).call(this,a("_process"))},{_process:90}],94:[function(){"function"!=typeof Promise.prototype.done&&(Promise.prototype.done=function(){var a=arguments.length?this.then.apply(this,arguments):this;a.then(null,function(a){setTimeout(function(){throw a},0)})})},{}],95:[function(a){a("asap");"undefined"==typeof Promise&&(Promise=a("./lib/core.js"),a("./lib/es6-extensions.js")),a("./polyfill-done.js")},{"./lib/core.js":91,"./lib/es6-extensions.js":92,"./polyfill-done.js":94,asap:93}]},{},[2])(2)}); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/themes/blank.css Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,130 @@ +body { + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; +} +a:link, +a:visited { + color: #000000; +} +.slide { + color: #000000; +} +.slide h1 { + font-size: 200%; + color: black; + text-align: center; +} +.slide h1.fullscreen { + position: absolute; + top: 40%; + width: 100%; +} +.slide h1.hidden { + display: none; +} +.slide hX { + font-size: 250%; + color: white; + text-align: center; + font-weight: bold; +} +.slide hX.fullscreen { + position: absolute; + top: 40%; + width: 100%; +} +.slide hX.hidden { + display: none; +} +.slide h2 { + font-size: 220%; + background-color: #808db5; + color: white; + padding: 5px; +} +.slide h3 { + font-size: 180%; +} +.slide name { + font-size: 180%; + background-color: #ffcc00; +} +.slide name.fullscreen { + position: absolute; + top: 40%; + width: 100%; +} +.slide .stepcurrent { + color: #dd0000; +} +.slide .step { + color: #c0c0c0; +} +div.highlight { + background-color: #ffffa9; + display: inline-block; + _display: inline; +} +div > ul { + list-style-type: square; + font-size: 160%; +} +div > ol { + font-size: 160%; +} +li { + margin-bottom: 15px; +} +p, +dt, +dd, +td { + font-size: 150%; +} +th { + font-size: 90%; +} +p.emphasize { + font-size: 180%; +} +pre { + font-size: 100%; +} +.code { + background-color: #ffffa9; + padding: 5px; +} +.small_code { + font-size: 90%; + padding: 2px; +} +.smaller_code { + font-size: 80%; + padding: 2px; +} +code { + font-size: 100%; + background-color: #ffffa9; + padding: 5px; +} +.footnote a:first-of-type { + text-decoration: none; +} +p.footnote { + font-size: 88%; +} +.help p, +.help td { + font-size: 88%; +} +/******** + * example gradient background using css3 + */ +.slide { + background-image: -webkit-linear-gradient(top, #ffffff, #ffffff, #ffffff, #ffffff); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff, #ffffff, #ffffff); +} +.slide.cover, +.slide.title { + background-image: -webkit-linear-gradient(top, #ffffff, #ffffff, #ffffff, #ffffff); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff, #ffffff, #ffffff); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/themes/print.css Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,35 @@ +/********************************* * CSS @media print rules (not projection or screen) */ +body { + font-size: 12pt; +} +.slide { + display: block !important; + page-break-inside: avoid; + /******************** * Extra styling for first slide (title/cover slide) */ +} +.slide h1 { + page-break-after: avoid; +} +.slide ul { + page-break-inside: avoid; +} +.slide h1 { + border-top: 2pt solid gray; + border-bottom: 1px dotted silver; +} +.slide:first-child { + margin-bottom: 3em; +} +.slide:first-child h1 { + font-size: 200%; + border: none; + margin: 0.5em 0 0.25em; +} +.slide:first-child h3 { + margin: 0; + padding: 0; +} +.slide:first-child h4 { + margin: 0 0 0.5em; + padding: 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/themes/projection.css Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,126 @@ +/********************************* + * CSS @media projection rules (not print or screen) + * + * 1) projection -> slideshow mode (display one slide at-a-time; hide all others) + * 2) screen -> outline mode (display all slides-at-once on screen) + * 3) print -> print (and print preview) + * + * toggle between projection/screen (that is, slideshow/outline) mode using t-key + */ +html, +body, +.presentation { + margin: 0; + padding: 0; +} +.slide { + display: none; + /* note: only display current slide in projection mode */ + position: absolute; + top: 0; + left: 0; + margin: 0; + padding: 2% 4% 0% 4%; + /* css note: order is => top right bottom left */ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 100%; + /* css note: lets use border-box; no need to add padding+border to get to 100% */ + overflow-x: hidden; + overflow-y: auto; + z-index: 2; +} +.slide.current { + display: block; +} +/* note: only display current slide in projection mode */ +/***** + * layout block structure: + * + * .layout + * > #header + * > #footer + */ +.layout #header, +.layout header { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 0.5em; + z-index: 1; +} +.layout #footer, +.layout footer { + position: fixed; + top: auto; + bottom: 0; + padding: 1em 0; + /* css note: order is => 1st top,bottom; 2nd right,left */ + width: 100%; + height: 4em; + z-index: 5; + /* todo: move font-size and font-style to blank.css */ + font-size: 100%; + font-weight: bold; + /* todo: move font-size and font-style to blank.css */ +} +.layout #footer h1, +.layout footer h1 { + display: block; + margin: 0; + padding: 0 1em; + font-size: 50%; +} +.layout #footer h2, +.layout footer h2 { + display: block; + margin: 0; + padding: 0 1em; + font-size: 50%; + font-style: italic; +} +/********************************* + * general text-alignment classes + */ +.left { + text-align: left; +} +.center { + text-align: center; +} +.right { + text-align: right; +} +/********************************* + * general _absolute_ font-size classes + */ +.small { + font-size: 97%; +} +.x-small { + font-size: 88%; +} +.xx-small { + font-size: 82%; +} +.large { + font-size: 103%; +} +.x-large { + font-size: 112%; +} +.xx-large { + font-size: 118%; +} +/********************************* + * general _relative_ font-size classes + */ +.smaller { + font-size: 82%; +} +.larger { + font-size: 118%; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/s6/themes/screen.css Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,25 @@ +/********************************* + * CSS @media screen (not projection or print) + * + * 1) projection -> slideshow mode (display one slide at-a-time; hide all others) + * 2) screen -> outline mode (display all slides-at-once on screen) + * 3) print -> print (and print preview) + * + * toggle between projection/screen (that is, slideshow/outline) mode using t-key + */ +.slide { + display: block !important; + margin: 1.5em 0 0; + border-top: 1px solid #888; +} +.slide h1 { + border-bottom: 1px solid #AAA; +} +.slide:first-child { + margin: 0; + border: none; +} +.slide:first-child h1 { + border: none; + padding-top: 1.5em; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/scripts/prettify.css Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,51 @@ +/* CSS from google html5slides(https://code.google.com/p/html5slides/) */ + +pre > code { + font-family: 'Droid Sans Mono', 'Courier New', monospace; + + font-size: 20px; + line-height: 28px; + padding: 5px 10px; + + letter-spacing: -1px; + + margin-top: 40px; + margin-bottom: 40px; + + color: black; + background: rgb(240, 240, 240); + border: 1px solid rgb(224, 224, 224); + box-shadow: inset 0 2px 6px rgba(0, 0, 0, .1); + + overflow: hidden; +} + +/* Pretty print */ + +.prettyprint .str, /* string content */ +.prettyprint .atv { /* a markup attribute value */ + color: rgb(0, 138, 53); +} +.prettyprint .kwd, /* a keyword */ +.prettyprint .tag { /* a markup tag name */ + color: rgb(0, 102, 204); +} +.prettyprint .com { /* a comment */ + color: rgb(127, 127, 127); + font-style: italic; +} +.prettyprint .lit { /* a literal value */ + color: rgb(127, 0, 0); +} +.prettyprint .pun, /* punctuation, lisp open bracket, lisp close bracket */ +.prettyprint .opn, +.prettyprint .clo { + color: rgb(127, 127, 127); +} +.prettyprint .typ, /* a type name */ +.prettyprint .atn, /* a markup attribute name */ +.prettyprint .dec, +.prettyprint .var { /* a declaration; a variable name */ + color: rgb(127, 0, 127); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/scripts/prettify.js Tue Dec 22 17:02:46 2015 +0900 @@ -0,0 +1,1391 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + * + * <p> + * For a fairly comprehensive set of languages see the + * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a> + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + * <p> + * Usage: <ol> + * <li> include this source file in an html page via + * {@code <script type="text/javascript" src="/path/to/prettify.js"></script>} + * <li> define style rules. See the example page for examples. + * <li> mark the {@code <pre>} and {@code <code>} tags in your source with + * {@code class=prettyprint.} + * You can also use the (html deprecated) {@code <xmp>} tag, but the pretty + * printer needs to do more substantial DOM manipulations to support that, so + * some css styles may not be preserved. + * </ol> + * That's it. I wanted to keep the API as simple as possible, so there's no + * need to specify which language the code is in, but if you wish, you can add + * another class to the {@code <pre>} or {@code <code>} element to specify the + * language, as in {@code <pre class="prettyprint lang-java">}. Any class that + * starts with "lang-" followed by a file extension, specifies the file type. + * See the "lang-*.js" files in this directory for code that implements + * per-language file handlers. + * <p> + * Change log:<br> + * cbeust, 2006/08/22 + * <blockquote> + * Java annotations (start with "@") are now captured as literals ("lit") + * </blockquote> + * @requires console + */ + +// JSLint declarations +/*global console, document, navigator, setTimeout, window */ + +/** + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with + * UI events. + * If set to {@code false}, {@code prettyPrint()} is synchronous. + */ +window['PR_SHOULD_USE_CONTINUATION'] = true; + +/** the number of characters between tab columns */ +window['PR_TAB_WIDTH'] = 8; + +/** Contains functions for creating and registering new language handlers. + * @type {Object} + */ +window['PR'] + +/** Pretty print a chunk of code. + * + * @param {string} sourceCodeHtml code as html + * @return {string} code as html, but prettier + */ + = window['prettyPrintOne'] +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with + * {@code class=prettyprint} and prettify them. + * @param {Function?} opt_whenDone if specified, called when the last entry + * has been finished. + */ + = window['prettyPrint'] = void 0; + + +(function () { + // Keyword lists for various languages. + var FLOW_CONTROL_KEYWORDS = + "break continue do else for if return while "; + var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " + + "double enum extern float goto int long register short signed sizeof " + + "static struct switch typedef union unsigned void volatile "; + var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " + + "new operator private protected public this throw true try typeof "; + var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " + + "concept concept_map const_cast constexpr decltype " + + "dynamic_cast explicit export friend inline late_check " + + "mutable namespace nullptr reinterpret_cast static_assert static_cast " + + "template typeid typename using virtual wchar_t where "; + var JAVA_KEYWORDS = COMMON_KEYWORDS + + "abstract boolean byte extends final finally implements import " + + "instanceof null native package strictfp super synchronized throws " + + "transient "; + var CSHARP_KEYWORDS = JAVA_KEYWORDS + + "as base by checked decimal delegate descending dynamic event " + + "fixed foreach from group implicit in interface internal into is lock " + + "object out override orderby params partial readonly ref sbyte sealed " + + "stackalloc string select uint ulong unchecked unsafe ushort var "; + var COFFEE_KEYWORDS = "all and by catch class else extends false finally " + + "for if in is isnt loop new no not null of off on or return super then " + + "true try unless until when while yes "; + var JSCRIPT_KEYWORDS = COMMON_KEYWORDS + + "debugger eval export function get null set undefined var with " + + "Infinity NaN "; + var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " + + "goto if import last local my next no our print package redo require " + + "sub undef unless until use wantarray while BEGIN END "; + var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " + + "elif except exec finally from global import in is lambda " + + "nonlocal not or pass print raise try with yield " + + "False True None "; + var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" + + " defined elsif end ensure false in module next nil not or redo rescue " + + "retry self super then true undef unless until when yield BEGIN END "; + var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " + + "function in local set then until "; + var ALL_KEYWORDS = ( + CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS + + PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS); + + // token style names. correspond to css classes + /** token style for a string literal */ + var PR_STRING = 'str'; + /** token style for a keyword */ + var PR_KEYWORD = 'kwd'; + /** token style for a comment */ + var PR_COMMENT = 'com'; + /** token style for a type */ + var PR_TYPE = 'typ'; + /** token style for a literal value. e.g. 1, null, true. */ + var PR_LITERAL = 'lit'; + /** token style for a punctuation string. */ + var PR_PUNCTUATION = 'pun'; + /** token style for a punctuation string. */ + var PR_PLAIN = 'pln'; + + /** token style for an sgml tag. */ + var PR_TAG = 'tag'; + /** token style for a markup declaration such as a DOCTYPE. */ + var PR_DECLARATION = 'dec'; + /** token style for embedded source. */ + var PR_SOURCE = 'src'; + /** token style for an sgml attribute name. */ + var PR_ATTRIB_NAME = 'atn'; + /** token style for an sgml attribute value. */ + var PR_ATTRIB_VALUE = 'atv'; + + /** + * A class that indicates a section of markup that is not code, e.g. to allow + * embedding of line numbers within code listings. + */ + var PR_NOCODE = 'nocode'; + + /** A set of tokens that can precede a regular expression literal in + * javascript. + * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full + * list, but I've removed ones that might be problematic when seen in + * languages that don't support regular expression literals. + * + * <p>Specifically, I've removed any keywords that can't precede a regexp + * literal in a syntactically legal javascript program, and I've removed the + * "in" keyword since it's not a keyword in many languages, and might be used + * as a count of inches. + * + * <p>The link a above does not accurately describe EcmaScript rules since + * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works + * very well in practice. + * + * @private + */ + var REGEXP_PRECEDER_PATTERN = function () { + var preceders = [ + "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=", + "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=", + "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";", + "<", "<<", "<<=", "<=", "=", "==", "===", ">", + ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[", + "^", "^=", "^^", "^^=", "{", "|", "|=", "||", + "||=", "~" /* handles =~ and !~ */, + "break", "case", "continue", "delete", + "do", "else", "finally", "instanceof", + "return", "throw", "try", "typeof" + ]; + var pattern = '(?:^^|[+-]'; + for (var i = 0; i < preceders.length; ++i) { + pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1'); + } + pattern += ')\\s*'; // matches at end, and matches empty string + return pattern; + // CAVEAT: this does not properly handle the case where a regular + // expression immediately follows another since a regular expression may + // have flags for case-sensitivity and the like. Having regexp tokens + // adjacent is not valid in any language I'm aware of, so I'm punting. + // TODO: maybe style special characters inside a regexp as punctuation. + }(); + + + /** + * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally + * matches the union of the sets of strings matched by the input RegExp. + * Since it matches globally, if the input strings have a start-of-input + * anchor (/^.../), it is ignored for the purposes of unioning. + * @param {Array.<RegExp>} regexs non multiline, non-global regexs. + * @return {RegExp} a global regex. + */ + function combinePrefixPatterns(regexs) { + var capturedGroupIndex = 0; + + var needToFoldCase = false; + var ignoreCase = false; + for (var i = 0, n = regexs.length; i < n; ++i) { + var regex = regexs[i]; + if (regex.ignoreCase) { + ignoreCase = true; + } else if (/[a-z]/i.test(regex.source.replace( + /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) { + needToFoldCase = true; + ignoreCase = false; + break; + } + } + + function decodeEscape(charsetPart) { + if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); } + switch (charsetPart.charAt(1)) { + case 'b': return 8; + case 't': return 9; + case 'n': return 0xa; + case 'v': return 0xb; + case 'f': return 0xc; + case 'r': return 0xd; + case 'u': case 'x': + return parseInt(charsetPart.substring(2), 16) + || charsetPart.charCodeAt(1); + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': + return parseInt(charsetPart.substring(1), 8); + default: return charsetPart.charCodeAt(1); + } + } + + function encodeEscape(charCode) { + if (charCode < 0x20) { + return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16); + } + var ch = String.fromCharCode(charCode); + if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') { + ch = '\\' + ch; + } + return ch; + } + + function caseFoldCharset(charSet) { + var charsetParts = charSet.substring(1, charSet.length - 1).match( + new RegExp( + '\\\\u[0-9A-Fa-f]{4}' + + '|\\\\x[0-9A-Fa-f]{2}' + + '|\\\\[0-3][0-7]{0,2}' + + '|\\\\[0-7]{1,2}' + + '|\\\\[\\s\\S]' + + '|-' + + '|[^-\\\\]', + 'g')); + var groups = []; + var ranges = []; + var inverse = charsetParts[0] === '^'; + for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) { + var p = charsetParts[i]; + switch (p) { + case '\\B': case '\\b': + case '\\D': case '\\d': + case '\\S': case '\\s': + case '\\W': case '\\w': + groups.push(p); + continue; + } + var start = decodeEscape(p); + var end; + if (i + 2 < n && '-' === charsetParts[i + 1]) { + end = decodeEscape(charsetParts[i + 2]); + i += 2; + } else { + end = start; + } + ranges.push([start, end]); + // If the range might intersect letters, then expand it. + if (!(end < 65 || start > 122)) { + if (!(end < 65 || start > 90)) { + ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]); + } + if (!(end < 97 || start > 122)) { + ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]); + } + } + } + + // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]] + // -> [[1, 12], [14, 14], [16, 17]] + ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); }); + var consolidatedRanges = []; + var lastRange = [NaN, NaN]; + for (var i = 0; i < ranges.length; ++i) { + var range = ranges[i]; + if (range[0] <= lastRange[1] + 1) { + lastRange[1] = Math.max(lastRange[1], range[1]); + } else { + consolidatedRanges.push(lastRange = range); + } + } + + var out = ['[']; + if (inverse) { out.push('^'); } + out.push.apply(out, groups); + for (var i = 0; i < consolidatedRanges.length; ++i) { + var range = consolidatedRanges[i]; + out.push(encodeEscape(range[0])); + if (range[1] > range[0]) { + if (range[1] + 1 > range[0]) { out.push('-'); } + out.push(encodeEscape(range[1])); + } + } + out.push(']'); + return out.join(''); + } + + function allowAnywhereFoldCaseAndRenumberGroups(regex) { + // Split into character sets, escape sequences, punctuation strings + // like ('(', '(?:', ')', '^'), and runs of characters that do not + // include any of the above. + var parts = regex.source.match( + new RegExp( + '(?:' + + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set + + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape + + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape + + '|\\\\[0-9]+' // a back-reference or octal escape + + '|\\\\[^ux0-9]' // other escape sequence + + '|\\(\\?[:!=]' // start of a non-capturing group + + '|[\\(\\)\\^]' // start/emd of a group, or line start + + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters + + ')', + 'g')); + var n = parts.length; + + // Maps captured group numbers to the number they will occupy in + // the output or to -1 if that has not been determined, or to + // undefined if they need not be capturing in the output. + var capturedGroups = []; + + // Walk over and identify back references to build the capturedGroups + // mapping. + for (var i = 0, groupIndex = 0; i < n; ++i) { + var p = parts[i]; + if (p === '(') { + // groups are 1-indexed, so max group index is count of '(' + ++groupIndex; + } else if ('\\' === p.charAt(0)) { + var decimalValue = +p.substring(1); + if (decimalValue && decimalValue <= groupIndex) { + capturedGroups[decimalValue] = -1; + } + } + } + + // Renumber groups and reduce capturing groups to non-capturing groups + // where possible. + for (var i = 1; i < capturedGroups.length; ++i) { + if (-1 === capturedGroups[i]) { + capturedGroups[i] = ++capturedGroupIndex; + } + } + for (var i = 0, groupIndex = 0; i < n; ++i) { + var p = parts[i]; + if (p === '(') { + ++groupIndex; + if (capturedGroups[groupIndex] === undefined) { + parts[i] = '(?:'; + } + } else if ('\\' === p.charAt(0)) { + var decimalValue = +p.substring(1); + if (decimalValue && decimalValue <= groupIndex) { + parts[i] = '\\' + capturedGroups[groupIndex]; + } + } + } + + // Remove any prefix anchors so that the output will match anywhere. + // ^^ really does mean an anchored match though. + for (var i = 0, groupIndex = 0; i < n; ++i) { + if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; } + } + + // Expand letters to groups to handle mixing of case-sensitive and + // case-insensitive patterns if necessary. + if (regex.ignoreCase && needToFoldCase) { + for (var i = 0; i < n; ++i) { + var p = parts[i]; + var ch0 = p.charAt(0); + if (p.length >= 2 && ch0 === '[') { + parts[i] = caseFoldCharset(p); + } else if (ch0 !== '\\') { + // TODO: handle letters in numeric escapes. + parts[i] = p.replace( + /[a-zA-Z]/g, + function (ch) { + var cc = ch.charCodeAt(0); + return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']'; + }); + } + } + } + + return parts.join(''); + } + + var rewritten = []; + for (var i = 0, n = regexs.length; i < n; ++i) { + var regex = regexs[i]; + if (regex.global || regex.multiline) { throw new Error('' + regex); } + rewritten.push( + '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')'); + } + + return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g'); + } + + + /** + * Split markup into a string of source code and an array mapping ranges in + * that string to the text nodes in which they appear. + * + * <p> + * The HTML DOM structure:</p> + * <pre> + * (Element "p" + * (Element "b" + * (Text "print ")) ; #1 + * (Text "'Hello '") ; #2 + * (Element "br") ; #3 + * (Text " + 'World';")) ; #4 + * </pre> + * <p> + * corresponds to the HTML + * {@code <p><b>print </b>'Hello '<br> + 'World';</p>}.</p> + * + * <p> + * It will produce the output:</p> + * <pre> + * { + * source: "print 'Hello '\n + 'World';", + * // 1 2 + * // 012345678901234 5678901234567 + * spans: [0, #1, 6, #2, 14, #3, 15, #4] + * } + * </pre> + * <p> + * where #1 is a reference to the {@code "print "} text node above, and so + * on for the other text nodes. + * </p> + * + * <p> + * The {@code} spans array is an array of pairs. Even elements are the start + * indices of substrings, and odd elements are the text nodes (or BR elements) + * that contain the text for those substrings. + * Substrings continue until the next index or the end of the source. + * </p> + * + * @param {Node} node an HTML DOM subtree containing source-code. + * @return {Object} source code and the text nodes in which they occur. + */ + function extractSourceSpans(node) { + var nocode = /(?:^|\s)nocode(?:\s|$)/; + + var chunks = []; + var length = 0; + var spans = []; + var k = 0; + + var whitespace; + if (node.currentStyle) { + whitespace = node.currentStyle.whiteSpace; + } else if (window.getComputedStyle) { + whitespace = document.defaultView.getComputedStyle(node, null) + .getPropertyValue('white-space'); + } + var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3); + + function walk(node) { + switch (node.nodeType) { + case 1: // Element + if (nocode.test(node.className)) { return; } + for (var child = node.firstChild; child; child = child.nextSibling) { + walk(child); + } + var nodeName = node.nodeName; + if ('BR' === nodeName || 'LI' === nodeName) { + chunks[k] = '\n'; + spans[k << 1] = length++; + spans[(k++ << 1) | 1] = node; + } + break; + case 3: case 4: // Text + var text = node.nodeValue; + if (text.length) { + if (!isPreformatted) { + text = text.replace(/[ \t\r\n]+/g, ' '); + } else { + text = text.replace(/\r\n?/g, '\n'); // Normalize newlines. + } + // TODO: handle tabs here? + chunks[k] = text; + spans[k << 1] = length; + length += text.length; + spans[(k++ << 1) | 1] = node; + } + break; + } + } + + walk(node); + + return { + source: chunks.join('').replace(/\n$/, ''), + spans: spans + }; + } + + + /** + * Apply the given language handler to sourceCode and add the resulting + * decorations to out. + * @param {number} basePos the index of sourceCode within the chunk of source + * whose decorations are already present on out. + */ + function appendDecorations(basePos, sourceCode, langHandler, out) { + if (!sourceCode) { return; } + var job = { + source: sourceCode, + basePos: basePos + }; + langHandler(job); + out.push.apply(out, job.decorations); + } + + /** Given triples of [style, pattern, context] returns a lexing function, + * The lexing function interprets the patterns to find token boundaries and + * returns a decoration list of the form + * [index_0, style_0, index_1, style_1, ..., index_n, style_n] + * where index_n is an index into the sourceCode, and style_n is a style + * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to + * all characters in sourceCode[index_n-1:index_n]. + * + * The stylePatterns is a list whose elements have the form + * [style : string, pattern : RegExp, DEPRECATED, shortcut : string]. + * + * Style is a style constant like PR_PLAIN, or can be a string of the + * form 'lang-FOO', where FOO is a language extension describing the + * language of the portion of the token in $1 after pattern executes. + * E.g., if style is 'lang-lisp', and group 1 contains the text + * '(hello (world))', then that portion of the token will be passed to the + * registered lisp handler for formatting. + * The text before and after group 1 will be restyled using this decorator + * so decorators should take care that this doesn't result in infinite + * recursion. For example, the HTML lexer rule for SCRIPT elements looks + * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match + * '<script>foo()<\/script>', which would cause the current decorator to + * be called with '<script>' which would not match the same rule since + * group 1 must not be empty, so it would be instead styled as PR_TAG by + * the generic tag rule. The handler registered for the 'js' extension would + * then be called with 'foo()', and finally, the current decorator would + * be called with '<\/script>' which would not match the original rule and + * so the generic tag rule would identify it as a tag. + * + * Pattern must only match prefixes, and if it matches a prefix, then that + * match is considered a token with the same style. + * + * Context is applied to the last non-whitespace, non-comment token + * recognized. + * + * Shortcut is an optional string of characters, any of which, if the first + * character, gurantee that this pattern and only this pattern matches. + * + * @param {Array} shortcutStylePatterns patterns that always start with + * a known character. Must have a shortcut string. + * @param {Array} fallthroughStylePatterns patterns that will be tried in + * order if the shortcut ones fail. May have shortcuts. + * + * @return {function (Object)} a + * function that takes source code and returns a list of decorations. + */ + function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) { + var shortcuts = {}; + var tokenizer; + (function () { + var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns); + var allRegexs = []; + var regexKeys = {}; + for (var i = 0, n = allPatterns.length; i < n; ++i) { + var patternParts = allPatterns[i]; + var shortcutChars = patternParts[3]; + if (shortcutChars) { + for (var c = shortcutChars.length; --c >= 0;) { + shortcuts[shortcutChars.charAt(c)] = patternParts; + } + } + var regex = patternParts[1]; + var k = '' + regex; + if (!regexKeys.hasOwnProperty(k)) { + allRegexs.push(regex); + regexKeys[k] = null; + } + } + allRegexs.push(/[\0-\uffff]/); + tokenizer = combinePrefixPatterns(allRegexs); + })(); + + var nPatterns = fallthroughStylePatterns.length; + var notWs = /\S/; + + /** + * Lexes job.source and produces an output array job.decorations of style + * classes preceded by the position at which they start in job.source in + * order. + * + * @param {Object} job an object like {@code + * source: {string} sourceText plain text, + * basePos: {int} position of job.source in the larger chunk of + * sourceCode. + * } + */ + var decorate = function (job) { + var sourceCode = job.source, basePos = job.basePos; + /** Even entries are positions in source in ascending order. Odd enties + * are style markers (e.g., PR_COMMENT) that run from that position until + * the end. + * @type {Array.<number|string>} + */ + var decorations = [basePos, PR_PLAIN]; + var pos = 0; // index into sourceCode + var tokens = sourceCode.match(tokenizer) || []; + var styleCache = {}; + + for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) { + var token = tokens[ti]; + var style = styleCache[token]; + var match = void 0; + + var isEmbedded; + if (typeof style === 'string') { + isEmbedded = false; + } else { + var patternParts = shortcuts[token.charAt(0)]; + if (patternParts) { + match = token.match(patternParts[1]); + style = patternParts[0]; + } else { + for (var i = 0; i < nPatterns; ++i) { + patternParts = fallthroughStylePatterns[i]; + match = token.match(patternParts[1]); + if (match) { + style = patternParts[0]; + break; + } + } + + if (!match) { // make sure that we make progress + style = PR_PLAIN; + } + } + + isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5); + if (isEmbedded && !(match && typeof match[1] === 'string')) { + isEmbedded = false; + style = PR_SOURCE; + } + + if (!isEmbedded) { styleCache[token] = style; } + } + + var tokenStart = pos; + pos += token.length; + + if (!isEmbedded) { + decorations.push(basePos + tokenStart, style); + } else { // Treat group 1 as an embedded block of source code. + var embeddedSource = match[1]; + var embeddedSourceStart = token.indexOf(embeddedSource); + var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length; + if (match[2]) { + // If embeddedSource can be blank, then it would match at the + // beginning which would cause us to infinitely recurse on the + // entire token, so we catch the right context in match[2]. + embeddedSourceEnd = token.length - match[2].length; + embeddedSourceStart = embeddedSourceEnd - embeddedSource.length; + } + var lang = style.substring(5); + // Decorate the left of the embedded source + appendDecorations( + basePos + tokenStart, + token.substring(0, embeddedSourceStart), + decorate, decorations); + // Decorate the embedded source + appendDecorations( + basePos + tokenStart + embeddedSourceStart, + embeddedSource, + langHandlerForExtension(lang, embeddedSource), + decorations); + // Decorate the right of the embedded section + appendDecorations( + basePos + tokenStart + embeddedSourceEnd, + token.substring(embeddedSourceEnd), + decorate, decorations); + } + } + job.decorations = decorations; + }; + return decorate; + } + + /** returns a function that produces a list of decorations from source text. + * + * This code treats ", ', and ` as string delimiters, and \ as a string + * escape. It does not recognize perl's qq() style strings. + * It has no special handling for double delimiter escapes as in basic, or + * the tripled delimiters used in python, but should work on those regardless + * although in those cases a single string literal may be broken up into + * multiple adjacent string literals. + * + * It recognizes C, C++, and shell style comments. + * + * @param {Object} options a set of optional parameters. + * @return {function (Object)} a function that examines the source code + * in the input job and builds the decoration list. + */ + function sourceDecorator(options) { + var shortcutStylePatterns = [], fallthroughStylePatterns = []; + if (options['tripleQuotedStrings']) { + // '''multi-line-string''', 'single-line-string', and double-quoted + shortcutStylePatterns.push( + [PR_STRING, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, + null, '\'"']); + } else if (options['multiLineStrings']) { + // 'multi-line-string', "multi-line-string" + shortcutStylePatterns.push( + [PR_STRING, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, + null, '\'"`']); + } else { + // 'single-line-string', "single-line-string" + shortcutStylePatterns.push( + [PR_STRING, + /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, + null, '"\'']); + } + if (options['verbatimStrings']) { + // verbatim-string-literal production from the C# grammar. See issue 93. + fallthroughStylePatterns.push( + [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); + } + var hc = options['hashComments']; + if (hc) { + if (options['cStyleComments']) { + if (hc > 1) { // multiline hash comments + shortcutStylePatterns.push( + [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']); + } else { + // Stop C preprocessor declarations at an unclosed open comment + shortcutStylePatterns.push( + [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, + null, '#']); + } + fallthroughStylePatterns.push( + [PR_STRING, + /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, + null]); + } else { + shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']); + } + } + if (options['cStyleComments']) { + fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]); + fallthroughStylePatterns.push( + [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]); + } + if (options['regexLiterals']) { + var REGEX_LITERAL = ( + // A regular expression literal starts with a slash that is + // not followed by * or / so that it is not confused with + // comments. + '/(?=[^/*])' + // and then contains any number of raw characters, + + '(?:[^/\\x5B\\x5C]' + // escape sequences (\x5C), + + '|\\x5C[\\s\\S]' + // or non-nesting character sets (\x5B\x5D); + + '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+' + // finally closed by a /. + + '/'); + fallthroughStylePatterns.push( + ['lang-regex', + new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')') + ]); + } + + var keywords = options['keywords'].replace(/^\s+|\s+$/g, ''); + if (keywords.length) { + fallthroughStylePatterns.push( + [PR_KEYWORD, + new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]); + } + + shortcutStylePatterns.push([PR_PLAIN, /^\s+/, null, ' \r\n\t\xA0']); + fallthroughStylePatterns.push( + // TODO(mikesamuel): recognize non-latin letters and numerals in idents + [PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null], + [PR_TYPE, /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null], + [PR_PLAIN, /^[a-z_$][a-z_$@0-9]*/i, null], + [PR_LITERAL, + new RegExp( + '^(?:' + // A hex number + + '0x[a-f0-9]+' + // or an octal or decimal number, + + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)' + // possibly in scientific notation + + '(?:e[+\\-]?\\d+)?' + + ')' + // with an optional modifier like UL for unsigned long + + '[a-z]*', 'i'), + null, '0123456789'], + // Don't treat escaped quotes in bash as starting strings. See issue 144. + [PR_PLAIN, /^\\[\s\S]?/, null], + [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]); + + return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns); + } + + var decorateSource = sourceDecorator({ + 'keywords': ALL_KEYWORDS, + 'hashComments': true, + 'cStyleComments': true, + 'multiLineStrings': true, + 'regexLiterals': true + }); + + /** + * Given a DOM subtree, wraps it in a list, and puts each line into its own + * list item. + * + * @param {Node} node modified in place. Its content is pulled into an + * HTMLOListElement, and each line is moved into a separate list item. + * This requires cloning elements, so the input might not have unique + * IDs after numbering. + */ + function numberLines(node, opt_startLineNum) { + var nocode = /(?:^|\s)nocode(?:\s|$)/; + var lineBreak = /\r\n?|\n/; + + var document = node.ownerDocument; + + var whitespace; + if (node.currentStyle) { + whitespace = node.currentStyle.whiteSpace; + } else if (window.getComputedStyle) { + whitespace = document.defaultView.getComputedStyle(node, null) + .getPropertyValue('white-space'); + } + // If it's preformatted, then we need to split lines on line breaks + // in addition to <BR>s. + var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3); + + var li = document.createElement('LI'); + while (node.firstChild) { + li.appendChild(node.firstChild); + } + // An array of lines. We split below, so this is initialized to one + // un-split line. + var listItems = [li]; + + function walk(node) { + switch (node.nodeType) { + case 1: // Element + if (nocode.test(node.className)) { break; } + if ('BR' === node.nodeName) { + breakAfter(node); + // Discard the <BR> since it is now flush against a </LI>. + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } else { + for (var child = node.firstChild; child; child = child.nextSibling) { + walk(child); + } + } + break; + case 3: case 4: // Text + if (isPreformatted) { + var text = node.nodeValue; + var match = text.match(lineBreak); + if (match) { + var firstLine = text.substring(0, match.index); + node.nodeValue = firstLine; + var tail = text.substring(match.index + match[0].length); + if (tail) { + var parent = node.parentNode; + parent.insertBefore( + document.createTextNode(tail), node.nextSibling); + } + breakAfter(node); + if (!firstLine) { + // Don't leave blank text nodes in the DOM. + node.parentNode.removeChild(node); + } + } + } + break; + } + } + + // Split a line after the given node. + function breakAfter(lineEndNode) { + // If there's nothing to the right, then we can skip ending the line + // here, and move root-wards since splitting just before an end-tag + // would require us to create a bunch of empty copies. + while (!lineEndNode.nextSibling) { + lineEndNode = lineEndNode.parentNode; + if (!lineEndNode) { return; } + } + + function breakLeftOf(limit, copy) { + // Clone shallowly if this node needs to be on both sides of the break. + var rightSide = copy ? limit.cloneNode(false) : limit; + var parent = limit.parentNode; + if (parent) { + // We clone the parent chain. + // This helps us resurrect important styling elements that cross lines. + // E.g. in <i>Foo<br>Bar</i> + // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>. + var parentClone = breakLeftOf(parent, 1); + // Move the clone and everything to the right of the original + // onto the cloned parent. + var next = limit.nextSibling; + parentClone.appendChild(rightSide); + for (var sibling = next; sibling; sibling = next) { + next = sibling.nextSibling; + parentClone.appendChild(sibling); + } + } + return rightSide; + } + + var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0); + + // Walk the parent chain until we reach an unattached LI. + for (var parent; + // Check nodeType since IE invents document fragments. + (parent = copiedListItem.parentNode) && parent.nodeType === 1;) { + copiedListItem = parent; + } + // Put it on the list of lines for later processing. + listItems.push(copiedListItem); + } + + // Split lines while there are lines left to split. + for (var i = 0; // Number of lines that have been split so far. + i < listItems.length; // length updated by breakAfter calls. + ++i) { + walk(listItems[i]); + } + + // Make sure numeric indices show correctly. + if (opt_startLineNum === (opt_startLineNum|0)) { + listItems[0].setAttribute('value', opt_startLineNum); + } + + var ol = document.createElement('OL'); + ol.className = 'linenums'; + var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0; + for (var i = 0, n = listItems.length; i < n; ++i) { + li = listItems[i]; + // Stick a class on the LIs so that stylesheets can + // color odd/even rows, or any other row pattern that + // is co-prime with 10. + li.className = 'L' + ((i + offset) % 10); + if (!li.firstChild) { + li.appendChild(document.createTextNode('\xA0')); + } + ol.appendChild(li); + } + + node.appendChild(ol); + } + + /** + * Breaks {@code job.source} around style boundaries in {@code job.decorations} + * and modifies {@code job.sourceNode} in place. + * @param {Object} job like <pre>{ + * source: {string} source as plain text, + * spans: {Array.<number|Node>} alternating span start indices into source + * and the text node or element (e.g. {@code <BR>}) corresponding to that + * span. + * decorations: {Array.<number|string} an array of style classes preceded + * by the position at which they start in job.source in order + * }</pre> + * @private + */ + function recombineTagsAndDecorations(job) { + var isIE = /\bMSIE\b/.test(navigator.userAgent); + var newlineRe = /\n/g; + + var source = job.source; + var sourceLength = source.length; + // Index into source after the last code-unit recombined. + var sourceIndex = 0; + + var spans = job.spans; + var nSpans = spans.length; + // Index into spans after the last span which ends at or before sourceIndex. + var spanIndex = 0; + + var decorations = job.decorations; + var nDecorations = decorations.length; + // Index into decorations after the last decoration which ends at or before sourceIndex. + var decorationIndex = 0; + + // Simplify decorations. + var decPos = 0; + for (var i = 0; i < nDecorations;) { + // Skip over any zero-length decorations. + var startPos = decorations[i]; + var start = i; + while (start + 2 < nDecorations && decorations[start + 2] === startPos) { + start += 2; + } + // Conflate all adjacent decorations that use the same style. + var startDec = decorations[start + 1]; + var end = start + 2; + while (end + 2 <= nDecorations + && (decorations[end + 1] === startDec + || decorations[end] === decorations[end + 2])) { + end += 2; + } + decorations[decPos++] = startPos; + decorations[decPos++] = startDec; + i = end; + } + + // Strip any zero-length decoration at the end. + if (decPos && decorations[decPos - 2] === sourceLength) { decPos -= 2; } + nDecorations = decorations.length = decPos; + + var decoration = null; + while (spanIndex < nSpans) { + var spanStart = spans[spanIndex]; + var spanEnd = spans[spanIndex + 2] || sourceLength; + + var decStart = decorations[decorationIndex]; + var decEnd = decorations[decorationIndex + 2] || sourceLength; + + var end = Math.min(spanEnd, decEnd); + + var textNode = spans[spanIndex + 1]; + if (textNode.nodeType !== 1) { // Don't muck with <BR>s or <LI>s + var styledText = source.substring(sourceIndex, end); + // This may seem bizarre, and it is. Emitting LF on IE causes the + // code to display with spaces instead of line breaks. + // Emitting Windows standard issue linebreaks (CRLF) causes a blank + // space to appear at the beginning of every line but the first. + // Emitting an old Mac OS 9 line separator makes everything spiffy. + if (isIE) { styledText = styledText.replace(newlineRe, '\r'); } + textNode.nodeValue = styledText; + var document = textNode.ownerDocument; + var span = document.createElement('SPAN'); + span.className = decorations[decorationIndex + 1]; + var parentNode = textNode.parentNode; + parentNode.replaceChild(span, textNode); + span.appendChild(textNode); + if (sourceIndex < spanEnd) { // Split off a text node. + spans[spanIndex + 1] = textNode + // TODO: Possibly optimize by using '' if there's no flicker. + = document.createTextNode(source.substring(end, spanEnd)); + parentNode.insertBefore(textNode, span.nextSibling); + } + } + + sourceIndex = end; + + if (sourceIndex >= spanEnd) { + spanIndex += 2; + } + if (sourceIndex >= decEnd) { + decorationIndex += 2; + } + } + } + + + /** Maps language-specific file extensions to handlers. */ + var langHandlerRegistry = {}; + /** Register a language handler for the given file extensions. + * @param {function (Object)} handler a function from source code to a list + * of decorations. Takes a single argument job which describes the + * state of the computation. The single parameter has the form + * {@code { + * source: {string} as plain text. + * decorations: {Array.<number|string>} an array of style classes + * preceded by the position at which they start in + * job.source in order. + * The language handler should assigned this field. + * basePos: {int} the position of source in the larger source chunk. + * All positions in the output decorations array are relative + * to the larger source chunk. + * } } + * @param {Array.<string>} fileExtensions + */ + function registerLangHandler(handler, fileExtensions) { + for (var i = fileExtensions.length; --i >= 0;) { + var ext = fileExtensions[i]; + if (!langHandlerRegistry.hasOwnProperty(ext)) { + langHandlerRegistry[ext] = handler; + } else if ('console' in window) { + console['warn']('cannot override language handler %s', ext); + } + } + } + function langHandlerForExtension(extension, source) { + if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) { + // Treat it as markup if the first non whitespace character is a < and + // the last non-whitespace character is a >. + extension = /^\s*</.test(source) + ? 'default-markup' + : 'default-code'; + } + return langHandlerRegistry[extension]; + } + registerLangHandler(decorateSource, ['default-code']); + registerLangHandler( + createSimpleLexer( + [], + [ + [PR_PLAIN, /^[^<?]+/], + [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/], + [PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/], + // Unescaped content in an unknown language + ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], + ['lang-', /^<%([\s\S]+?)(?:%>|$)/], + [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], + ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], + // Unescaped content in javascript. (Or possibly vbscript). + ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], + // Contains unescaped stylesheet content + ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], + ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i] + ]), + ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']); + registerLangHandler( + createSimpleLexer( + [ + [PR_PLAIN, /^[\s]+/, null, ' \t\r\n'], + [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\''] + ], + [ + [PR_TAG, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], + [PR_ATTRIB_NAME, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], + ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], + [PR_PUNCTUATION, /^[=<>\/]+/], + ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i], + ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i], + ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i], + ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i], + ['lang-css', /^style\s*=\s*\'([^\']+)\'/i], + ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i] + ]), + ['in.tag']); + registerLangHandler( + createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']); + registerLangHandler(sourceDecorator({ + 'keywords': CPP_KEYWORDS, + 'hashComments': true, + 'cStyleComments': true + }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); + registerLangHandler(sourceDecorator({ + 'keywords': 'null true false' + }), ['json']); + registerLangHandler(sourceDecorator({ + 'keywords': CSHARP_KEYWORDS, + 'hashComments': true, + 'cStyleComments': true, + 'verbatimStrings': true + }), ['cs']); + registerLangHandler(sourceDecorator({ + 'keywords': JAVA_KEYWORDS, + 'cStyleComments': true + }), ['java']); + registerLangHandler(sourceDecorator({ + 'keywords': SH_KEYWORDS, + 'hashComments': true, + 'multiLineStrings': true + }), ['bsh', 'csh', 'sh']); + registerLangHandler(sourceDecorator({ + 'keywords': PYTHON_KEYWORDS, + 'hashComments': true, + 'multiLineStrings': true, + 'tripleQuotedStrings': true + }), ['cv', 'py']); + registerLangHandler(sourceDecorator({ + 'keywords': PERL_KEYWORDS, + 'hashComments': true, + 'multiLineStrings': true, + 'regexLiterals': true + }), ['perl', 'pl', 'pm']); + registerLangHandler(sourceDecorator({ + 'keywords': RUBY_KEYWORDS, + 'hashComments': true, + 'multiLineStrings': true, + 'regexLiterals': true + }), ['rb']); + registerLangHandler(sourceDecorator({ + 'keywords': JSCRIPT_KEYWORDS, + 'cStyleComments': true, + 'regexLiterals': true + }), ['js']); + registerLangHandler(sourceDecorator({ + 'keywords': COFFEE_KEYWORDS, + 'hashComments': 3, // ### style block comments + 'cStyleComments': true, + 'multilineStrings': true, + 'tripleQuotedStrings': true, + 'regexLiterals': true + }), ['coffee']); + registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']); + + function applyDecorator(job) { + var opt_langExtension = job.langExtension; + + try { + // Extract tags, and convert the source code to plain text. + var sourceAndSpans = extractSourceSpans(job.sourceNode); + /** Plain text. @type {string} */ + var source = sourceAndSpans.source; + job.source = source; + job.spans = sourceAndSpans.spans; + job.basePos = 0; + + // Apply the appropriate language handler + langHandlerForExtension(opt_langExtension, source)(job); + + // Integrate the decorations and tags back into the source code, + // modifying the sourceNode in place. + recombineTagsAndDecorations(job); + } catch (e) { + if ('console' in window) { + console['log'](e && e['stack'] ? e['stack'] : e); + } + } + } + + /** + * @param sourceCodeHtml {string} The HTML to pretty print. + * @param opt_langExtension {string} The language name to use. + * Typically, a filename extension like 'cpp' or 'java'. + * @param opt_numberLines {number|boolean} True to number lines, + * or the 1-indexed number of the first line in sourceCodeHtml. + */ + function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) { + var container = document.createElement('PRE'); + // This could cause images to load and onload listeners to fire. + // E.g. <img onerror="alert(1337)" src="nosuchimage.png">. + // We assume that the inner HTML is from a trusted source. + container.innerHTML = sourceCodeHtml; + if (opt_numberLines) { + numberLines(container, opt_numberLines); + } + + var job = { + langExtension: opt_langExtension, + numberLines: opt_numberLines, + sourceNode: container + }; + applyDecorator(job); + return container.innerHTML; + } + + function prettyPrint(opt_whenDone) { + function byTagName(tn) { return document.getElementsByTagName(tn); } + // fetch a list of nodes to rewrite + var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')]; + var elements = []; + for (var i = 0; i < codeSegments.length; ++i) { + for (var j = 0, n = codeSegments[i].length; j < n; ++j) { + elements.push(codeSegments[i][j]); + } + } + codeSegments = null; + + var clock = Date; + if (!clock['now']) { + clock = { 'now': function () { return (new Date).getTime(); } }; + } + + // The loop is broken into a series of continuations to make sure that we + // don't make the browser unresponsive when rewriting a large page. + var k = 0; + var prettyPrintingJob; + + function doWork() { + var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ? + clock.now() + 250 /* ms */ : + Infinity); + for (; k < elements.length && clock.now() < endTime; k++) { + var cs = elements[k]; + if (cs.className && cs.className.indexOf('prettyprint') >= 0) { + // If the classes includes a language extensions, use it. + // Language extensions can be specified like + // <pre class="prettyprint lang-cpp"> + // the language extension "cpp" is used to find a language handler as + // passed to PR.registerLangHandler. + var langExtension = cs.className.match(/\blang-(\w+)\b/); + if (langExtension) { langExtension = langExtension[1]; } + + // make sure this is not nested in an already prettified element + var nested = false; + for (var p = cs.parentNode; p; p = p.parentNode) { + if ((p.tagName === 'pre' || p.tagName === 'code' || + p.tagName === 'xmp') && + p.className && p.className.indexOf('prettyprint') >= 0) { + nested = true; + break; + } + } + if (!nested) { + // Look for a class like linenums or linenums:<n> where <n> is the + // 1-indexed number of the first line. + var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/); + lineNums = lineNums + ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true + : false; + if (lineNums) { numberLines(cs, lineNums); } + + // do the pretty printing + prettyPrintingJob = { + langExtension: langExtension, + sourceNode: cs, + numberLines: lineNums + }; + applyDecorator(prettyPrintingJob); + } + } + } + if (k < elements.length) { + // finish up in a continuation + setTimeout(doWork, 250); + } else if (opt_whenDone) { + opt_whenDone(); + } + } + + doWork(); + } + + window['prettyPrintOne'] = prettyPrintOne; + window['prettyPrint'] = prettyPrint; + window['PR'] = { + 'createSimpleLexer': createSimpleLexer, + 'registerLangHandler': registerLangHandler, + 'sourceDecorator': sourceDecorator, + 'PR_ATTRIB_NAME': PR_ATTRIB_NAME, + 'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE, + 'PR_COMMENT': PR_COMMENT, + 'PR_DECLARATION': PR_DECLARATION, + 'PR_KEYWORD': PR_KEYWORD, + 'PR_LITERAL': PR_LITERAL, + 'PR_NOCODE': PR_NOCODE, + 'PR_PLAIN': PR_PLAIN, + 'PR_PUNCTUATION': PR_PUNCTUATION, + 'PR_SOURCE': PR_SOURCE, + 'PR_STRING': PR_STRING, + 'PR_TAG': PR_TAG, + 'PR_TYPE': PR_TYPE + }; +})();
--- a/prosym.mm Mon Nov 30 23:47:27 2015 +0900 +++ b/prosym.mm Tue Dec 22 17:02:46 2015 +0900 @@ -1,13 +1,13 @@ <map version="1.0.1"> <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> -<node CREATED="1445930085318" ID="ID_675137741" MODIFIED="1448621540701" TEXT="prosym"> +<node CREATED="1445930085318" ID="ID_675137741" MODIFIED="1450757309063" TEXT="prosym"> <font NAME="SansSerif" SIZE="23"/> -<node CREATED="1445933322023" ID="ID_1627829708" MODIFIED="1448710629477" POSITION="right" TEXT="研究目的"> +<node CREATED="1445933322023" ID="ID_1627829708" MODIFIED="1450663118147" POSITION="right" TEXT="研究目的"> <node CREATED="1445935104235" ID="ID_964817693" MODIFIED="1445935136696" TEXT="PCを用いてコミュニケーションの充実を図る"/> <node CREATED="1445935117122" ID="ID_992983627" MODIFIED="1448710622609" TEXT="円滑にゼミや講義を行う"/> -<node CREATED="1448791271223" ID="ID_528744381" MODIFIED="1448791280820" TEXT="従来の方法"> -<node CREATED="1448791289841" ID="ID_342914125" MODIFIED="1448791296762" TEXT="プロジェクター"> -<node CREATED="1448791297191" ID="ID_1780764583" MODIFIED="1448791303425" TEXT="発表者毎にコネクタを差し替える"> +<node CREATED="1448791271223" FOLDED="true" ID="ID_528744381" MODIFIED="1450663117280" TEXT="従来の方法"> +<node CREATED="1448791289841" FOLDED="true" ID="ID_342914125" MODIFIED="1450663116996" TEXT="プロジェクター"> +<node CREATED="1448791297191" FOLDED="true" ID="ID_1780764583" MODIFIED="1450663116774" TEXT="発表者毎にコネクタを差し替える"> <node CREATED="1448791308466" ID="ID_1393232019" MODIFIED="1448791330024" TEXT="ケーブルの差し替えあり"/> <node CREATED="1448791332247" ID="ID_186347548" MODIFIED="1448791425315" TEXT="みんなプロジェクターを見るため,手元のPCが役に立たない"/> <node CREATED="1448791344292" ID="ID_1897634584" MODIFIED="1448791353526" TEXT="発表者のPCの解像度等の設定"/> @@ -16,107 +16,109 @@ </node> </node> </node> -<node CREATED="1448710629799" ID="ID_1519102434" MODIFIED="1448710633548" TEXT="ゼミ"> -<node CREATED="1448710676336" ID="ID_1488019222" MODIFIED="1448710743625" TEXT="発表する人が共有元"> +<node CREATED="1448710629799" FOLDED="true" ID="ID_1519102434" MODIFIED="1450663117281" TEXT="ゼミ"> +<node CREATED="1448710676336" FOLDED="true" ID="ID_1488019222" MODIFIED="1450663116996" TEXT="発表する人が共有元"> <node CREATED="1448708729696" ID="ID_1645080458" MODIFIED="1448708762111" TEXT="ルートが見るVNCを変更することで、ケーブル差し替えなしに画面の切替可能"/> </node> -<node CREATED="1448710783657" ID="ID_956415100" MODIFIED="1448710842001" TEXT="マルチディスプレイを使用している人がいる"> -<node CREATED="1448710832492" ID="ID_497634303" MODIFIED="1448710834272" TEXT="新機能"> +<node CREATED="1448710783657" FOLDED="true" ID="ID_956415100" MODIFIED="1450663116997" TEXT="マルチディスプレイを使用している人がいる"> +<node CREATED="1448710832492" FOLDED="true" ID="ID_497634303" MODIFIED="1450663116774" TEXT="新機能"> <node CREATED="1448710845407" ID="ID_231161709" MODIFIED="1448710855388" TEXT="ディスプレイの選択"/> -<node CREATED="1448710858224" ID="ID_978643571" MODIFIED="1448710865333" TEXT="解像度"> +<node CREATED="1448710858224" FOLDED="true" ID="ID_978643571" MODIFIED="1450663116720" TEXT="解像度"> <node CREATED="1448710866795" ID="ID_1733240443" MODIFIED="1448710871299" TEXT="retina対応"/> </node> </node> </node> <node CREATED="1448710916492" ID="ID_824949690" MODIFIED="1448710922167" TEXT="無線LAN"/> </node> -<node CREATED="1448710637938" ID="ID_912579271" MODIFIED="1448710641249" TEXT="講義"> +<node CREATED="1448710637938" FOLDED="true" ID="ID_912579271" MODIFIED="1450663117281" TEXT="講義"> <node CREATED="1448710671509" ID="ID_1863241390" MODIFIED="1448710674296" TEXT="大人数"/> -<node CREATED="1448710682416" ID="ID_121266279" MODIFIED="1448710689703" TEXT="それぞれのPCに画面を表示する"> +<node CREATED="1448710682416" FOLDED="true" ID="ID_121266279" MODIFIED="1450663116997" TEXT="それぞれのPCに画面を表示する"> <node CREATED="1448708546211" ID="ID_293185614" MODIFIED="1448708564967" TEXT="信頼性を高く サーバーに負荷が集中しないように"/> </node> <node CREATED="1448710702366" ID="ID_517123751" MODIFIED="1448710711229" TEXT="先生の画面が共有元"/> <node CREATED="1448710721837" ID="ID_1898241478" MODIFIED="1448710730853" TEXT="プロジェクターにも表示"/> </node> -<node CREATED="1445935141327" ID="ID_1960793402" MODIFIED="1445935159103" TEXT="新機能を実装した。"> +<node CREATED="1445935141327" FOLDED="true" ID="ID_1960793402" MODIFIED="1450663117282" TEXT="新機能を実装した。"> <node CREATED="1448710082153" ID="ID_619513476" MODIFIED="1448710084506" TEXT="マルチディスプレイ"/> <node CREATED="1448710085545" ID="ID_720448685" MODIFIED="1448710086586" TEXT="WAN"/> </node> -<node CREATED="1448710881563" ID="ID_579145598" MODIFIED="1448710884755" TEXT="遠隔地"> -<node CREATED="1448710888660" ID="ID_1904367985" MODIFIED="1448710905045" TEXT="NATごえ"> +<node CREATED="1448710881563" FOLDED="true" ID="ID_579145598" MODIFIED="1450663117282" TEXT="遠隔地"> +<node CREATED="1448710888660" FOLDED="true" ID="ID_1904367985" MODIFIED="1450663116998" TEXT="NATごえ"> <node CREATED="1448710899315" ID="ID_210078048" MODIFIED="1448710899315" TEXT=""/> </node> </node> -<node CREATED="1448791515017" ID="ID_583602879" MODIFIED="1448792601000" TEXT="流れ"> -<node CREATED="1448791581361" ID="ID_250158240" MODIFIED="1448791588480" TEXT="通常の授業"> +<node CREATED="1448791515017" FOLDED="true" ID="ID_583602879" MODIFIED="1450663117283" TEXT="流れ"> +<node CREATED="1448791581361" FOLDED="true" ID="ID_250158240" MODIFIED="1450663116998" TEXT="通常の授業"> <node CREATED="1448791588480" ID="ID_1280585901" MODIFIED="1448791596087" TEXT="先生の資料をみる"/> <node CREATED="1448791973884" ID="ID_1086766821" MODIFIED="1448791979132" TEXT="先生のPC画面を見る"/> </node> -<node CREATED="1448791597373" ID="ID_1210613650" MODIFIED="1448791599117" TEXT="ゼミ"> +<node CREATED="1448791597373" FOLDED="true" ID="ID_1210613650" MODIFIED="1450663116998" TEXT="ゼミ"> <node CREATED="1448791599118" ID="ID_921725129" MODIFIED="1448791610838" TEXT="発表者が切り替わる"/> </node> -<node CREATED="1448791612602" ID="ID_1923953794" MODIFIED="1448791693032" TEXT="従来の方法"> +<node CREATED="1448791612602" FOLDED="true" ID="ID_1923953794" MODIFIED="1450663116999" TEXT="従来の方法"> <node CREATED="1448791620856" ID="ID_1622611186" MODIFIED="1448791629014" TEXT="プロジェクター"/> <node CREATED="1448791644508" ID="ID_373810223" MODIFIED="1448791668754" TEXT="参加者は手元のPCを使わずにプロジェクタをみる"/> <node CREATED="1448791631071" ID="ID_1419000173" MODIFIED="1448791642972" TEXT="発表者の変更はケーブルの差し替え"/> </node> -<node CREATED="1448791695747" ID="ID_953032224" MODIFIED="1448791703585" TEXT="従来の方法の問題点"> -<node CREATED="1448791713424" ID="ID_1673503536" MODIFIED="1448791724024" TEXT="ケーブルの差し替えが手間"> +<node CREATED="1448791695747" FOLDED="true" ID="ID_953032224" MODIFIED="1450663116999" TEXT="従来の方法の問題点"> +<node CREATED="1448791713424" FOLDED="true" ID="ID_1673503536" MODIFIED="1450663116775" TEXT="ケーブルの差し替えが手間"> <node CREATED="1448791728428" ID="ID_1771952007" MODIFIED="1448791732672" TEXT="ケーブルの種類"/> <node CREATED="1448791733839" ID="ID_1441235416" MODIFIED="1448791752782" TEXT="設定"/> </node> -<node CREATED="1448791726046" ID="ID_1462042451" MODIFIED="1448791769222" TEXT="手元のPCが全く使わない"> +<node CREATED="1448791726046" FOLDED="true" ID="ID_1462042451" MODIFIED="1450663116775" TEXT="手元のPCが全く使わない"> <node CREATED="1448791790932" ID="ID_935754467" MODIFIED="1448791826547" TEXT="参加者は手元のPC使わずににプロジェクターを見ている"/> <node CREATED="1448791820561" ID="ID_1756347722" MODIFIED="1448791843054" TEXT="手元のPCとプロジェクターを行き来するため目が疲れる"/> </node> </node> -<node CREATED="1448791672730" ID="ID_489868733" MODIFIED="1448791859313" TEXT="TreeVNCの方式"> +<node CREATED="1448791672730" FOLDED="true" ID="ID_489868733" MODIFIED="1450663117000" TEXT="TreeVNCの方式"> <node CREATED="1448791848398" ID="ID_1141511590" MODIFIED="1448791877232" TEXT="ケーブルの差し替なし発表者を変更できる"/> -<node CREATED="1448791894385" ID="ID_1721800959" MODIFIED="1448791910825" TEXT="手元のPCに発表者の画面が写っている"> +<node CREATED="1448791894385" FOLDED="true" ID="ID_1721800959" MODIFIED="1450663116776" TEXT="手元のPCに発表者の画面が写っている"> <node CREATED="1448791911321" ID="ID_339342940" MODIFIED="1448791933177" TEXT="スクリーンショットなど画面のメモを行える "/> <node CREATED="1448791935734" ID="ID_94301815" MODIFIED="1448791965017" TEXT="基本的にプロジェクターを見る必要はない(手元のPCのみを見れば良い)"/> </node> </node> -<node CREATED="1448792042409" ID="ID_872832228" MODIFIED="1448792067376" TEXT="TreeVNCの簡単な構造"> -<node CREATED="1448791985673" ID="ID_67866851" MODIFIED="1448791994948" TEXT="負荷の問題"> +<node CREATED="1448792042409" FOLDED="true" ID="ID_872832228" MODIFIED="1450663117000" TEXT="TreeVNCの簡単な構造"> +<node CREATED="1448791985673" FOLDED="true" ID="ID_67866851" MODIFIED="1450663116776" TEXT="負荷の問題"> <node CREATED="1448791995196" ID="ID_515811900" MODIFIED="1448792715297" TEXT="解決木構造で"/> </node> </node> -<node CREATED="1448792076135" ID="ID_1015686735" MODIFIED="1448792609554" TEXT="TreeVNC 問題点 & 新機能"> +<node CREATED="1448792076135" FOLDED="true" ID="ID_1015686735" MODIFIED="1450663117001" TEXT="TreeVNC 問題点 & 新機能"> <node CREATED="1448792095603" ID="ID_1849395650" MODIFIED="1448792117117" TEXT="ゼミでマルチディスプレイを使ってる人がいる"/> <node CREATED="1448792118796" ID="ID_728281180" MODIFIED="1448792140884" TEXT="別のネットワークを使用している人が参加できない"/> <node CREATED="1448792143406" ID="ID_1681923267" MODIFIED="1448792623738" TEXT="NATを越えた接続ができない"/> </node> </node> </node> -<node CREATED="1445931170208" ID="ID_1557707622" MODIFIED="1445931183955" POSITION="right" TEXT="treevnc について"> -<node CREATED="1448707561231" ID="ID_1370896905" MODIFIED="1448707564987" TEXT="通常のVNC"> +<node CREATED="1445931170208" ID="ID_1557707622" MODIFIED="1450663118152" POSITION="right" TEXT="treevnc について"> +<node CREATED="1448707561231" FOLDED="true" ID="ID_1370896905" MODIFIED="1450663117283" TEXT="通常のVNC"> <node CREATED="1448707570906" ID="ID_711821521" MODIFIED="1448707578658" TEXT="サーバー1に対して多数のクライアント"/> <node CREATED="1448709344902" ID="ID_828735520" MODIFIED="1448709353399" TEXT="サーバーに負荷がかかる"/> </node> <node CREATED="1445931191725" ID="ID_1765259491" MODIFIED="1445931197171" TEXT="RFBプロトコル"/> <node CREATED="1445931183956" ID="ID_1017193736" MODIFIED="1445931189139" TEXT="Tight VNC"/> -<node CREATED="1445931801658" ID="ID_1809843378" MODIFIED="1445931808093" TEXT="TreeVNCの構造"> +<node CREATED="1445931801658" ID="ID_1809843378" MODIFIED="1450766095423" TEXT="TreeVNCの構造"> <node CREATED="1448707588022" ID="ID_1657579029" MODIFIED="1448707603776" TEXT="Tight VNC を元に開発(Java)"/> -<node CREATED="1445934896820" ID="ID_1398539703" MODIFIED="1448711073890" TEXT="バイナリツリー"> +<node CREATED="1445934896820" FOLDED="true" ID="ID_1398539703" MODIFIED="1450663117001" TEXT="バイナリツリー"> <node CREATED="1448709357623" ID="ID_1778042808" MODIFIED="1448709368173" TEXT="サーバーへの負荷を分散"/> <node CREATED="1448711053541" ID="ID_1162091454" MODIFIED="1448711061915" TEXT="最大2つしか通信しない"/> <node CREATED="1448711063105" ID="ID_1777520283" MODIFIED="1448711071531" TEXT="段数分しかdelayしない"/> <node CREATED="1448711270150" ID="ID_1384636979" MODIFIED="1448711279759" TEXT="計算方法谷成さんの修論にある"/> </node> -<node CREATED="1445934911108" ID="ID_1630472567" MODIFIED="1448859256343" TEXT="node 間のメッセージ通信"> +<node CREATED="1445934911108" ID="ID_1630472567" MODIFIED="1450766095426" TEXT="node 間のメッセージ通信"> <node CREATED="1448708616343" ID="ID_1485989477" MODIFIED="1448708651328" TEXT="メッセージ通信の表はあまりにも小さすぎる"/> <node CREATED="1448858897771" ID="ID_644004873" MODIFIED="1448858909927" TEXT="通信の経路の説明が必要"/> -<node CREATED="1448859258241" ID="ID_447723103" MODIFIED="1448859266112" TEXT="Frame Buffer update の載せられる"/> +<node CREATED="1448859258241" ID="ID_447723103" MODIFIED="1450766102383" TEXT="Frame Buffer update の載せられる"> +<font NAME="SansSerif" SIZE="6"/> +</node> </node> </node> <node CREATED="1445931791442" ID="ID_1147767082" MODIFIED="1445931796810" TEXT="画面切り替え"/> <node CREATED="1448711171343" ID="ID_11772000" MODIFIED="1448711189169" TEXT="node抜けた時にtreeの構成を維持する"/> -<node CREATED="1448711436683" ID="ID_647200812" MODIFIED="1448711460394" TEXT="参加したクライアントはマルチキャストにルートを見つける"> +<node CREATED="1448711436683" FOLDED="true" ID="ID_647200812" MODIFIED="1450663117284" TEXT="参加したクライアントはマルチキャストにルートを見つける"> <node CREATED="1448711484529" ID="ID_1609998665" MODIFIED="1448711491303" TEXT="見つからない場合は直接hostを指定"/> </node> <node CREATED="1445931820354" ID="ID_299141483" MODIFIED="1445931825872" TEXT="Muliticast Queue"/> -<node CREATED="1448709087250" ID="ID_1508177452" MODIFIED="1448711230291" TEXT="問題点"> +<node CREATED="1448709087250" FOLDED="true" ID="ID_1508177452" MODIFIED="1450663117285" TEXT="問題点"> <node CREATED="1448709091568" ID="ID_90043180" MODIFIED="1448711295477" TEXT="単一LANにしか対応していなかった"/> <node CREATED="1448709105429" ID="ID_1931507468" MODIFIED="1448709120569" TEXT="マルチディスプレイの場合、全ての画面データが送られる"/> <node CREATED="1448709554419" ID="ID_903909331" MODIFIED="1448709561773" TEXT="パケットが詰まる"/> @@ -124,23 +126,23 @@ <node CREATED="1448711305962" ID="ID_440007573" MODIFIED="1448711311662" TEXT="NAT超えができなかった"/> </node> </node> -<node CREATED="1445931677448" ID="ID_827096885" MODIFIED="1445931682839" POSITION="right" TEXT="Tree VNCの新機能"> -<node CREATED="1445931734465" ID="ID_1208797584" MODIFIED="1448708950035" TEXT="QUALITYモード, SPEEDモード"> +<node CREATED="1445931677448" ID="ID_827096885" MODIFIED="1450663118155" POSITION="right" TEXT="Tree VNCの新機能"> +<node CREATED="1445931734465" FOLDED="true" ID="ID_1208797584" MODIFIED="1450663117285" TEXT="QUALITYモード, SPEEDモード"> <node CREATED="1445935281767" ID="ID_1777115192" MODIFIED="1445935291504" TEXT="windowのoptionで選択可能"/> <node CREATED="1448708950247" ID="ID_1997684813" MODIFIED="1448708954857" TEXT="これ新機能にいれる?"/> </node> -<node CREATED="1445931750285" ID="ID_867416524" MODIFIED="1445931755037" TEXT="マルチディスプレイ対応"> +<node CREATED="1445931750285" FOLDED="true" ID="ID_867416524" MODIFIED="1450663117286" TEXT="マルチディスプレイ対応"> <node CREATED="1445935293033" ID="ID_334245462" MODIFIED="1445935319856" TEXT="--filterSingleDisplay"/> <node CREATED="1445935327641" ID="ID_1839126687" MODIFIED="1445935341463" TEXT="shareする人が選択する方式にしたい"/> <node CREATED="1447059445587" ID="ID_905485729" MODIFIED="1447059538239" TEXT="選択したscreenの左上と右下をserverChangeReqestで送る、その範囲の指定し、rootからupdate reqestを送る"/> <node CREATED="1448794815480" ID="ID_1833189417" MODIFIED="1448794823530" TEXT="Retinaディスプレイ入れたほうが良い"/> </node> -<node CREATED="1445938308271" ID="ID_822542723" MODIFIED="1445938312573" TEXT="無線LANとの混在"> +<node CREATED="1445938308271" FOLDED="true" ID="ID_822542723" MODIFIED="1450663117286" TEXT="無線LANとの混在"> <node CREATED="1448709037286" ID="ID_1602211998" MODIFIED="1448709608014" TEXT="インターフェース毎に木を生成"/> <node CREATED="1448792251187" ID="ID_1930668828" MODIFIED="1448792269225" TEXT="無線を発表者用にすれば結構さくさく"/> </node> -<node CREATED="1445931727411" ID="ID_1830466166" MODIFIED="1445931731550" TEXT="WANの対応"> -<node CREATED="1445931828231" ID="ID_836904929" MODIFIED="1445933450607" TEXT="Direct ModeでWANへの対応を行う"> +<node CREATED="1445931727411" FOLDED="true" ID="ID_1830466166" MODIFIED="1450663117287" TEXT="WANの対応"> +<node CREATED="1445931828231" FOLDED="true" ID="ID_836904929" MODIFIED="1450663117002" TEXT="Direct ModeでWANへの対応を行う"> <node CREATED="1448711515341" ID="ID_568959382" MODIFIED="1448711558763" TEXT="これによりNAT超えが可能"/> <node CREATED="1448711574803" ID="ID_611087550" MODIFIED="1448711587917" TEXT="where to connect -> connect to を無視"/> <node CREATED="1448711589265" ID="ID_750650101" MODIFIED="1448711599488" TEXT="木の構成には入っていない"/> @@ -150,17 +152,17 @@ <node CREATED="1448794083813" ID="ID_553684677" MODIFIED="1448794089614" TEXT="NATを越えた事を書く"/> </node> </node> -<node CREATED="1445931697349" ID="ID_1856783845" MODIFIED="1448711712794" POSITION="right" TEXT="Tree VNCの評価"> -<node CREATED="1445938248614" ID="ID_1377825176" MODIFIED="1448709694557" TEXT="遅延速度"> +<node CREATED="1445931697349" ID="ID_1856783845" MODIFIED="1450663118156" POSITION="right" TEXT="Tree VNCの評価"> +<node CREATED="1445938248614" FOLDED="true" ID="ID_1377825176" MODIFIED="1450663117287" TEXT="遅延速度"> <node CREATED="1445938278541" ID="ID_1053633223" MODIFIED="1445938300645" TEXT="OCさんのやつをそのまま使うか、checkdelayの奴をonにするか"/> -<node CREATED="1448706786214" ID="ID_1716984535" MODIFIED="1448711926982" TEXT="容量込みの遅延を測定"> +<node CREATED="1448706786214" FOLDED="true" ID="ID_1716984535" MODIFIED="1450663117002" TEXT="容量込みの遅延を測定"> <node CREATED="1448707385327" ID="ID_557647618" MODIFIED="1448707398943" TEXT="グラフは全部乗っける"/> <node CREATED="1448707711277" ID="ID_1076173589" MODIFIED="1448707719628" TEXT="一応比例しているところが"/> -<node CREATED="1448707400336" ID="ID_1834491492" MODIFIED="1448707650645" TEXT="容量が小さくても時間がかかる場所が"> +<node CREATED="1448707400336" FOLDED="true" ID="ID_1834491492" MODIFIED="1450663116777" TEXT="容量が小さくても時間がかかる場所が"> <node CREATED="1448707650646" ID="ID_830674535" MODIFIED="1448707737987" TEXT="大容量の画像の送信の後のdelayが残っている?"/> </node> -<node CREATED="1448706797946" ID="ID_546956630" MODIFIED="1448707412871" TEXT="極端遅いやつがいる"> -<node CREATED="1448707412872" ID="ID_1332684961" MODIFIED="1448707468295" TEXT="java 1.8 update 25 当たりは動作が重い"> +<node CREATED="1448706797946" FOLDED="true" ID="ID_546956630" MODIFIED="1450663116777" TEXT="極端遅いやつがいる"> +<node CREATED="1448707412872" FOLDED="true" ID="ID_1332684961" MODIFIED="1450663116721" TEXT="java 1.8 update 25 当たりは動作が重い"> <node CREATED="1448708825763" ID="ID_1522605266" MODIFIED="1448708878404" TEXT="Alice VNC でも viewerが上がらないclientが"/> <node CREATED="1448708881082" ID="ID_1249836474" MODIFIED="1448708887194" TEXT="Swing 関連?"/> </node> @@ -169,79 +171,137 @@ </node> </node> </node> -<node CREATED="1445931705061" ID="ID_1557032393" MODIFIED="1445931718941" POSITION="right" TEXT="まとめ, 今後の課題"> -<node CREATED="1445932141204" ID="ID_835135352" MODIFIED="1445932143298" TEXT="安定化"> +<node CREATED="1445931705061" ID="ID_1557032393" MODIFIED="1450663118159" POSITION="right" TEXT="まとめ, 今後の課題"> +<node CREATED="1445932141204" FOLDED="true" ID="ID_835135352" MODIFIED="1450663117287" TEXT="安定化"> <node CREATED="1448707502598" ID="ID_613933119" MODIFIED="1448707521380" TEXT="遅いやつを検出して、一番下の深さまで移動"/> -<node CREATED="1445932171459" ID="ID_1070148801" MODIFIED="1445932180803" TEXT="SCRを飛ばせないモードを作る"> +<node CREATED="1445932171459" FOLDED="true" ID="ID_1070148801" MODIFIED="1450663117003" TEXT="SCRを飛ばせないモードを作る"> <node CREATED="1448707749967" ID="ID_172170152" MODIFIED="1448707756353" TEXT="最初の一つだけ特別扱い?"/> <node CREATED="1448707757703" ID="ID_65009830" MODIFIED="1448707764225" TEXT="暗証番号?"/> </node> </node> <node CREATED="1445932144564" ID="ID_1970340121" MODIFIED="1445932157978" TEXT="usabilityの向上"/> -<node CREATED="1445934409865" ID="ID_1565374263" MODIFIED="1445934414215" TEXT="卒論から"> +<node CREATED="1445934409865" FOLDED="true" ID="ID_1565374263" MODIFIED="1450663117288" TEXT="卒論から"> <node CREATED="1445934325168" ID="ID_1337451527" MODIFIED="1445934328107" TEXT="音声"/> <node CREATED="1445934328541" ID="ID_991347153" MODIFIED="1445934340050" TEXT="記録?"/> <node CREATED="1445934340772" ID="ID_862407380" MODIFIED="1445934359690" TEXT="質問・意見の共有"/> <node CREATED="1445934363595" ID="ID_986217465" MODIFIED="1445934378395" TEXT="MindMapでの書記 "/> </node> -<node CREATED="1448707538793" ID="ID_282144835" MODIFIED="1448707556378" TEXT="新機能の評価, 評価方法"> +<node CREATED="1448707538793" FOLDED="true" ID="ID_282144835" MODIFIED="1450663117288" TEXT="新機能の評価, 評価方法"> <node CREATED="1448708449574" ID="ID_671996250" MODIFIED="1448708463606" TEXT="マルチディスプレイは容量の差をみる?"/> -<node CREATED="1448708465176" ID="ID_437912697" MODIFIED="1448708492079" TEXT="WANへの対応はさくらを使ってみる"> +<node CREATED="1448708465176" FOLDED="true" ID="ID_437912697" MODIFIED="1450663117003" TEXT="WANへの対応はさくらを使ってみる"> <node CREATED="1448708481570" ID="ID_188502563" MODIFIED="1448708487445" TEXT="CUI versionを復活させる"/> <node CREATED="1448708488559" ID="ID_672172816" MODIFIED="1448708518820" TEXT="IPv6 に対応させる"/> </node> </node> </node> -<node CREATED="1448621541278" ID="ID_291938664" MODIFIED="1448709184567" POSITION="left" TEXT="コメントfeedback"> -<node CREATED="1448621546345" ID="ID_1754867891" MODIFIED="1448621553205" TEXT="もうちょい構成を考えたほうが良い"> -<node CREATED="1448621768826" ID="ID_561056340" MODIFIED="1448621792201" TEXT="TreeVNCを誰が作ったのか、TightVNCと何が違うのか 明確な区分ができていない"> +<node CREATED="1448621541278" ID="ID_291938664" MODIFIED="1450663118163" POSITION="left" TEXT="コメントfeedback"> +<node CREATED="1448621546345" FOLDED="true" ID="ID_1754867891" MODIFIED="1450663117289" TEXT="もうちょい構成を考えたほうが良い"> +<node CREATED="1448621768826" FOLDED="true" ID="ID_561056340" MODIFIED="1450663117004" TEXT="TreeVNCを誰が作ったのか、TightVNCと何が違うのか 明確な区分ができていない"> <node CREATED="1448638711227" ID="ID_1337077548" MODIFIED="1448638717592" TEXT="いつ作ったか"/> </node> -<node CREATED="1448622093939" ID="ID_1099493369" MODIFIED="1448622100040" TEXT="そもそも前提がわからない"> +<node CREATED="1448622093939" FOLDED="true" ID="ID_1099493369" MODIFIED="1450663117004" TEXT="そもそも前提がわからない"> <node CREATED="1448622106105" ID="ID_1049581024" MODIFIED="1448622126823" TEXT="ユーザとかroot, ndoe, VNC Server の関係"/> <node CREATED="1448638743816" ID="ID_372820006" MODIFIED="1448638762843" TEXT="root node は1クライアントにすぎないのか"/> </node> -<node CREATED="1448638805819" ID="ID_1237772580" MODIFIED="1448710149135" TEXT="TreeVNCの改良"> +<node CREATED="1448638805819" FOLDED="true" ID="ID_1237772580" MODIFIED="1450663117004" TEXT="TreeVNCの改良"> <node CREATED="1448638831814" ID="ID_1668625971" MODIFIED="1448638854625" TEXT="2章の説明中に改良の動機を作るべき"/> </node> -<node CREATED="1448638811594" ID="ID_451882228" MODIFIED="1448708668882" TEXT="subsectionに分けたほうが良い"> +<node CREATED="1448638811594" FOLDED="true" ID="ID_451882228" MODIFIED="1450663117005" TEXT="subsectionに分けたほうが良い"> <node CREATED="1448707802047" ID="ID_1130760772" MODIFIED="1448707814953" TEXT="treeVNCの概要"/> <node CREATED="1448707815441" ID="ID_1992106254" MODIFIED="1448707818646" TEXT="新機能"/> </node> </node> -<node CREATED="1448621555565" ID="ID_1326121353" MODIFIED="1448621563795" TEXT="評価の部分が今回の目的と合っていない"> +<node CREATED="1448621555565" FOLDED="true" ID="ID_1326121353" MODIFIED="1450663117289" TEXT="評価の部分が今回の目的と合っていない"> <node CREATED="1448707834240" ID="ID_645485380" MODIFIED="1448708433284" TEXT="評価を後ろじゃなくて新機能の前に作る?"/> <node CREATED="1448708433623" ID="ID_409983059" MODIFIED="1448708443824" TEXT="新機能の評価は今後の課題"/> </node> -<node CREATED="1448621565085" ID="ID_842474829" MODIFIED="1448621728666" TEXT="check delayが画像データを含んでいるの?"> +<node CREATED="1448621565085" FOLDED="true" ID="ID_842474829" MODIFIED="1450663117289" TEXT="check delayが画像データを含んでいるの?"> <node CREATED="1448621583215" ID="ID_1385385559" MODIFIED="1448621591649" TEXT="含んでいなかったけど含むデータを撮った"/> -<node CREATED="1448621656423" ID="ID_981721712" MODIFIED="1448621760507" TEXT="あまりにも遅いclientがいる"> +<node CREATED="1448621656423" FOLDED="true" ID="ID_981721712" MODIFIED="1450663117005" TEXT="あまりにも遅いclientがいる"> <node CREATED="1448621669406" ID="ID_470168220" MODIFIED="1448621744886" TEXT="遅いclientを検出したらそれを一番下の深さに移動させる"/> </node> </node> -<node CREATED="1448621596554" ID="ID_651132384" MODIFIED="1448709422243" TEXT="WANへの対応はVPNでいいんじゃないの?"> -<node CREATED="1448621605349" ID="ID_399948822" MODIFIED="1448621628063" TEXT="VPNを含んだ木構造を考えると辛いものが"> +<node CREATED="1448621596554" FOLDED="true" ID="ID_651132384" MODIFIED="1450663117290" TEXT="WANへの対応はVPNでいいんじゃないの?"> +<node CREATED="1448621605349" FOLDED="true" ID="ID_399948822" MODIFIED="1450663117005" TEXT="VPNを含んだ木構造を考えると辛いものが"> <node CREATED="1448621629988" ID="ID_1162040386" MODIFIED="1448707886715" TEXT="1つだけ別ネットワークのclientが存在することに"/> </node> </node> -<node CREATED="1448709186229" ID="ID_910964564" MODIFIED="1448709537777" TEXT="なぜ、有線、無線を区別する必要があるのか?"> +<node CREATED="1448709186229" FOLDED="true" ID="ID_910964564" MODIFIED="1450663117290" TEXT="なぜ、有線、無線を区別する必要があるのか?"> <node CREATED="1448709191578" ID="ID_1326391656" MODIFIED="1448709462089" TEXT="有線と無線を1つのTreeにすると無線がボトルネックになってしまう"/> </node> </node> -<node CREATED="1448708971480" ID="ID_756132561" MODIFIED="1448710426723" POSITION="left" TEXT="他にやったこと"> +<node CREATED="1448708971480" ID="ID_756132561" MODIFIED="1450663118164" POSITION="left" TEXT="他にやったこと"> <node CREATED="1445931766673" ID="ID_1616760154" MODIFIED="1445938337580" TEXT="別threadでのSCR(server change request)"/> -<node CREATED="1445931756874" ID="ID_566498368" MODIFIED="1445931762971" TEXT="Retinaの対応"> +<node CREATED="1445931756874" FOLDED="true" ID="ID_566498368" MODIFIED="1450663117290" TEXT="Retinaの対応"> <node CREATED="1445935344590" ID="ID_1999819197" MODIFIED="1445935363509" TEXT="initDataで拡大率を送る"/> </node> </node> -<node CREATED="1448709704331" ID="ID_1140458426" MODIFIED="1448709874267" POSITION="right" TEXT="参考文献"> +<node CREATED="1448709704331" ID="ID_1140458426" MODIFIED="1450663118166" POSITION="right" TEXT="参考文献"> <node CREATED="1448709725035" ID="ID_1738514623" MODIFIED="1448709857339" TEXT="谷成さんのOS研究会"/> <node CREATED="1448709859316" ID="ID_1378380724" MODIFIED="1448709864751" TEXT="OCさんの卒論"/> <node CREATED="1448709866071" ID="ID_557254929" MODIFIED="1448709872831" TEXT="TightVNC"/> <node CREATED="1448709874596" ID="ID_891653327" MODIFIED="1448709880703" TEXT="RFB protocol"/> -<node CREATED="1448709881848" ID="ID_808720936" MODIFIED="1448709930887" TEXT="谷成さんの修論を見ると他の参考文献があるかも"> +<node CREATED="1448709881848" FOLDED="true" ID="ID_808720936" MODIFIED="1450663117290" TEXT="谷成さんの修論を見ると他の参考文献があるかも"> <node CREATED="1448709900597" ID="ID_1496989607" MODIFIED="1448709904069" TEXT="なかった、、、"/> </node> </node> +<node CREATED="1450757309338" ID="ID_601577089" MODIFIED="1450757312641" POSITION="left" TEXT="発表資料"> +<node CREATED="1450757313222" ID="ID_1944194940" MODIFIED="1450757317280" TEXT="研究目的"> +<node CREATED="1450757317790" ID="ID_1744757619" MODIFIED="1450757380301" TEXT="ちょい短めにいつも講義でやってる奴位に"/> +</node> +<node CREATED="1450757382201" ID="ID_1082733183" MODIFIED="1450757392468" TEXT="TreeVNCの概要"> +<node CREATED="1450757392816" ID="ID_1777095197" MODIFIED="1450757590514" TEXT="従来のVNC"> +<node CREATED="1450757573283" ID="ID_1902445702" MODIFIED="1450757577284" TEXT="VNCの問題点"/> +</node> +<node CREATED="1450757482098" ID="ID_1182628301" MODIFIED="1450757486709" TEXT="RFBプロトコル"/> +<node CREATED="1450757948348" ID="ID_457343293" MODIFIED="1450766752807" TEXT="構造"> +<node CREATED="1450757958044" ID="ID_1787926875" MODIFIED="1450757964914" TEXT="2分木"/> +<node CREATED="1450766753807" ID="ID_1191798948" MODIFIED="1450766764153" TEXT="Root Nodeの役割"> +<node CREATED="1450766764569" ID="ID_1131054842" MODIFIED="1450766774471" TEXT="VNCサーバーから流れてきたデータの管理"/> +<node CREATED="1450766774758" ID="ID_40462169" MODIFIED="1450766813574" TEXT="Node の管理"/> +<node CREATED="1450766813812" ID="ID_190105880" MODIFIED="1450766822980" TEXT="子Nodeにデータを流す"/> +</node> +<node CREATED="1450766826766" ID="ID_1375482880" MODIFIED="1450766832700" TEXT="他のノードの役割"> +<node CREATED="1450766832885" ID="ID_864714613" MODIFIED="1450766877345" TEXT="親Nodeから来たデータを子ノードに流す"/> +</node> +</node> +<node CREATED="1450757984642" ID="ID_709105308" MODIFIED="1450757990312" TEXT="Message通信"> +<node CREATED="1450758379845" ID="ID_244662456" MODIFIED="1450758403850" TEXT="Find root から connect の流れ"/> +</node> +<node CREATED="1450758362526" ID="ID_810818026" MODIFIED="1450758366517" TEXT="画面切り替え"/> +<node CREATED="1450758367998" ID="ID_1610091938" MODIFIED="1450758375315" TEXT="木の再構成"/> +<node CREATED="1450758409883" ID="ID_838592866" MODIFIED="1450758417786" TEXT="Muliticast Queue"/> +<node CREATED="1450758420138" ID="ID_1741505865" MODIFIED="1450758446801" TEXT="圧縮形式"/> +</node> +<node CREATED="1450758451112" ID="ID_493055400" MODIFIED="1450758457416" TEXT="TreeVNCの問題点"/> +<node CREATED="1450758469968" ID="ID_1042391168" MODIFIED="1450758476840" TEXT="Tree VNCの新機能"> +<node CREATED="1445931734465" ID="ID_1930012485" MODIFIED="1450758492376" TEXT="QUALITYモード, SPEEDモード"> +<node CREATED="1445935281767" ID="ID_612659368" MODIFIED="1445935291504" TEXT="windowのoptionで選択可能"/> +<node CREATED="1448708950247" ID="ID_1597519482" MODIFIED="1448708954857" TEXT="これ新機能にいれる?"/> +</node> +<node CREATED="1445931750285" FOLDED="true" ID="ID_1481417280" MODIFIED="1450758495616" TEXT="マルチディスプレイ対応"> +<node CREATED="1445935293033" ID="ID_178474299" MODIFIED="1445935319856" TEXT="--filterSingleDisplay"/> +<node CREATED="1445935327641" ID="ID_1497022908" MODIFIED="1445935341463" TEXT="shareする人が選択する方式にしたい"/> +<node CREATED="1447059445587" ID="ID_715667806" MODIFIED="1447059538239" TEXT="選択したscreenの左上と右下をserverChangeReqestで送る、その範囲の指定し、rootからupdate reqestを送る"/> +<node CREATED="1448794815480" ID="ID_1663918354" MODIFIED="1448794823530" TEXT="Retinaディスプレイ入れたほうが良い"/> +</node> +<node CREATED="1445938308271" FOLDED="true" ID="ID_1249628280" MODIFIED="1450663117286" TEXT="無線LANとの混在"> +<node CREATED="1448709037286" ID="ID_1326224688" MODIFIED="1448709608014" TEXT="インターフェース毎に木を生成"/> +<node CREATED="1448792251187" ID="ID_399932775" MODIFIED="1448792269225" TEXT="無線を発表者用にすれば結構さくさく"/> +</node> +<node CREATED="1445931727411" FOLDED="true" ID="ID_1827479573" MODIFIED="1450663117287" TEXT="WANの対応"> +<node CREATED="1445931828231" FOLDED="true" ID="ID_720991619" MODIFIED="1450663117002" TEXT="Direct ModeでWANへの対応を行う"> +<node CREATED="1448711515341" ID="ID_1791052547" MODIFIED="1448711558763" TEXT="これによりNAT超えが可能"/> +<node CREATED="1448711574803" ID="ID_64203605" MODIFIED="1448711587917" TEXT="where to connect -> connect to を無視"/> +<node CREATED="1448711589265" ID="ID_163952114" MODIFIED="1448711599488" TEXT="木の構成には入っていない"/> +</node> +<node CREATED="1448709055645" ID="ID_517428309" MODIFIED="1448709059851" TEXT="直接rootに接続"/> +<node CREATED="1448709069111" ID="ID_84558814" MODIFIED="1448709077211" TEXT="ネットワーク毎に木をつくる"/> +<node CREATED="1448794083813" ID="ID_365931711" MODIFIED="1448794089614" TEXT="NATを越えた事を書く"/> +</node> +</node> +<node CREATED="1450758480384" ID="ID_1508806837" MODIFIED="1450758505389" TEXT="測定"/> +<node CREATED="1450758505743" ID="ID_449222911" MODIFIED="1450758513678" TEXT="まとめ 課題"/> +</node> </node> </map>