You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ro...@apache.org on 2014/10/16 12:03:08 UTC

[1/4] New Query Options tray added

Repository: couchdb-fauxton
Updated Branches:
  refs/heads/master 5976c65db -> 332c7b535


http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/fonts/fauxtonicon.woff
----------------------------------------------------------------------
diff --git a/assets/fonts/fauxtonicon.woff b/assets/fonts/fauxtonicon.woff
index d228017..b02778e 100644
Binary files a/assets/fonts/fauxtonicon.woff and b/assets/fonts/fauxtonicon.woff differ

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/fonts/styleguide/fauxtonicon-preview.html
----------------------------------------------------------------------
diff --git a/assets/fonts/styleguide/fauxtonicon-preview.html b/assets/fonts/styleguide/fauxtonicon-preview.html
index 2081221..10ba192 100644
--- a/assets/fonts/styleguide/fauxtonicon-preview.html
+++ b/assets/fonts/styleguide/fauxtonicon-preview.html
@@ -197,6 +197,7 @@
 .fonticon-exchange:before,
 .fonticon-expand:before,
 .fonticon-eye:before,
+.fonticon-gears:before,
 .fonticon-help:before,
 .fonticon-help-circled:before,
 .fonticon-info-circled:before,
@@ -290,112 +291,113 @@
 .fonticon-arrow-box-up:before { content: "\f102"; }
 .fonticon-arrow_left:before { content: "\f103"; }
 .fonticon-arrow_right:before { content: "\f104"; }
-.fonticon-arrows-cw:before { content: "\f105"; }
-.fonticon-article:before { content: "\f106"; }
-.fonticon-attention-alt:before { content: "\f107"; }
-.fonticon-attention-circled:before { content: "\f108"; }
-.fonticon-block:before { content: "\f109"; }
-.fonticon-bookmark:before { content: "\f10a"; }
-.fonticon-bookmark-ribbon-wplus:before { content: "\f10b"; }
-.fonticon-burger:before { content: "\f10c"; }
-.fonticon-cancel:before { content: "\f10d"; }
-.fonticon-cancel-circled:before { content: "\f10e"; }
-.fonticon-cancel-circled2:before { content: "\f10f"; }
-.fonticon-circle-empty:before { content: "\f110"; }
-.fonticon-clipboard:before { content: "\f111"; }
-.fonticon-clock:before { content: "\f112"; }
-.fonticon-cog:before { content: "\f113"; }
-.fonticon-collapse:before { content: "\f114"; }
-.fonticon-cw:before { content: "\f115"; }
-.fonticon-dashboard:before { content: "\f116"; }
-.fonticon-database:before { content: "\f117"; }
-.fonticon-deselect-all:before { content: "\f118"; }
-.fonticon-document:before { content: "\f119"; }
-.fonticon-documents:before { content: "\f11a"; }
-.fonticon-dot-circled:before { content: "\f11b"; }
-.fonticon-down:before { content: "\f11c"; }
-.fonticon-down-1:before { content: "\f11d"; }
-.fonticon-down-circled:before { content: "\f11e"; }
-.fonticon-down-dir:before { content: "\f11f"; }
-.fonticon-down-open:before { content: "\f120"; }
-.fonticon-drop-down-dots:before { content: "\f121"; }
-.fonticon-exchange:before { content: "\f122"; }
-.fonticon-expand:before { content: "\f123"; }
-.fonticon-eye:before { content: "\f124"; }
-.fonticon-help:before { content: "\f125"; }
-.fonticon-help-circled:before { content: "\f126"; }
-.fonticon-info-circled:before { content: "\f127"; }
-.fonticon-json:before { content: "\f128"; }
-.fonticon-key:before { content: "\f129"; }
-.fonticon-left:before { content: "\f12a"; }
-.fonticon-left-1:before { content: "\f12b"; }
-.fonticon-left-circled:before { content: "\f12c"; }
-.fonticon-left-dir:before { content: "\f12d"; }
-.fonticon-left-open:before { content: "\f12e"; }
-.fonticon-link:before { content: "\f12f"; }
-.fonticon-list-alt:before { content: "\f130"; }
-.fonticon-lock:before { content: "\f131"; }
-.fonticon-mail:before { content: "\f132"; }
-.fonticon-mail-alt:before { content: "\f133"; }
-.fonticon-megaphone:before { content: "\f134"; }
-.fonticon-minus:before { content: "\f135"; }
-.fonticon-minus-circled:before { content: "\f136"; }
-.fonticon-minus-circled2:before { content: "\f137"; }
-.fonticon-minus-squared:before { content: "\f138"; }
-.fonticon-minus-squared-alt:before { content: "\f139"; }
-.fonticon-mixer:before { content: "\f13a"; }
-.fonticon-new-database:before { content: "\f13b"; }
-.fonticon-ok:before { content: "\f13c"; }
-.fonticon-ok-circled:before { content: "\f13d"; }
-.fonticon-ok-circled-2:before { content: "\f13e"; }
-.fonticon-paperclip:before { content: "\f13f"; }
-.fonticon-pencil:before { content: "\f140"; }
-.fonticon-picture:before { content: "\f141"; }
-.fonticon-play:before { content: "\f142"; }
-.fonticon-plus:before { content: "\f143"; }
-.fonticon-plus-circled:before { content: "\f144"; }
-.fonticon-plus-circled2:before { content: "\f145"; }
-.fonticon-plus-squared:before { content: "\f146"; }
-.fonticon-plus-squared-alt:before { content: "\f147"; }
-.fonticon-popin:before { content: "\f148"; }
-.fonticon-popout:before { content: "\f149"; }
-.fonticon-profile:before { content: "\f14a"; }
-.fonticon-replicate:before { content: "\f14b"; }
-.fonticon-reply:before { content: "\f14c"; }
-.fonticon-reply-all:before { content: "\f14d"; }
-.fonticon-resize-full:before { content: "\f14e"; }
-.fonticon-resize-full-reverse:before { content: "\f14f"; }
-.fonticon-resize-small:before { content: "\f150"; }
-.fonticon-resize-small-reverse:before { content: "\f151"; }
-.fonticon-right:before { content: "\f152"; }
-.fonticon-right-1:before { content: "\f153"; }
-.fonticon-right-circled:before { content: "\f154"; }
-.fonticon-right-dir:before { content: "\f155"; }
-.fonticon-right-open:before { content: "\f156"; }
-.fonticon-save:before { content: "\f157"; }
-.fonticon-search:before { content: "\f158"; }
-.fonticon-select-all:before { content: "\f159"; }
-.fonticon-sidenav-filter-function:before { content: "\f15a"; }
-.fonticon-sidenav-info:before { content: "\f15b"; }
-.fonticon-sidenav-list-function:before { content: "\f15c"; }
-.fonticon-sidenav-map-reduce:before { content: "\f15d"; }
-.fonticon-sidenav-search:before { content: "\f15e"; }
-.fonticon-sidenav-show-function:before { content: "\f15f"; }
-.fonticon-sidenav-update-function:before { content: "\f160"; }
-.fonticon-sitemap:before { content: "\f161"; }
-.fonticon-stats:before { content: "\f162"; }
-.fonticon-support:before { content: "\f163"; }
-.fonticon-swap-arrows:before { content: "\f164"; }
-.fonticon-table:before { content: "\f165"; }
-.fonticon-trash:before { content: "\f166"; }
-.fonticon-up:before { content: "\f167"; }
-.fonticon-up-1:before { content: "\f168"; }
-.fonticon-up-circled:before { content: "\f169"; }
-.fonticon-up-dir:before { content: "\f16a"; }
-.fonticon-up-open:before { content: "\f16b"; }
-.fonticon-user:before { content: "\f16c"; }
-.fonticon-users:before { content: "\f16d"; }
-.fonticon-wrench:before { content: "\f16e"; }
+.fonticon-arrows-cw:before { content: "\f106"; }
+.fonticon-article:before { content: "\f107"; }
+.fonticon-attention-alt:before { content: "\f108"; }
+.fonticon-attention-circled:before { content: "\f109"; }
+.fonticon-block:before { content: "\f10b"; }
+.fonticon-bookmark:before { content: "\f10c"; }
+.fonticon-bookmark-ribbon-wplus:before { content: "\f10d"; }
+.fonticon-burger:before { content: "\f10e"; }
+.fonticon-cancel:before { content: "\f10f"; }
+.fonticon-cancel-circled:before { content: "\f110"; }
+.fonticon-cancel-circled2:before { content: "\f111"; }
+.fonticon-circle-empty:before { content: "\f112"; }
+.fonticon-clipboard:before { content: "\f113"; }
+.fonticon-clock:before { content: "\f114"; }
+.fonticon-cog:before { content: "\f115"; }
+.fonticon-collapse:before { content: "\f116"; }
+.fonticon-cw:before { content: "\f117"; }
+.fonticon-dashboard:before { content: "\f118"; }
+.fonticon-database:before { content: "\f119"; }
+.fonticon-deselect-all:before { content: "\f11a"; }
+.fonticon-document:before { content: "\f11b"; }
+.fonticon-documents:before { content: "\f11c"; }
+.fonticon-dot-circled:before { content: "\f11d"; }
+.fonticon-down:before { content: "\f11e"; }
+.fonticon-down-1:before { content: "\f11f"; }
+.fonticon-down-circled:before { content: "\f120"; }
+.fonticon-down-dir:before { content: "\f121"; }
+.fonticon-down-open:before { content: "\f122"; }
+.fonticon-drop-down-dots:before { content: "\f124"; }
+.fonticon-exchange:before { content: "\f125"; }
+.fonticon-expand:before { content: "\f126"; }
+.fonticon-eye:before { content: "\f127"; }
+.fonticon-gears:before { content: "\f12b"; }
+.fonticon-help:before { content: "\f12c"; }
+.fonticon-help-circled:before { content: "\f12d"; }
+.fonticon-info-circled:before { content: "\f12e"; }
+.fonticon-json:before { content: "\f12f"; }
+.fonticon-key:before { content: "\f130"; }
+.fonticon-left:before { content: "\f131"; }
+.fonticon-left-1:before { content: "\f132"; }
+.fonticon-left-circled:before { content: "\f133"; }
+.fonticon-left-dir:before { content: "\f134"; }
+.fonticon-left-open:before { content: "\f135"; }
+.fonticon-link:before { content: "\f136"; }
+.fonticon-list-alt:before { content: "\f137"; }
+.fonticon-lock:before { content: "\f138"; }
+.fonticon-mail:before { content: "\f139"; }
+.fonticon-mail-alt:before { content: "\f13a"; }
+.fonticon-megaphone:before { content: "\f13b"; }
+.fonticon-minus:before { content: "\f13c"; }
+.fonticon-minus-circled:before { content: "\f13d"; }
+.fonticon-minus-circled2:before { content: "\f13e"; }
+.fonticon-minus-squared:before { content: "\f13f"; }
+.fonticon-minus-squared-alt:before { content: "\f140"; }
+.fonticon-mixer:before { content: "\f141"; }
+.fonticon-new-database:before { content: "\f142"; }
+.fonticon-ok:before { content: "\f143"; }
+.fonticon-ok-circled:before { content: "\f144"; }
+.fonticon-ok-circled-2:before { content: "\f145"; }
+.fonticon-paperclip:before { content: "\f146"; }
+.fonticon-pencil:before { content: "\f148"; }
+.fonticon-picture:before { content: "\f149"; }
+.fonticon-play:before { content: "\f14a"; }
+.fonticon-plus:before { content: "\f14b"; }
+.fonticon-plus-circled:before { content: "\f14c"; }
+.fonticon-plus-circled2:before { content: "\f14d"; }
+.fonticon-plus-squared:before { content: "\f14e"; }
+.fonticon-plus-squared-alt:before { content: "\f14f"; }
+.fonticon-popin:before { content: "\f150"; }
+.fonticon-popout:before { content: "\f151"; }
+.fonticon-profile:before { content: "\f152"; }
+.fonticon-replicate:before { content: "\f153"; }
+.fonticon-reply:before { content: "\f154"; }
+.fonticon-reply-all:before { content: "\f155"; }
+.fonticon-resize-full:before { content: "\f156"; }
+.fonticon-resize-full-reverse:before { content: "\f157"; }
+.fonticon-resize-small:before { content: "\f158"; }
+.fonticon-resize-small-reverse:before { content: "\f159"; }
+.fonticon-right:before { content: "\f15a"; }
+.fonticon-right-1:before { content: "\f15b"; }
+.fonticon-right-circled:before { content: "\f15c"; }
+.fonticon-right-dir:before { content: "\f15d"; }
+.fonticon-right-open:before { content: "\f15e"; }
+.fonticon-save:before { content: "\f15f"; }
+.fonticon-search:before { content: "\f160"; }
+.fonticon-select-all:before { content: "\f161"; }
+.fonticon-sidenav-filter-function:before { content: "\f162"; }
+.fonticon-sidenav-info:before { content: "\f163"; }
+.fonticon-sidenav-list-function:before { content: "\f164"; }
+.fonticon-sidenav-map-reduce:before { content: "\f165"; }
+.fonticon-sidenav-search:before { content: "\f166"; }
+.fonticon-sidenav-show-function:before { content: "\f167"; }
+.fonticon-sidenav-update-function:before { content: "\f168"; }
+.fonticon-sitemap:before { content: "\f169"; }
+.fonticon-stats:before { content: "\f16c"; }
+.fonticon-support:before { content: "\f170"; }
+.fonticon-swap-arrows:before { content: "\f171"; }
+.fonticon-table:before { content: "\f172"; }
+.fonticon-trash:before { content: "\f173"; }
+.fonticon-up:before { content: "\f174"; }
+.fonticon-up-1:before { content: "\f175"; }
+.fonticon-up-circled:before { content: "\f176"; }
+.fonticon-up-dir:before { content: "\f177"; }
+.fonticon-up-open:before { content: "\f178"; }
+.fonticon-user:before { content: "\f179"; }
+.fonticon-users:before { content: "\f17a"; }
+.fonticon-wrench:before { content: "\f17b"; }
     </style>
 
     <!--[if lte IE 8]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
@@ -411,7 +413,7 @@
   <body class="characters-off">
     <div id="page" class="container">
       <header>
-        <h1>fauxtonicon contains 111 glyphs:</h1>
+        <h1>fauxtonicon contains 112 glyphs:</h1>
         <a onclick="toggleCharacters(); return false;" href="#">Toggle Preview Characters</a>
       </header>
 
@@ -490,7 +492,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-arrows-cw" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf105;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf106;" />
         </div>
       </div>
       
@@ -503,7 +505,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-article" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf106;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf107;" />
         </div>
       </div>
       
@@ -516,7 +518,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-attention-alt" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf107;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf108;" />
         </div>
       </div>
       
@@ -529,7 +531,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-attention-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf108;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf109;" />
         </div>
       </div>
       
@@ -542,7 +544,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-block" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf109;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10b;" />
         </div>
       </div>
       
@@ -555,7 +557,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-bookmark" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10c;" />
         </div>
       </div>
       
@@ -568,7 +570,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-bookmark-ribbon-wplus" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10d;" />
         </div>
       </div>
       
@@ -581,7 +583,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-burger" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10e;" />
         </div>
       </div>
       
@@ -594,7 +596,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-cancel" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10f;" />
         </div>
       </div>
       
@@ -607,7 +609,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-cancel-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf110;" />
         </div>
       </div>
       
@@ -620,7 +622,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-cancel-circled2" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10f;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf111;" />
         </div>
       </div>
       
@@ -633,7 +635,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-circle-empty" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf110;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf112;" />
         </div>
       </div>
       
@@ -646,7 +648,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-clipboard" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf111;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf113;" />
         </div>
       </div>
       
@@ -659,7 +661,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-clock" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf112;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf114;" />
         </div>
       </div>
       
@@ -672,7 +674,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-cog" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf113;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf115;" />
         </div>
       </div>
       
@@ -685,7 +687,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-collapse" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf114;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf116;" />
         </div>
       </div>
       
@@ -698,7 +700,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-cw" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf115;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf117;" />
         </div>
       </div>
       
@@ -711,7 +713,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-dashboard" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf116;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf118;" />
         </div>
       </div>
       
@@ -724,7 +726,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-database" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf117;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf119;" />
         </div>
       </div>
       
@@ -737,7 +739,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-deselect-all" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf118;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11a;" />
         </div>
       </div>
       
@@ -750,7 +752,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-document" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf119;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11b;" />
         </div>
       </div>
       
@@ -763,7 +765,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-documents" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11c;" />
         </div>
       </div>
       
@@ -776,7 +778,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-dot-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11d;" />
         </div>
       </div>
       
@@ -789,7 +791,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-down" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11e;" />
         </div>
       </div>
       
@@ -802,7 +804,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-down-1" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11f;" />
         </div>
       </div>
       
@@ -815,7 +817,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-down-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf120;" />
         </div>
       </div>
       
@@ -828,7 +830,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-down-dir" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11f;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf121;" />
         </div>
       </div>
       
@@ -841,7 +843,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-down-open" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf120;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf122;" />
         </div>
       </div>
       
@@ -854,7 +856,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-drop-down-dots" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf121;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf124;" />
         </div>
       </div>
       
@@ -867,7 +869,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-exchange" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf122;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf125;" />
         </div>
       </div>
       
@@ -880,7 +882,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-expand" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf123;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf126;" />
         </div>
       </div>
       
@@ -893,7 +895,20 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-eye" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf124;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf127;" />
+        </div>
+      </div>
+      
+      <div class="glyph">
+        <div class="preview-glyphs">
+          <span class="step size-12"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="fo
 nticon-gears" class="fonticon-gears"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="fonticon-gears" class="fonticon-gears"></i></span>
+        </div>
+        <div class="preview-scale">
+          <span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
+        </div>
+        <div class="usage">
+          <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-gears" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12b;" />
         </div>
       </div>
       
@@ -906,7 +921,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-help" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf125;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12c;" />
         </div>
       </div>
       
@@ -919,7 +934,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-help-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf126;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12d;" />
         </div>
       </div>
       
@@ -932,7 +947,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-info-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf127;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12e;" />
         </div>
       </div>
       
@@ -945,7 +960,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-json" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf128;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12f;" />
         </div>
       </div>
       
@@ -958,7 +973,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-key" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf129;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf130;" />
         </div>
       </div>
       
@@ -971,7 +986,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-left" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf131;" />
         </div>
       </div>
       
@@ -984,7 +999,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-left-1" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf132;" />
         </div>
       </div>
       
@@ -997,7 +1012,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-left-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf133;" />
         </div>
       </div>
       
@@ -1010,7 +1025,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-left-dir" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf134;" />
         </div>
       </div>
       
@@ -1023,7 +1038,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-left-open" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf135;" />
         </div>
       </div>
       
@@ -1036,7 +1051,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-link" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12f;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf136;" />
         </div>
       </div>
       
@@ -1049,7 +1064,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-list-alt" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf130;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf137;" />
         </div>
       </div>
       
@@ -1062,7 +1077,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-lock" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf131;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf138;" />
         </div>
       </div>
       
@@ -1075,7 +1090,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-mail" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf132;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf139;" />
         </div>
       </div>
       
@@ -1088,7 +1103,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-mail-alt" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf133;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13a;" />
         </div>
       </div>
       
@@ -1101,7 +1116,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-megaphone" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf134;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13b;" />
         </div>
       </div>
       
@@ -1114,7 +1129,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-minus" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf135;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13c;" />
         </div>
       </div>
       
@@ -1127,7 +1142,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-minus-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf136;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13d;" />
         </div>
       </div>
       
@@ -1140,7 +1155,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-minus-circled2" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf137;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13e;" />
         </div>
       </div>
       
@@ -1153,7 +1168,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-minus-squared" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf138;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13f;" />
         </div>
       </div>
       
@@ -1166,7 +1181,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-minus-squared-alt" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf139;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf140;" />
         </div>
       </div>
       
@@ -1179,7 +1194,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-mixer" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf141;" />
         </div>
       </div>
       
@@ -1192,7 +1207,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-new-database" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf142;" />
         </div>
       </div>
       
@@ -1205,7 +1220,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-ok" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf143;" />
         </div>
       </div>
       
@@ -1218,7 +1233,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-ok-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf144;" />
         </div>
       </div>
       
@@ -1231,7 +1246,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-ok-circled-2" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf145;" />
         </div>
       </div>
       
@@ -1244,7 +1259,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-paperclip" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13f;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf146;" />
         </div>
       </div>
       
@@ -1257,7 +1272,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-pencil" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf140;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf148;" />
         </div>
       </div>
       
@@ -1270,7 +1285,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-picture" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf141;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf149;" />
         </div>
       </div>
       
@@ -1283,7 +1298,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-play" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf142;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14a;" />
         </div>
       </div>
       
@@ -1296,7 +1311,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-plus" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf143;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14b;" />
         </div>
       </div>
       
@@ -1309,7 +1324,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-plus-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf144;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14c;" />
         </div>
       </div>
       
@@ -1322,7 +1337,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-plus-circled2" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf145;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14d;" />
         </div>
       </div>
       
@@ -1335,7 +1350,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-plus-squared" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf146;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14e;" />
         </div>
       </div>
       
@@ -1348,7 +1363,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-plus-squared-alt" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf147;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14f;" />
         </div>
       </div>
       
@@ -1361,7 +1376,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-popin" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf148;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf150;" />
         </div>
       </div>
       
@@ -1374,7 +1389,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-popout" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf149;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf151;" />
         </div>
       </div>
       
@@ -1387,7 +1402,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-profile" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf152;" />
         </div>
       </div>
       
@@ -1400,7 +1415,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-replicate" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf153;" />
         </div>
       </div>
       
@@ -1413,7 +1428,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-reply" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf154;" />
         </div>
       </div>
       
@@ -1426,7 +1441,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-reply-all" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf155;" />
         </div>
       </div>
       
@@ -1439,7 +1454,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-resize-full" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf156;" />
         </div>
       </div>
       
@@ -1452,7 +1467,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-resize-full-reverse" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14f;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf157;" />
         </div>
       </div>
       
@@ -1465,7 +1480,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-resize-small" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf150;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf158;" />
         </div>
       </div>
       
@@ -1478,7 +1493,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-resize-small-reverse" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf151;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf159;" />
         </div>
       </div>
       
@@ -1491,7 +1506,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-right" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf152;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15a;" />
         </div>
       </div>
       
@@ -1504,7 +1519,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-right-1" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf153;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15b;" />
         </div>
       </div>
       
@@ -1517,7 +1532,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-right-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf154;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15c;" />
         </div>
       </div>
       
@@ -1530,7 +1545,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-right-dir" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf155;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15d;" />
         </div>
       </div>
       
@@ -1543,7 +1558,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-right-open" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf156;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15e;" />
         </div>
       </div>
       
@@ -1556,7 +1571,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-save" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf157;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15f;" />
         </div>
       </div>
       
@@ -1569,7 +1584,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-search" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf158;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf160;" />
         </div>
       </div>
       
@@ -1582,7 +1597,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-select-all" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf159;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf161;" />
         </div>
       </div>
       
@@ -1595,7 +1610,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-filter-function" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf162;" />
         </div>
       </div>
       
@@ -1608,7 +1623,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-info" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf163;" />
         </div>
       </div>
       
@@ -1621,7 +1636,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-list-function" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf164;" />
         </div>
       </div>
       
@@ -1634,7 +1649,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-map-reduce" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf165;" />
         </div>
       </div>
       
@@ -1647,7 +1662,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-search" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf166;" />
         </div>
       </div>
       
@@ -1660,7 +1675,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-show-function" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf15f;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf167;" />
         </div>
       </div>
       
@@ -1673,7 +1688,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sidenav-update-function" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf160;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf168;" />
         </div>
       </div>
       
@@ -1686,7 +1701,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-sitemap" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf161;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf169;" />
         </div>
       </div>
       
@@ -1699,7 +1714,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-stats" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf162;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf16c;" />
         </div>
       </div>
       
@@ -1712,7 +1727,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-support" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf163;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf170;" />
         </div>
       </div>
       
@@ -1725,7 +1740,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-swap-arrows" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf164;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf171;" />
         </div>
       </div>
       
@@ -1738,7 +1753,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-table" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf165;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf172;" />
         </div>
       </div>
       
@@ -1751,7 +1766,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-trash" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf166;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf173;" />
         </div>
       </div>
       
@@ -1764,7 +1779,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-up" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf167;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf174;" />
         </div>
       </div>
       
@@ -1777,7 +1792,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-up-1" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf168;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf175;" />
         </div>
       </div>
       
@@ -1790,7 +1805,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-up-circled" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf169;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf176;" />
         </div>
       </div>
       
@@ -1803,7 +1818,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-up-dir" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf16a;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf177;" />
         </div>
       </div>
       
@@ -1816,7 +1831,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-up-open" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf16b;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf178;" />
         </div>
       </div>
       
@@ -1829,7 +1844,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-user" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf16c;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf179;" />
         </div>
       </div>
       
@@ -1842,7 +1857,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-users" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf16d;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf17a;" />
         </div>
       </div>
       
@@ -1855,7 +1870,7 @@
         </div>
         <div class="usage">
           <input class="class" type="text" readonly="readonly" onClick="this.select();" value=".fonticon-wrench" />
-          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf16e;" />
+          <input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf17b;" />
         </div>
       </div>
       

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/icons/gears.svg
----------------------------------------------------------------------
diff --git a/assets/icons/gears.svg b/assets/icons/gears.svg
new file mode 100755
index 0000000..74890d0
--- /dev/null
+++ b/assets/icons/gears.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="34" height="32" viewBox="0 0 34 32">
+<g>
+</g>
+	<path d="M16 16q0-1.893-1.339-3.232t-3.232-1.339-3.232 1.339-1.339 3.232 1.339 3.232 3.232 1.339 3.232-1.339 1.339-3.232zM29.714 25.143q0-0.929-0.679-1.607t-1.607-0.679-1.607 0.679-0.679 1.607q0 0.946 0.67 1.616t1.616 0.67 1.616-0.67 0.67-1.616zM29.714 6.857q0-0.929-0.679-1.607t-1.607-0.679-1.607 0.679-0.679 1.607q0 0.946 0.67 1.616t1.616 0.67 1.616-0.67 0.67-1.616zM22.857 14.375v3.304q0 0.179-0.125 0.348t-0.286 0.188l-2.768 0.429q-0.196 0.625-0.571 1.357 0.607 0.857 1.607 2.054 0.125 0.179 0.125 0.357 0 0.214-0.125 0.339-0.411 0.536-1.473 1.598t-1.402 1.063q-0.196 0-0.375-0.125l-2.054-1.607q-0.661 0.339-1.375 0.554-0.196 1.929-0.411 2.768-0.125 0.429-0.536 0.429h-3.321q-0.196 0-0.357-0.134t-0.179-0.313l-0.411-2.732q-0.607-0.179-1.339-0.554l-2.107 1.589q-0.125 0.125-0.357 0.125-0.196 0-0.375-0.143-2.571-2.375-2.571-2.857 0-0.161 0.125-0.339 0.179-0.25 0.732-0.946t0.839-1.089q-0.411-0.786-0.625-1.464l-2.714-0.429q-0.179-0.018-0.304-0.17t-0.125-0.348v-3.304q0-0.179 0.125-0.348t0.286-
 0.188l2.768-0.429q0.196-0.625 0.571-1.357-0.607-0.857-1.607-2.054-0.125-0.196-0.125-0.357 0-0.214 0.125-0.357 0.393-0.536 1.464-1.589t1.411-1.054q0.196 0 0.375 0.125l2.054 1.607q0.607-0.321 1.375-0.571 0.196-1.929 0.411-2.75 0.125-0.429 0.536-0.429h3.321q0.196 0 0.357 0.134t0.179 0.313l0.411 2.732q0.607 0.179 1.339 0.554l2.107-1.589q0.143-0.125 0.357-0.125 0.196 0 0.375 0.143 2.571 2.375 2.571 2.857 0 0.161-0.125 0.339-0.214 0.286-0.75 0.964t-0.804 1.071q0.411 0.857 0.607 1.464l2.714 0.411q0.179 0.036 0.304 0.188t0.125 0.348zM34.286 23.893v2.5q0 0.286-2.661 0.554-0.214 0.482-0.536 0.929 0.911 2.018 0.911 2.464 0 0.071-0.071 0.125-2.179 1.268-2.214 1.268-0.143 0-0.821-0.839t-0.929-1.214q-0.357 0.036-0.536 0.036t-0.536-0.036q-0.25 0.375-0.929 1.214t-0.821 0.839q-0.036 0-2.214-1.268-0.071-0.054-0.071-0.125 0-0.446 0.911-2.464-0.321-0.446-0.536-0.929-2.661-0.268-2.661-0.554v-2.5q0-0.286 2.661-0.554 0.232-0.518 0.536-0.929-0.911-2.018-0.911-2.464 0-0.071 0.071-0.125 0.071-0.036 0.625-0.3
 57t1.054-0.607 0.536-0.286q0.143 0 0.821 0.83t0.929 1.205q0.357-0.036 0.536-0.036t0.536 0.036q0.911-1.268 1.643-2l0.107-0.036q0.071 0 2.214 1.25 0.071 0.054 0.071 0.125 0 0.446-0.911 2.464 0.304 0.411 0.536 0.929 2.661 0.268 2.661 0.554zM34.286 5.607v2.5q0 0.286-2.661 0.554-0.214 0.482-0.536 0.929 0.911 2.018 0.911 2.464 0 0.071-0.071 0.125-2.179 1.268-2.214 1.268-0.143 0-0.821-0.839t-0.929-1.214q-0.357 0.036-0.536 0.036t-0.536-0.036q-0.25 0.375-0.929 1.214t-0.821 0.839q-0.036 0-2.214-1.268-0.071-0.054-0.071-0.125 0-0.446 0.911-2.464-0.321-0.446-0.536-0.929-2.661-0.268-2.661-0.554v-2.5q0-0.286 2.661-0.554 0.232-0.518 0.536-0.929-0.911-2.018-0.911-2.464 0-0.071 0.071-0.125 0.071-0.036 0.625-0.357t1.054-0.607 0.536-0.286q0.143 0 0.821 0.83t0.929 1.205q0.357-0.036 0.536-0.036t0.536 0.036q0.911-1.268 1.643-2l0.107-0.036q0.071 0 2.214 1.25 0.071 0.054 0.071 0.125 0 0.446-0.911 2.464 0.304 0.411 0.536 0.929 2.661 0.268 2.661 0.554z" fill="#000000" />
+</svg>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/less/bootstrap/forms.less
----------------------------------------------------------------------
diff --git a/assets/less/bootstrap/forms.less b/assets/less/bootstrap/forms.less
index 06767bd..10b4751 100644
--- a/assets/less/bootstrap/forms.less
+++ b/assets/less/bootstrap/forms.less
@@ -591,7 +591,7 @@ input.search-query {
     margin-bottom: 0;
     vertical-align: middle;
   }
-  // Re-hide hidden elements due to specifity
+  // Re-hide hidden elements due to specificity
   .hide {
     display: none;
   }

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/less/fauxton.less
----------------------------------------------------------------------
diff --git a/assets/less/fauxton.less b/assets/less/fauxton.less
index a0c1cf0..90e89d1 100644
--- a/assets/less/fauxton.less
+++ b/assets/less/fauxton.less
@@ -333,22 +333,35 @@ div.spinner {
 
 #api-navbar{
   > div{
-    > .api-url-btn {
+    > .api-url-btn, > .query-options-btn {
       padding:10px;
     }
   }
+
+  .header-icon {
+    font-size: 20px;
+    &:before {
+      float: left;
+      margin: 10px 6px 0px 0px;
+    }
+  }
 }
 
-.api-url-btn {
-  .icon {
-    font-size: 11px;
+header .header-icon {
+  font-size: 20px;
+  &:before {
+    float: left;
+    margin: 10px 6px 0px 0px;
   }
+}
+
+.api-url-btn, .query-options-btn {
   background: none;
   border: none;
   padding: 0;
   margin: 0;
 }
-.api-url-btn:hover {
+.api-url-btn:hover, .query-options-btn:hover {
   background: none;
 }
 .api-navbar {
@@ -620,8 +633,8 @@ REUSEABLE SHADOW BORDER
 }
 
 .tray {
+  .bottom-shadow-border;
   display: none;
-  .border-radius(5px);
   position: absolute;
   right: 5px;
   top: 55px;
@@ -666,7 +679,7 @@ REUSEABLE SHADOW BORDER
   .btn-primary {
     color: #666;
     font-size: 13px;
-    line-height: 3em;
+    line-height: 33px;
   }
 }
 

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/less/formstyles.less
----------------------------------------------------------------------
diff --git a/assets/less/formstyles.less b/assets/less/formstyles.less
index 262f376..6bddf24 100644
--- a/assets/less/formstyles.less
+++ b/assets/less/formstyles.less
@@ -113,7 +113,7 @@ select {
 .checkbox {
   label {
     display: inline-block;
-    padding-left:25px;
+    padding-left: 30px;
   }
 }
 
@@ -152,7 +152,7 @@ form.view-query-update, form.view-query-save {
   }
 
   .checkbox label:before {
-    border-radius: 3px;
+    border-radius: 12px;
   }
 
   .controls > .radio:first-child, .controls > .checkbox:first-child {
@@ -166,30 +166,36 @@ form.view-query-update, form.view-query-save {
     vertical-align: middle;
   }
 
+  input[type=checkbox] + label:hover:before {
+    border: 2px solid #fff;
+  }
+
   input[type=checkbox]:checked + label:before {
-    /*content: "\2713"; */
-    content: "\00d7";
-    text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
-    font-size: 16px;
-    background-color: @linkColor;
-    color: white;
+    font-family: "fauxtonicon";
+    content: "\f143";
+    font-size: 12px;
+    background-color: inherit;
+    border: 2px solid #7C8085;
+    color: @linkColor;
     text-align: center;
-    line-height: 15px;
+    line-height: 19px;
+    box-shadow: none;
+    display: inline-block;
   }
 
   label:before {
     content: "";
     display: inline-block;
-
-    width: 16px;
-    height: 16px;
-
+    width: 22px;
+    height: 22px;
     margin-right: 10px;
     position: absolute;
     left: 0;
-    bottom: 1px;
-    background-color: #aaa;
-    box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8);
+    bottom: 0px;
+    background-color: #7C8085;
+    -webkit-box-shadow: inset 0px 3px 0px 0px rgba(50, 50, 50, 0.40);
+    -moz-box-shadow:    inset 0px 3px 0px 0px rgba(50, 50, 50, 0.40);
+    box-shadow:         inset 0px 3px 0px 0px rgba(50, 50, 50, 0.40);
   }
 
   .radio label:before {

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/less/icons.less
----------------------------------------------------------------------
diff --git a/assets/less/icons.less b/assets/less/icons.less
index 8b8559e..2dfca93 100644
--- a/assets/less/icons.less
+++ b/assets/less/icons.less
@@ -76,6 +76,7 @@ https://github.com/seanbarclay/fontcustom/blob/1c3ad3d2633d3a8add39e8827115394e9
 .fonticon-exchange:before,
 .fonticon-expand:before,
 .fonticon-eye:before,
+.fonticon-gears:before,
 .fonticon-help:before,
 .fonticon-help-circled:before,
 .fonticon-info-circled:before,
@@ -169,109 +170,110 @@ https://github.com/seanbarclay/fontcustom/blob/1c3ad3d2633d3a8add39e8827115394e9
 .fonticon-arrow-box-up:before { content: "\f102"; }
 .fonticon-arrow_left:before { content: "\f103"; }
 .fonticon-arrow_right:before { content: "\f104"; }
-.fonticon-arrows-cw:before { content: "\f105"; }
-.fonticon-article:before { content: "\f106"; }
-.fonticon-attention-alt:before { content: "\f107"; }
-.fonticon-attention-circled:before { content: "\f108"; }
-.fonticon-block:before { content: "\f109"; }
-.fonticon-bookmark:before { content: "\f10a"; }
-.fonticon-bookmark-ribbon-wplus:before { content: "\f10b"; }
-.fonticon-burger:before { content: "\f10c"; }
-.fonticon-cancel:before { content: "\f10d"; }
-.fonticon-cancel-circled:before { content: "\f10e"; }
-.fonticon-cancel-circled2:before { content: "\f10f"; }
-.fonticon-circle-empty:before { content: "\f110"; }
-.fonticon-clipboard:before { content: "\f111"; }
-.fonticon-clock:before { content: "\f112"; }
-.fonticon-cog:before { content: "\f113"; }
-.fonticon-collapse:before { content: "\f114"; }
-.fonticon-cw:before { content: "\f115"; }
-.fonticon-dashboard:before { content: "\f116"; }
-.fonticon-database:before { content: "\f117"; }
-.fonticon-deselect-all:before { content: "\f118"; }
-.fonticon-document:before { content: "\f119"; }
-.fonticon-documents:before { content: "\f11a"; }
-.fonticon-dot-circled:before { content: "\f11b"; }
-.fonticon-down:before { content: "\f11c"; }
-.fonticon-down-1:before { content: "\f11d"; }
-.fonticon-down-circled:before { content: "\f11e"; }
-.fonticon-down-dir:before { content: "\f11f"; }
-.fonticon-down-open:before { content: "\f120"; }
-.fonticon-drop-down-dots:before { content: "\f121"; }
-.fonticon-exchange:before { content: "\f122"; }
-.fonticon-expand:before { content: "\f123"; }
-.fonticon-eye:before { content: "\f124"; }
-.fonticon-help:before { content: "\f125"; }
-.fonticon-help-circled:before { content: "\f126"; }
-.fonticon-info-circled:before { content: "\f127"; }
-.fonticon-json:before { content: "\f128"; }
-.fonticon-key:before { content: "\f129"; }
-.fonticon-left:before { content: "\f12a"; }
-.fonticon-left-1:before { content: "\f12b"; }
-.fonticon-left-circled:before { content: "\f12c"; }
-.fonticon-left-dir:before { content: "\f12d"; }
-.fonticon-left-open:before { content: "\f12e"; }
-.fonticon-link:before { content: "\f12f"; }
-.fonticon-list-alt:before { content: "\f130"; }
-.fonticon-lock:before { content: "\f131"; }
-.fonticon-mail:before { content: "\f132"; }
-.fonticon-mail-alt:before { content: "\f133"; }
-.fonticon-megaphone:before { content: "\f134"; }
-.fonticon-minus:before { content: "\f135"; }
-.fonticon-minus-circled:before { content: "\f136"; }
-.fonticon-minus-circled2:before { content: "\f137"; }
-.fonticon-minus-squared:before { content: "\f138"; }
-.fonticon-minus-squared-alt:before { content: "\f139"; }
-.fonticon-mixer:before { content: "\f13a"; }
-.fonticon-new-database:before { content: "\f13b"; }
-.fonticon-ok:before { content: "\f13c"; }
-.fonticon-ok-circled:before { content: "\f13d"; }
-.fonticon-ok-circled-2:before { content: "\f13e"; }
-.fonticon-paperclip:before { content: "\f13f"; }
-.fonticon-pencil:before { content: "\f140"; }
-.fonticon-picture:before { content: "\f141"; }
-.fonticon-play:before { content: "\f142"; }
-.fonticon-plus:before { content: "\f143"; }
-.fonticon-plus-circled:before { content: "\f144"; }
-.fonticon-plus-circled2:before { content: "\f145"; }
-.fonticon-plus-squared:before { content: "\f146"; }
-.fonticon-plus-squared-alt:before { content: "\f147"; }
-.fonticon-popin:before { content: "\f148"; }
-.fonticon-popout:before { content: "\f149"; }
-.fonticon-profile:before { content: "\f14a"; }
-.fonticon-replicate:before { content: "\f14b"; }
-.fonticon-reply:before { content: "\f14c"; }
-.fonticon-reply-all:before { content: "\f14d"; }
-.fonticon-resize-full:before { content: "\f14e"; }
-.fonticon-resize-full-reverse:before { content: "\f14f"; }
-.fonticon-resize-small:before { content: "\f150"; }
-.fonticon-resize-small-reverse:before { content: "\f151"; }
-.fonticon-right:before { content: "\f152"; }
-.fonticon-right-1:before { content: "\f153"; }
-.fonticon-right-circled:before { content: "\f154"; }
-.fonticon-right-dir:before { content: "\f155"; }
-.fonticon-right-open:before { content: "\f156"; }
-.fonticon-save:before { content: "\f157"; }
-.fonticon-search:before { content: "\f158"; }
-.fonticon-select-all:before { content: "\f159"; }
-.fonticon-sidenav-filter-function:before { content: "\f15a"; }
-.fonticon-sidenav-info:before { content: "\f15b"; }
-.fonticon-sidenav-list-function:before { content: "\f15c"; }
-.fonticon-sidenav-map-reduce:before { content: "\f15d"; }
-.fonticon-sidenav-search:before { content: "\f15e"; }
-.fonticon-sidenav-show-function:before { content: "\f15f"; }
-.fonticon-sidenav-update-function:before { content: "\f160"; }
-.fonticon-sitemap:before { content: "\f161"; }
-.fonticon-stats:before { content: "\f162"; }
-.fonticon-support:before { content: "\f163"; }
-.fonticon-swap-arrows:before { content: "\f164"; }
-.fonticon-table:before { content: "\f165"; }
-.fonticon-trash:before { content: "\f166"; }
-.fonticon-up:before { content: "\f167"; }
-.fonticon-up-1:before { content: "\f168"; }
-.fonticon-up-circled:before { content: "\f169"; }
-.fonticon-up-dir:before { content: "\f16a"; }
-.fonticon-up-open:before { content: "\f16b"; }
-.fonticon-user:before { content: "\f16c"; }
-.fonticon-users:before { content: "\f16d"; }
-.fonticon-wrench:before { content: "\f16e"; }
\ No newline at end of file
+.fonticon-arrows-cw:before { content: "\f106"; }
+.fonticon-article:before { content: "\f107"; }
+.fonticon-attention-alt:before { content: "\f108"; }
+.fonticon-attention-circled:before { content: "\f109"; }
+.fonticon-block:before { content: "\f10b"; }
+.fonticon-bookmark:before { content: "\f10c"; }
+.fonticon-bookmark-ribbon-wplus:before { content: "\f10d"; }
+.fonticon-burger:before { content: "\f10e"; }
+.fonticon-cancel:before { content: "\f10f"; }
+.fonticon-cancel-circled:before { content: "\f110"; }
+.fonticon-cancel-circled2:before { content: "\f111"; }
+.fonticon-circle-empty:before { content: "\f112"; }
+.fonticon-clipboard:before { content: "\f113"; }
+.fonticon-clock:before { content: "\f114"; }
+.fonticon-cog:before { content: "\f115"; }
+.fonticon-collapse:before { content: "\f116"; }
+.fonticon-cw:before { content: "\f117"; }
+.fonticon-dashboard:before { content: "\f118"; }
+.fonticon-database:before { content: "\f119"; }
+.fonticon-deselect-all:before { content: "\f11a"; }
+.fonticon-document:before { content: "\f11b"; }
+.fonticon-documents:before { content: "\f11c"; }
+.fonticon-dot-circled:before { content: "\f11d"; }
+.fonticon-down:before { content: "\f11e"; }
+.fonticon-down-1:before { content: "\f11f"; }
+.fonticon-down-circled:before { content: "\f120"; }
+.fonticon-down-dir:before { content: "\f121"; }
+.fonticon-down-open:before { content: "\f122"; }
+.fonticon-drop-down-dots:before { content: "\f124"; }
+.fonticon-exchange:before { content: "\f125"; }
+.fonticon-expand:before { content: "\f126"; }
+.fonticon-eye:before { content: "\f127"; }
+.fonticon-gears:before { content: "\f12b"; }
+.fonticon-help:before { content: "\f12c"; }
+.fonticon-help-circled:before { content: "\f12d"; }
+.fonticon-info-circled:before { content: "\f12e"; }
+.fonticon-json:before { content: "\f12f"; }
+.fonticon-key:before { content: "\f130"; }
+.fonticon-left:before { content: "\f131"; }
+.fonticon-left-1:before { content: "\f132"; }
+.fonticon-left-circled:before { content: "\f133"; }
+.fonticon-left-dir:before { content: "\f134"; }
+.fonticon-left-open:before { content: "\f135"; }
+.fonticon-link:before { content: "\f136"; }
+.fonticon-list-alt:before { content: "\f137"; }
+.fonticon-lock:before { content: "\f138"; }
+.fonticon-mail:before { content: "\f139"; }
+.fonticon-mail-alt:before { content: "\f13a"; }
+.fonticon-megaphone:before { content: "\f13b"; }
+.fonticon-minus:before { content: "\f13c"; }
+.fonticon-minus-circled:before { content: "\f13d"; }
+.fonticon-minus-circled2:before { content: "\f13e"; }
+.fonticon-minus-squared:before { content: "\f13f"; }
+.fonticon-minus-squared-alt:before { content: "\f140"; }
+.fonticon-mixer:before { content: "\f141"; }
+.fonticon-new-database:before { content: "\f142"; }
+.fonticon-ok:before { content: "\f143"; }
+.fonticon-ok-circled:before { content: "\f144"; }
+.fonticon-ok-circled-2:before { content: "\f145"; }
+.fonticon-paperclip:before { content: "\f146"; }
+.fonticon-pencil:before { content: "\f148"; }
+.fonticon-picture:before { content: "\f149"; }
+.fonticon-play:before { content: "\f14a"; }
+.fonticon-plus:before { content: "\f14b"; }
+.fonticon-plus-circled:before { content: "\f14c"; }
+.fonticon-plus-circled2:before { content: "\f14d"; }
+.fonticon-plus-squared:before { content: "\f14e"; }
+.fonticon-plus-squared-alt:before { content: "\f14f"; }
+.fonticon-popin:before { content: "\f150"; }
+.fonticon-popout:before { content: "\f151"; }
+.fonticon-profile:before { content: "\f152"; }
+.fonticon-replicate:before { content: "\f153"; }
+.fonticon-reply:before { content: "\f154"; }
+.fonticon-reply-all:before { content: "\f155"; }
+.fonticon-resize-full:before { content: "\f156"; }
+.fonticon-resize-full-reverse:before { content: "\f157"; }
+.fonticon-resize-small:before { content: "\f158"; }
+.fonticon-resize-small-reverse:before { content: "\f159"; }
+.fonticon-right:before { content: "\f15a"; }
+.fonticon-right-1:before { content: "\f15b"; }
+.fonticon-right-circled:before { content: "\f15c"; }
+.fonticon-right-dir:before { content: "\f15d"; }
+.fonticon-right-open:before { content: "\f15e"; }
+.fonticon-save:before { content: "\f15f"; }
+.fonticon-search:before { content: "\f160"; }
+.fonticon-select-all:before { content: "\f161"; }
+.fonticon-sidenav-filter-function:before { content: "\f162"; }
+.fonticon-sidenav-info:before { content: "\f163"; }
+.fonticon-sidenav-list-function:before { content: "\f164"; }
+.fonticon-sidenav-map-reduce:before { content: "\f165"; }
+.fonticon-sidenav-search:before { content: "\f166"; }
+.fonticon-sidenav-show-function:before { content: "\f167"; }
+.fonticon-sidenav-update-function:before { content: "\f168"; }
+.fonticon-sitemap:before { content: "\f169"; }
+.fonticon-stats:before { content: "\f16c"; }
+.fonticon-support:before { content: "\f170"; }
+.fonticon-swap-arrows:before { content: "\f171"; }
+.fonticon-table:before { content: "\f172"; }
+.fonticon-trash:before { content: "\f173"; }
+.fonticon-up:before { content: "\f174"; }
+.fonticon-up-1:before { content: "\f175"; }
+.fonticon-up-circled:before { content: "\f176"; }
+.fonticon-up-dir:before { content: "\f177"; }
+.fonticon-up-open:before { content: "\f178"; }
+.fonticon-user:before { content: "\f179"; }
+.fonticon-users:before { content: "\f17a"; }
+.fonticon-wrench:before { content: "\f17b"; }
\ No newline at end of file


[3/4] New Query Options tray added

Posted by ro...@apache.org.
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/views.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/views.js b/app/addons/documents/views.js
index 23720f4..683a05b 100644
--- a/app/addons/documents/views.js
+++ b/app/addons/documents/views.js
@@ -12,23 +12,23 @@
 
 define([
   "app",
-
   "api",
   "addons/fauxton/components",
   "addons/documents/resources",
   "addons/databases/resources",
 
-  //Views
+  // Views
   "addons/documents/views-sidebar",
-  "addons/documents/views-advancedopts",
+  "addons/documents/views-queryoptions",
+
   // Libs
   "addons/fauxton/resizeColumns",
+
   //plugins
   "plugins/prettify"
 ],
 
-function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
-         resizeColumns, prettify) {
+function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions) {
 
   function showError (msg) {
     FauxtonAPI.addNotification({
@@ -45,105 +45,81 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
       'click .toggle-select-menu': 'selectAllMenu'
     },
 
-    initialize: function(options){
-      //adding the database to the object
+    initialize: function(options) {
       this.database = options.database;
+      this.params = options.params;
+
       _.bindAll(this);
       this.selectVisible = false;
-      FauxtonAPI.Events.on('advancedOptions:updateView', this.updateAllDocs);
       FauxtonAPI.Events.on('success:bulkDelete', this.selectAllMenu);
-    },
-
-    cleanup:function(){
-      FauxtonAPI.Events.unbind('advancedOptions:updateView');
-      FauxtonAPI.Events.unbind('success:bulkDelete');
-    },
-
-    selectAllMenu: function(e){
-      FauxtonAPI.triggerRouteEvent("toggleSelectHeader");
-      FauxtonAPI.Events.trigger("documents:showSelectAll",this.selectVisible);
-    },
 
-    addAllDocsMenu: function(){
-      //search docs
+      // insert the Search Docs field
       this.headerSearch = this.insertView("#header-search", new Views.JumpToDoc({
         database: this.database,
         collection: this.database.allDocs
       }));
-      //insert queryoptions
-      //that file is included in require() above and the argument is QueryOptions
-      // and it wants all these params:
-      /* Sooooo I searched this file for where Advanced options was originally inserted to see what the hell
-         is happening.  and it's in AllDocsLayout.  So I'm going to move some of those functions over here
-
-        These are required:
-        this.database = options.database;
-        this.updateViewFn = options.updateViewFn;
-        this.previewFn = options.previewFn;
-
-        these are booleans:
-        this.showStale = _.isUndefined(options.showStale) ? false : options.showStale;
-        this.hasReduce = _.isUndefined(options.hasReduce) ? true : options.hasReduce;
-
-        these you only need for view indexes, not all docs because they are about
-        specific views and design docs (ddocs, also views live inside a ddoc):
-        this.viewName = options.viewName;
-        this.ddocName = options.ddocName;
-      */
-
-      /*this.queryOptions = this.insertView("#query-options", new QueryOptions.AdvancedOptions({
-        database: this.database,
+
+      // add the Query Options modal + header link
+      this.queryOptions = this.insertView("#query-options", new QueryOptions.QueryOptionsTray({
         hasReduce: false,
-        showPreview: false,
-      }));*/
+        showStale: false
+      }));
     },
 
-    serialize: function() {
-      //basically if you want something in a template, You can define it here
-      return {
-        database: this.database.get('id')
-      };
+    afterRender: function() {
+      this.toggleQueryOptionsHeader(this.isHidden);
     },
 
-    beforeRender:function(){
-      this.addAllDocsMenu();
+    cleanup: function() {
+      FauxtonAPI.Events.unbind('success:bulkDelete');
     },
 
-    //moved from alldocs layout
-    updateAllDocs: function (event, paramInfo) {
-      event.preventDefault();
+    selectAllMenu: function(e) {
+      FauxtonAPI.triggerRouteEvent("toggleSelectHeader");
+      FauxtonAPI.Events.trigger("documents:showSelectAll",this.selectVisible);
+    },
 
-      var errorParams = paramInfo.errorParams,
-          params = paramInfo.params;
+    // updates the API bar when the route changes
+    updateApiUrl: function(api) {
+      this.apiBar && this.apiBar.update(api);
+    },
 
-      if (_.any(errorParams)) {
-        _.map(errorParams, function(param) {
-          return FauxtonAPI.addNotification({
-            msg: "JSON Parse Error on field: "+param.name,
-            type: "error",
-            clear:  true
-          });
-        });
-        FauxtonAPI.addNotification({
-          msg: "Make sure that strings are properly quoted and any other values are valid JSON structures",
-          type: "warning",
-          clear:  true
-        });
+    // these are similar, but different! resetQueryOptions() completely resets the settings then overlays the new ones;
+    // updateQueryOptions() just updates the existing settings with whatever is specified. Between them, the
+    resetQueryOptions: function(options) {
+      this.queryOptions.resetQueryOptions(options);
+    },
 
-        return false;
-      }
+    updateQueryOptions: function(options) {
+      this.queryOptions.updateQueryOptions(options);
+    },
 
-      var fragment = window.location.hash.replace(/\?.*$/, '');
+    hideQueryOptions: function() {
+      this.isHidden = true;
+      if (this.hasRendered) {
+        this.toggleQueryOptionsHeader(this.isHidden);
+      }
+    },
 
-      if (!_.isEmpty(params)) {
-        fragment = fragment + '?' + $.param(params);
+    showQueryOptions: function() {
+      this.isHidden = false;
+      if (this.hasRendered) {
+        this.toggleQueryOptionsHeader(this.isHidden);
       }
+    },
+
+    toggleQueryOptionsHeader: function(hide) {
+      $("#header-query-options").toggleClass("hide", hide);
+    },
 
-      FauxtonAPI.navigate(fragment, {trigger: false});
-      FauxtonAPI.triggerRouteEvent('updateAllDocs', {allDocs: true});
+    serialize: function() {
+      return {
+        database: this.database.get('id')
+      };
     }
   });
 
+
   Views.DeleteDBModal = Components.ModalView.extend({
     template: "addons/documents/templates/delete_database_modal",
     initialize: function (options) {
@@ -155,7 +131,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
       this.showModal();
     },
 
-    cleanup: function () {
+    cleanup: function() {
       FauxtonAPI.Events.off('database:delete', this.showDeleteDatabase);
     },
 
@@ -167,11 +143,12 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
     deleteDatabase: function (event) {
       event.preventDefault();
 
-      var enterredName = this.$('#db_name')[0].value;
-      if (this.database.id != enterredName) {
-        this.set_error_msg(enterredName + " does not match database id - are you sure you want to delete " + this.database.id + "?");
+      var enteredName = $('#db_name').val();
+      if (this.database.id != enteredName) {
+        this.set_error_msg(enteredName + " does not match database id - are you sure you want to delete " + this.database.id + "?");
         return;
       }
+
       this.hideModal();
       var databaseName = this.database.id;
       FauxtonAPI.addNotification({
@@ -243,7 +220,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
 
       this.model.destroy().then(function(resp) {
         FauxtonAPI.addNotification({
-          msg: "Succesfully deleted your doc",
+          msg: "Successfully deleted your doc",
           clear:  true
         });
         that.$el.fadeOut(function () {
@@ -274,7 +251,6 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
 
     destroy: function (event) {
       event.preventDefault();
-
       window.alert('Cannot delete a document generated from a view.');
     },
 
@@ -345,92 +321,8 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
     setCollection: function (collection) {
       this.collection = collection;
     }
-
   });
 
-  Views.AllDocsLayout = FauxtonAPI.View.extend({
-    template: "addons/documents/templates/all_docs_layout",
-
-    initialize: function (options) {
-      this.database = options.database;
-      this.params = options.params;
-    },
-
-    events: {
-      'click #toggle-query': "toggleQuery"
-    },
-
-    toggleQuery: function (event) {
-      $('#dashboard-content').scrollTop(0);
-      this.$('#query').toggle('slow');
-    },
-
-    beforeRender: function () {
-      this.advancedOptions = this.insertView('#query', new QueryOptions.AdvancedOptions({
-        updateViewFn: this.updateAllDocs,
-        previewFn: this.previewView,
-        hasReduce: false,
-        showPreview: false,
-        database: this.database,
-      }));
-
-      //disable for now. Will enable with new documents PR that will come next
-      /*this.toolsView = this.setView(".js-search", new Views.JumpToDoc({
-        database: this.database,
-        collection: this.database.allDocs
-        }));*/
-    },
-
-    afterRender: function () {
-      if (this.params) {
-        this.advancedOptions.updateFromParams(this.params);
-      }
-    },
-
-    updateAllDocs: function (event, paramInfo) {
-      event.preventDefault();
-
-      var errorParams = paramInfo.errorParams,
-          params = paramInfo.params;
-
-      if (_.any(errorParams)) {
-        _.map(errorParams, function(param) {
-
-          // TODO: Where to add this error?
-          // bootstrap wants the error on a control-group div, but we're not using that
-          //$('form.view-query-update input[name='+param+'], form.view-query-update select[name='+param+']').addClass('error');
-          return FauxtonAPI.addNotification({
-            msg: "JSON Parse Error on field: "+param.name,
-            type: "error",
-            selector: ".advanced-options .errors-container",
-            clear:  true
-          });
-        });
-        FauxtonAPI.addNotification({
-          msg: "Make sure that strings are properly quoted and any other values are valid JSON structures",
-          type: "warning",
-          selector: ".advanced-options .errors-container",
-          clear:  true
-        });
-
-        return false;
-      }
-
-      var fragment = window.location.hash.replace(/\?.*$/, '');
-
-      if (!_.isEmpty(params)) {
-        fragment = fragment + '?' + $.param(params);
-      }
-
-      FauxtonAPI.navigate(fragment, {trigger: false});
-      FauxtonAPI.triggerRouteEvent('updateAllDocs', {allDocs: true});
-    },
-
-    previewView: function (event) {
-      event.preventDefault();
-    }
-
-  });
 
   // TODO: Rename to reflect that this is a list of rows or documents
   Views.AllDocsList = FauxtonAPI.View.extend({
@@ -440,7 +332,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
       "click button.js-bulk-delete": "bulkDelete",
       "click #collapse": "collapse",
       "click .all-docs-item": "toggleDocument",
-      "click #js-end-results": "scrollToQuery"
+      "click #js-end-results": "openQueryOptionsTray"
     },
 
     initialize: function (options) {
@@ -522,8 +414,9 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
       }
     },
 
-    scrollToQuery: function () {
-      $('#dashboard-content').animate({ scrollTop: 0 }, 'slow');
+    openQueryOptionsTray: function(e) {
+      e.preventDefault();
+      FauxtonAPI.Events.trigger("QueryOptions:openTray");
     },
 
     establish: function() {
@@ -696,6 +589,8 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
     },
 
     afterRender: function () {
+      $("#dashboard-content").scrollTop(0);
+
       prettyPrint();
 
       if (this.bulkDeleteDocsCollection) {
@@ -740,7 +635,6 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
 
 
 
-
   Views.DdocInfo = FauxtonAPI.View.extend({
     template: "addons/documents/templates/ddoc_info",
 
@@ -786,5 +680,6 @@ function(app, FauxtonAPI, Components, Documents, Databases, Views, QueryOptions,
   });
 
   Documents.Views = Views;
+
   return Documents;
 });

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/fauxton/base.js
----------------------------------------------------------------------
diff --git a/app/addons/fauxton/base.js b/app/addons/fauxton/base.js
index 1114c50..3add6e5 100644
--- a/app/addons/fauxton/base.js
+++ b/app/addons/fauxton/base.js
@@ -86,7 +86,8 @@ function(app, FauxtonAPI, resizeColumns, Components, ZeroClipboard) {
 
     FauxtonAPI.RouteObject.on('renderComplete', function (routeObject) {
       var masterLayout = FauxtonAPI.masterLayout;
-      if (routeObject.get('apiUrl')){
+
+      if (routeObject.get('apiUrl')) {
         masterLayout.apiBar.show();
         masterLayout.apiBar.update(routeObject.get('apiUrl'));
       } else {

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/fauxton/components.js
----------------------------------------------------------------------
diff --git a/app/addons/fauxton/components.js b/app/addons/fauxton/components.js
index 8499299..21fb2bd 100644
--- a/app/addons/fauxton/components.js
+++ b/app/addons/fauxton/components.js
@@ -105,7 +105,7 @@ function(app, FauxtonAPI, ace, spin, ZeroClipboard) {
     events:  {
       "click .api-url-btn" : "showAPIbar"
     },
-    
+
     initialize: function (options) {
       var _options = options || {};
       this.endpoint = _options.endpoint || '_all_docs';
@@ -167,9 +167,11 @@ function(app, FauxtonAPI, ace, spin, ZeroClipboard) {
     update: function(endpoint) {
       this.endpoint = endpoint[0];
       this.documentation = endpoint[1];
+
       this.render();
     },
-    afterRender: function(){
+
+    afterRender: function() {
       var client = new Components.Clipboard({
         $el: this.$('.copy-url')
       });

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/fauxton/templates/api_bar.html
----------------------------------------------------------------------
diff --git a/app/addons/fauxton/templates/api_bar.html b/app/addons/fauxton/templates/api_bar.html
index 86332fe..dbc10d5 100644
--- a/app/addons/fauxton/templates/api_bar.html
+++ b/app/addons/fauxton/templates/api_bar.html
@@ -13,7 +13,7 @@ the License.
 -->
 
 <a class="btn btn-primary pull-right api-url-btn">
-  <i class="fonticon-link icon"></i>
+  <i class="fonticon-link header-icon"></i>
   API URL
 </a>
 <div class="clearfix"></div>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/core/routeObject.js
----------------------------------------------------------------------
diff --git a/app/core/routeObject.js b/app/core/routeObject.js
index 6b43fa1..1a09298 100644
--- a/app/core/routeObject.js
+++ b/app/core/routeObject.js
@@ -85,7 +85,8 @@ function(FauxtonAPI, Backbone) {
   }, {
 
     renderWith: function(route, masterLayout, args) {
-      //set the options for this render
+
+      // set the options for this render
       var options = {
         masterLayout: masterLayout,
         route: route,
@@ -112,7 +113,9 @@ function(FauxtonAPI, Backbone) {
     },
 
     setTemplateOnFullRender: function(masterLayout){
+
       var promise = $.Deferred();
+
       // Only want to redo the template if its a full render
       if (!this.renderedState) {
         this.triggerBroadcast('beforeFullRender');
@@ -175,7 +178,7 @@ function(FauxtonAPI, Backbone) {
     establishError: function(resp){
       if (!resp || !resp.responseText) { return; }
       FauxtonAPI.addNotification({
-            msg: 'An Error occurred' + JSON.parse(resp.responseText).reason,
+            msg: 'An Error occurred: ' + JSON.parse(resp.responseText).reason,
             type: 'error',
             clear: true
       });

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/core/router.js
----------------------------------------------------------------------
diff --git a/app/core/router.js b/app/core/router.js
index bef4ced..5281343 100644
--- a/app/core/router.js
+++ b/app/core/router.js
@@ -102,7 +102,8 @@ function(FauxtonAPI, Auth, Backbone) {
     triggerRouteEvent: function(event, args) {
       if (this.activeRouteObject) {
         var eventArgs = [event].concat(args);
-        this.activeRouteObject.trigger.apply(this.activeRouteObject, eventArgs );
+
+        this.activeRouteObject.trigger.apply(this.activeRouteObject, eventArgs);
         this.activeRouteObject.renderWith(eventArgs, FauxtonAPI.masterLayout, args);
       }
     }

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/core/utils.js
----------------------------------------------------------------------
diff --git a/app/core/utils.js b/app/core/utils.js
index 9c4fb39..0ea6770 100644
--- a/app/core/utils.js
+++ b/app/core/utils.js
@@ -28,6 +28,7 @@ function ($, _) {
   var onWindowResize = {};
 
   var utils = {
+
     // Thanks to: http://stackoverflow.com/a/2880929
     getParams: function(queryString) {
       if (queryString) {
@@ -56,6 +57,15 @@ function ($, _) {
       return urlParams;
     },
 
+    // this takes the current URL and replaces all ?x=x with whatever new params are passed
+    replaceQueryParams: function(params) {
+      var fragment = window.location.hash.replace(/\?.*$/, "");
+      if (!_.isEmpty(params)) {
+        fragment = fragment + "?" + $.param(params);
+      }
+      return fragment;
+    },
+
     addWindowResize: function(fun, key){
       onWindowResize[key]=fun;
       // You shouldn't need to call it here. Just define it at startup and each time it will loop

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/fonts/fauxtonicon.eot
----------------------------------------------------------------------
diff --git a/assets/fonts/fauxtonicon.eot b/assets/fonts/fauxtonicon.eot
index 85d7c01..6f6bab6 100644
Binary files a/assets/fonts/fauxtonicon.eot and b/assets/fonts/fauxtonicon.eot differ


[4/4] fauxton commit: updated refs/heads/master to 332c7b5

Posted by ro...@apache.org.
New Query Options tray added

This is a cherry-picked branch the clears up the old PR:
https://github.com/apache/couchdb-fauxton/pull/78

For comments regarding this PR, see the original PR. For scope
and discussion of the fix, see the Jira ticket:
https://issues.apache.org/jira/browse/COUCHDB-2347

Closes COUCHDB-2347


Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/332c7b53
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/332c7b53
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/332c7b53

Branch: refs/heads/master
Commit: 332c7b5350a928e35006e821f1f8bf9b6b748c12
Parents: 5976c65
Author: Benjamin Keen <be...@gmail.com>
Authored: Fri Oct 3 10:38:33 2014 -0700
Committer: Robert Kowalski <ro...@apache.org>
Committed: Thu Oct 16 11:59:30 2014 +0200

----------------------------------------------------------------------
 app/addons/compaction/base.js                   |   3 +-
 .../documents/assets/less/advancedOptions.less  |   1 -
 app/addons/documents/assets/less/changes.less   |   3 -
 app/addons/documents/assets/less/documents.less | 122 ++---
 .../documents/assets/less/queryOptions.less     | 161 ++++++
 app/addons/documents/resources.js               |   1 -
 app/addons/documents/routes-documents.js        | 106 ++--
 .../documents/templates/advanced_options.html   | 157 ------
 .../documents/templates/all_docs_layout.html    |  11 +-
 .../documents/templates/all_docs_list.html      |   4 +-
 app/addons/documents/templates/ddoc_info.html   |   2 +-
 .../documents/templates/header_alldocs.html     |   5 +-
 .../documents/templates/query_options.html      |  38 ++
 .../query_options_additional_params.html        |  61 +++
 .../templates/query_options_key_search.html     |  50 ++
 .../templates/query_options_main_fields.html    |  55 ++
 app/addons/documents/templates/view_editor.html |   7 +-
 .../documents/tests/views-advancedoptsSpec.js   |   6 +-
 app/addons/documents/views-advancedopts.js      | 270 ----------
 app/addons/documents/views-index.js             |  90 ++--
 app/addons/documents/views-queryoptions.js      | 519 +++++++++++++++++++
 app/addons/documents/views.js                   | 239 +++------
 app/addons/fauxton/base.js                      |   3 +-
 app/addons/fauxton/components.js                |   6 +-
 app/addons/fauxton/templates/api_bar.html       |   2 +-
 app/core/routeObject.js                         |   7 +-
 app/core/router.js                              |   3 +-
 app/core/utils.js                               |  10 +
 assets/fonts/fauxtonicon.eot                    | Bin 17640 -> 18290 bytes
 assets/fonts/fauxtonicon.svg                    | 259 +++++----
 assets/fonts/fauxtonicon.ttf                    | Bin 17452 -> 18100 bytes
 assets/fonts/fauxtonicon.woff                   | Bin 10000 -> 10368 bytes
 .../fonts/styleguide/fauxtonicon-preview.html   | 441 ++++++++--------
 assets/icons/gears.svg                          |   8 +
 assets/less/bootstrap/forms.less                |   2 +-
 assets/less/fauxton.less                        |  27 +-
 assets/less/formstyles.less                     |  38 +-
 assets/less/icons.less                          | 214 ++++----
 38 files changed, 1688 insertions(+), 1243 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/compaction/base.js
----------------------------------------------------------------------
diff --git a/app/addons/compaction/base.js b/app/addons/compaction/base.js
index de0f124..f80c42e 100644
--- a/app/addons/compaction/base.js
+++ b/app/addons/compaction/base.js
@@ -17,6 +17,7 @@ define([
 ],
 
 function(app, FauxtonAPI, Compaction) {
+
   Compaction.initialize = function() {
     FauxtonAPI.registerExtension('docLinks', {
       title: "Compact & Clean", 
@@ -24,7 +25,7 @@ function(app, FauxtonAPI, Compaction) {
       icon: "icon-cogs"
     });
 
-    FauxtonAPI.registerExtension('advancedOptions:ViewButton', new Compaction.CompactView({}));
+    FauxtonAPI.registerExtension('ViewEditor:ButtonRow', new Compaction.CompactView({}));
   };
 
   return Compaction;

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/assets/less/advancedOptions.less
----------------------------------------------------------------------
diff --git a/app/addons/documents/assets/less/advancedOptions.less b/app/addons/documents/assets/less/advancedOptions.less
deleted file mode 100644
index 2e29d38..0000000
--- a/app/addons/documents/assets/less/advancedOptions.less
+++ /dev/null
@@ -1 +0,0 @@
-/*for advanced options css*/

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/assets/less/changes.less
----------------------------------------------------------------------
diff --git a/app/addons/documents/assets/less/changes.less b/app/addons/documents/assets/less/changes.less
index 96e6d19..ebba21d 100644
--- a/app/addons/documents/assets/less/changes.less
+++ b/app/addons/documents/assets/less/changes.less
@@ -7,9 +7,6 @@
   right: 15px;
 }
 
-.changes-view {
-  padding-top: 70px;
-}
 
 .change-wrapper {
   margin-top: 20px;

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/assets/less/documents.less
----------------------------------------------------------------------
diff --git a/app/addons/documents/assets/less/documents.less b/app/addons/documents/assets/less/documents.less
index 2b29744..8e730b5 100644
--- a/app/addons/documents/assets/less/documents.less
+++ b/app/addons/documents/assets/less/documents.less
@@ -10,31 +10,31 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 /*ALL DOCS TABLE*/
-
 @import "../../../../../assets/less/variables.less";
 @import "../../../../../assets/less/bootstrap/variables.less";
 @import "../../../../../assets/less/bootstrap/mixins.less";
-@import "advancedOptions.less";
+@import "queryOptions.less";
 @import "changes.less";
 @import "sidenav.less";
 
 tr.all-docs-item {
   border: none;
   background: transparent;
-    .btn-group {
-        position: absolute;
-        right: 0;
-        top: 6px;
-    }
+  .btn-group {
+    position: absolute;
+    right: 0;
+    top: 6px;
+  }
 }
+
 button.beautify {
   margin-top: 20px;
 }
 
 .toggle-btns {
-    label{
-        margin-right: 0;
-    }
+  label {
+    margin-right: 0;
+  }
 }
 
 #per-page {
@@ -43,65 +43,66 @@ button.beautify {
   #select-per-page {
     margin-top: 10px;
   }
-
 }
 
-
-#query div.controls-group.well{
-    height: 180px;
-    margin-right: 17px;
+#query div.controls-group.well {
+  height: 180px;
+  margin-right: 17px;
 }
 
 /** used in all_docs_list.html **/
 .view {
-    table td div {
-        position: relative;
-    }
+  table td div {
+    position: relative;
+  }
 
-    table td div div {
-        display: none;
-        line-height: 1;
-        position: absolute;
-        right: 4px;
-        top: 4px;
-    }
+  table td div div {
+    display: none;
+    line-height: 1;
+    position: absolute;
+    right: 4px;
+    top: 4px;
+  }
 
-    table td div:hover div a.edits {
-        padding-left: 16px;
-        padding-right: 16px;
-    }
+  table td div:hover div a.edits {
+    padding-left: 16px;
+    padding-right: 16px;
+  }
 
-    table td div:hover div {
-        display: block;
-    }
+  table td div:hover div {
+    display: block;
+  }
 }
 
 /** used in view_editor.html **/
-.design-doc-group{
-    .span3 { margin: 0;}
-    #new-ddoc-section {
-        margin-top: 10px;
-        label{ width: 100px}
-        .controls{
-            margin-left: 100px;
-        }
+.design-doc-group {
+  .span3 {
+    margin: 0;
+  }
+  #new-ddoc-section {
+    margin-top: 10px;
+    label {
+      width: 100px
     }
+    .controls {
+      margin-left: 100px;
+    }
+  }
 }
 
-
-#map-function, #reduce-function{
-    width: 100%;
-    font-size: 16px;
+#map-function, #reduce-function {
+  width: 100%;
+  font-size: 16px;
 }
 
 #doc-actions {
-	height: 42px;
+  height: 42px;
 }
 
 #editor-container {
-    width: 1316px;
-    height: 688px;
-    font-size: 16px;
+  width: 1316px;
+  height: 688px;
+  font-size: 16px;
 }
 
 button.string-edit {
@@ -137,21 +138,20 @@ button.string-edit[disabled] {
   display: inline-block;
 }
 
-
 .change-sequence {
   word-wrap: break-word;
 }
 
-
-#dashboard-upper-content{
-  .js-query-keys-wrapper{
+#dashboard-upper-content {
+  .js-query-keys-wrapper {
     padding-top: 0;
   }
-  /** used in advanced-options.html**/
+
+  /** used in query-options.html**/
   .custom-inputs {
-    .row-fluid{
+    .row-fluid {
       padding-top: 20px;
-      .radio, .checkbox{
+      .radio, .checkbox {
         padding-left: 0;
       }
       .checkbox.inline,
@@ -163,12 +163,14 @@ button.string-edit[disabled] {
   }
 }
 
-.nav-list{
+.nav-list {
   border-top: none;
 }
 
+.end-of-results {
+  margin-bottom: 30px;
 
-
-
-
-
+  .muted {
+    margin-bottom: 0px;
+  }
+}

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/assets/less/queryOptions.less
----------------------------------------------------------------------
diff --git a/app/addons/documents/assets/less/queryOptions.less b/app/addons/documents/assets/less/queryOptions.less
new file mode 100644
index 0000000..f326c5e
--- /dev/null
+++ b/app/addons/documents/assets/less/queryOptions.less
@@ -0,0 +1,161 @@
+// 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.
+
+#query-options-tray:before {
+  right: 140px;
+}
+
+#query-options-tray {
+  width: 490px;
+
+  .query-group:first-child {
+    margin-top: 0px;
+    padding-top: 0px;
+  }
+
+  .icon-question-sign {
+    margin-left: 3px;
+    font-size: 17.5px;
+  }
+
+  .query-group {
+    padding: 20px;
+    border-bottom: 1px solid #555;
+  }
+
+  .query-group:last-child {
+    border-bottom: none;
+  }
+  .controls-group {
+    margin: 0;
+  }
+  .controls-group:last-child {
+    margin: 0;
+  }
+  form {
+    overflow: scroll;
+    margin-bottom: 0;
+    .dropdown.inline {
+      display: inline-block;
+    }
+
+    input[type="text"],
+    textarea {
+      .border-radius(5px);
+      background-color: #666;
+      padding: 8px;
+      border: none;
+      color: #eee;
+      font-size: 13px;
+    }
+    .input-small {
+      width: 70px;
+      margin-left: 5px;
+    }
+    .checkbox {
+      padding: 0;
+      margin: 0;
+    }
+    .btn-success {
+      .border-radius(5px);
+    }
+    .btn-cancel, .btn-cancel:active {
+      background: none;
+      border: none;
+      box-shadow: none;
+      color: @red;
+      line-height: 1em;
+    }
+    select {
+      margin-top: -4px;
+      margin-bottom: 0px;
+    }
+    .include-end-key-row {
+      line-height: 20px;
+      margin-left: 8px;
+    }
+  }
+
+  .toggle-btns {
+    .btn {
+      padding: 5px 12px 5px;
+      background: #727A82;
+      color: #fff;
+      font-size: 12px;
+      border: none;
+    }
+    .btn.active {
+      background: #fff;
+      color: #E33F3B;
+      box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25) inset, 2px 2px 2px rgba(0, 0, 0, 0.15);
+    }
+    label:first-child {
+      .border-radius(5px 0 0 5px);
+    }
+    label:last-child {
+      .border-radius(0 5px 5px 0);
+      margin-left: 1px;
+    }
+  }
+
+  label {
+    margin-right: 0;
+    font-size: 13px;
+
+    /*
+    due to: https://code.google.com/p/chromium/issues/detail?id=411065 - that bug causes the checkbox state not to
+    update when the user clicks on labels quickly. It can be removed once the fix is in Chrome stable
+    */
+    -webkit-user-select: none;
+  }
+  label.disabled {
+    color: #777777;
+  }
+  div.controls-group.well{
+    height: 156px;
+    background: none;
+    border: none;
+    padding: 10px 0;
+  }
+  .row-fluid.fieldsets {
+    .inline {
+      width: 32%;
+    }
+    .inline:nth-child(3) {
+      text-align: right;
+      width: 34%;
+    }
+  }
+  .row-fluid.fieldsets {
+    margin-bottom: 5px;
+    :last-child {
+      margin-bottom: 2px;
+    }
+  }
+
+  #skipRows {
+    margin-left: 5px;
+  }
+  .add-on {
+    height: 28px;
+  }
+  .hide {
+    display: none;
+  }
+
+  .icon-question-sign:hover {
+    color: @red;
+  }
+  .additionalParams {
+    margin-bottom: 2px;
+  }
+}

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/resources.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/resources.js b/app/addons/documents/resources.js
index ef119ac..651ca37 100644
--- a/app/addons/documents/resources.js
+++ b/app/addons/documents/resources.js
@@ -249,7 +249,6 @@ function(app, FauxtonAPI, PagingCollection) {
       var ddoc = this.id.replace(/^_design\//,"");
       return "_design/"+app.utils.safeURLName(ddoc);
     }
-
   });
 
   Documents.ViewRow = FauxtonAPI.Model.extend({

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/routes-documents.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/routes-documents.js b/app/addons/documents/routes-documents.js
index d3f693f..37ec482 100644
--- a/app/addons/documents/routes-documents.js
+++ b/app/addons/documents/routes-documents.js
@@ -12,7 +12,6 @@
 
 define([
   "app",
-
   "api",
 
   // Modules
@@ -85,16 +84,16 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       "route:paginate": "paginate",
       "route:perPageChange": "perPageChange",
       "route:changesFilterAdd": "addFilter",
-      "route:changesFilterRemove": "removeFilter"
+      "route:changesFilterRemove": "removeFilter",
+      "route:updateQueryOptions": "updateQueryOptions",
+      "route:resetQueryOptions": "resetQueryOptions"
     },
 
     overrideBreadcrumbs: true,
 
     initialize: function (route, masterLayout, options) {
       this.databaseName = options[0];
-
       this.database = new Databases.Model({id:this.databaseName});
-
       this.designDocs = new Documents.AllDocs(null, {
         database: this.database,
         paging: {
@@ -123,12 +122,12 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       }));
     },
 
-    setUpDropdown: function(){
+    setUpDropdown: function() {
       var defaultMenuLinks = [{
         links: [{
           title: 'Replicate Database',
           icon: 'fonticon-replicate',
-          url: '#/replication/'+this.databaseName
+          url: '#/replication/' + this.databaseName
         },{
           title: 'Delete',
           icon: 'fonticon-trash',
@@ -159,37 +158,33 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       }];
 
       return _.reduce(FauxtonAPI.getExtensions('sidebar:links'), function (menuLinks, link) {
-
         menuLinks.push({
           title: link.title,
           url: newurlPrefix + "/" + link.url,
           icon: 'fonticon-plus-circled'
         });
-
         return menuLinks;
-     }, menuLinks);
-
+      }, menuLinks);
     },
 
     designDocMetadata:  function(database, ddoc){
       this.toolsView && this.toolsView.remove();
       this.viewEditor && this.viewEditor.remove();
 
-      var designDocInfo = new Resources.DdocInfo({_id: "_design/"+ddoc},{database: this.database });
-
+      var designDocInfo = new Resources.DdocInfo({ _id: "_design/" + ddoc }, { database: this.database });
       this.setView("#dashboard-lower-content", new Documents.Views.DdocInfo({
         ddocName: ddoc,
         model: designDocInfo
       }));
 
       this.sidebar.setSelectedTab(app.utils.removeSpecialCharacters(ddoc)+"_metadata");
+      this.leftheader.updateCrumbs(crumbs.allDocs(this.database));
+      this.rightHeader.hideQueryOptions();
 
-
-      this.leftheader.updateCrumbs(crumbs.allDocs(this.database)); 
-
+      // problem line again
       this.apiUrl = [designDocInfo.url('apiurl'), designDocInfo.documentation() ];
-
     },
+
     tempFn:  function(databaseName, ddoc, fn){
       this.setView("#dashboard-upper-content", new Documents.Views.temp({}));
       this.crumbs = function () {
@@ -197,7 +192,6 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
           {"name": this.database.id, "link": Databases.databaseUrl(this.database)},
         ];
       };
-
     },
 
     establish: function () {
@@ -215,10 +209,10 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
     },
 
     /*
-    * docParams are the options collection uses to fetch from the server
-    * urlParams are what are shown in the url and to the user
-    * They are not the same when paginating
-    */
+     * docParams are the options collection uses to fetch from the server
+     * urlParams are what are shown in the url and to the user
+     * They are not the same when paginating
+     */
     allDocs: function(databaseName, options) {
       var params = this.createParams(options),
           urlParams = params.urlParams,
@@ -232,23 +226,15 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       this.leftheader.updateCrumbs(crumbs.allDocs(this.database)); 
       this.database.buildAllDocs(docParams);
 
-      if (docParams.startkey && docParams.startkey.indexOf('_design') > -1) {
-        this.sidebar.setSelectedTab('design-docs');
+      if (docParams.startkey && docParams.startkey.indexOf("_design") > -1) {
+        this.sidebar.setSelectedTab("design-docs");
       } else {
-        this.sidebar.setSelectedTab('all-docs');
+        this.sidebar.setSelectedTab("all-docs");
       }
 
       this.viewEditor && this.viewEditor.remove();
-
       this.database.allDocs.paging.pageSize = this.getDocPerPageLimit(urlParams, parseInt(docParams.limit, 10));
 
-      this.viewEditor = this.setView("#dashboard-upper-content", new Documents.Views.AllDocsLayout({
-        database: this.database,
-        collection: this.database.allDocs,
-        params: urlParams,
-        docParams: docParams
-      }));
-
       this.documentsView = this.setView("#dashboard-lower-content", new Documents.Views.AllDocsList({
         database: this.database,
         collection: this.database.allDocs,
@@ -261,20 +247,23 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
        return [this.database.allDocs.urlRef("apiurl", urlParams), this.database.allDocs.documentation()];
       };
 
+      // update the rightHeader with the latest & greatest info
+      this.rightHeader.resetQueryOptions({ queryParams: urlParams });
+      this.rightHeader.showQueryOptions();
     },
 
-    viewFn: function (databaseName, ddoc, view) {
+    viewFn: function (databaseName, ddoc, viewName) {
       var params = this.createParams(),
           urlParams = params.urlParams,
           docParams = params.docParams,
           decodeDdoc = decodeURIComponent(ddoc);
 
-      view = view.replace(/\?.*$/,'');
+      viewName = viewName.replace(/\?.*$/,'');
 
       this.indexedDocs = new Documents.IndexCollection(null, {
         database: this.database,
         design: decodeDdoc,
-        view: view,
+        view: viewName,
         params: docParams,
         paging: {
           pageSize: this.getDocPerPageLimit(urlParams, parseInt(docParams.limit, 10))
@@ -284,11 +273,11 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       this.viewEditor = this.setView("#dashboard-upper-content", new Index.ViewEditor({
         model: this.database,
         ddocs: this.designDocs,
-        viewName: view,
+        viewName: viewName,
         params: urlParams,
         newView: false,
         database: this.database,
-        ddocInfo: this.ddocInfo(decodeDdoc, this.designDocs, view)
+        ddocInfo: this.ddocInfo(decodeDdoc, this.designDocs, viewName)
       }));
 
       this.toolsView && this.toolsView.remove();
@@ -300,14 +289,23 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
         database: this.database,
         indexedDocs: this.indexedDocs,
         designDocs: this.designDocs,
-        view: view
+        view: viewName
       });
 
-      this.sidebar.setSelectedTab(app.utils.removeSpecialCharacters(ddoc) + '_' + app.utils.removeSpecialCharacters(view));
+      this.sidebar.setSelectedTab(app.utils.removeSpecialCharacters(ddoc) + '_' + app.utils.removeSpecialCharacters(viewName));
 
       this.apiUrl = function() {
        return [this.indexedDocs.urlRef("apiurl", urlParams), "docs"];
       };
+
+      this.rightHeader.showQueryOptions();
+      this.rightHeader.resetQueryOptions({
+        queryParams: urlParams,
+        showStale: true,
+        hasReduce: true,
+        viewName: viewName,
+        ddocName: ddoc
+      });
     },
 
     ddocInfo: function (designDoc, designDocs, view) {
@@ -319,7 +317,6 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
     },
 
     createViewDocumentsView: function (options) {
-
       return this.setView("#dashboard-lower-content", new Documents.Views.AllDocsList({
         database: options.database,
         collection: options.indexedDocs,
@@ -338,19 +335,22 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       this.documentsView && this.documentsView.remove();
 
       this.viewEditor = this.setView("#dashboard-upper-content", new Index.ViewEditor({
-        currentddoc: "_design/"+designDoc || "",
+        currentddoc: "_design/" + designDoc || "",
         ddocs: this.designDocs,
         params: params,
         database: this.database,
         newView: true
       }));
 
-      this.sidebar.setSelectedTab('new-view');
+      this.sidebar.setSelectedTab("new-view");
+      this.rightHeader.hideQueryOptions();
 
       // clear out anything that was in the lower section
       this.removeView("#dashboard-lower-content");
 
-      //this.rightHeader.updateApiUrl([this.indexedDocs.urlRef("apiurl", urlParams), "docs"]);
+      // TODO
+//      var apiUrl = this.database.url("app") + "/new_view/" + designDoc;
+//      this.rightHeader.updateApiUrl([apiUrl, "docs"]);
     },
 
     updateAllDocsFromView: function (event) {
@@ -370,7 +370,6 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
         this.database.buildAllDocs(docParams);
         collection = this.database.allDocs;
         collection.paging.pageSize = pageSize;
-
       } else {
         collection = this.indexedDocs = new Documents.IndexCollection(null, {
           database: this.database,
@@ -399,7 +398,11 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       this.documentsView.setParams(docParams, urlParams);
       this.documentsView.forceRender();
 
-      this.apiUrl = [collection.urlRef("apiurl", urlParams), "docs"];
+      // this has been commented out because it causes the header bar to disappear after a search (i.e the "Query
+      // Options" link disappears). This issue is being addressed in a separate ticket (not sure about the Jira ID)
+//      this.apiUrl = function() {
+//        return [this.indexedDocs.urlRef("apiurl", urlParams), "docs"];
+//      };
     },
 
     perPageChange: function (perPage) {
@@ -473,13 +476,12 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
       this.viewEditor && this.viewEditor.remove();
 
       this.sidebar.setSelectedTab('changes');
-
       this.leftheader.updateCrumbs(crumbs.changes(this.database));
+      this.rightHeader.showQueryOptions();
 
       this.apiUrl = function () {
         return [this.database.url("changes-apiurl"), this.database.documentation()];
       };
-
     },
 
     addFilter: function (filter) {
@@ -490,10 +492,16 @@ function(app, FauxtonAPI, Documents, Changes, Index, DocEditor, Databases, Resou
     removeFilter: function (filter) {
       this.changesView.filters.splice(this.changesView.filters.indexOf(filter), 1);
       this.changesView.render();
-    }
+    },
 
+    resetQueryOptions: function(options) {
+      this.rightHeader.resetQueryOptions(options);
+    },
+
+    updateQueryOptions: function(options) {
+      this.rightHeader.updateQueryOptions(options);
+    }
   });
 
   return DocumentsRouteObject;
 });
-

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/advanced_options.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/advanced_options.html b/app/addons/documents/templates/advanced_options.html
deleted file mode 100644
index c986d4e..0000000
--- a/app/addons/documents/templates/advanced_options.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!--
-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.
--->
-<div class="errors-container"></div>
-<form class="js-view-query-update custom-inputs">
-
-<!-- tabs for choosing Keys or Start & end -->
-
-  <div class="btn-group toggle-btns row-fluid">
-    <label for="showKeys" class="drop-down btn span6">
-     By Key(s)
-    </label>
-    <label for="showStartEnd" class="drop-down btn span6">
-      Between Keys
-    </label>
-  </div>
-
-  <div class="controls-group well hide js-query-keys-wrapper">
-    <div class="row-fluid" id="js-showKeys">
-      <div class="controls controls-row">
-        <label for="keys-input" class="drop-down">A key, or an array of keys.</label>
-        <textarea id="keys-input" name="keys" class="input-xxlarge" rows="5" type="text" placeholder='Enter valid JSON; e.g., ["1234"] or ["1234","2345"]'></textarea>
-        <div id="keys-error" class="inline-block js-keys-error"></div>
-      </div>
-    </div>
-    <div class="row-fluid hide" id="js-showStartEnd">
-      <div class="controls controls-row">
-        <div class="span6">
-          <label for="startkey" class="drop-down">Start key</label>
-          <input name="startkey" id="startkey" type="text" placeholder='e.g., "1234"' disabled>
-        </div>
-        <div class="span6">
-          <label for="endkey" class="drop-down">End key</label>
-          <input id="endkey" name="endkey" type="text" placeholder='e.g., "1234"'>
-          <div class="controls controls-row checkbox inline">
-            <input id="check5" name="inclusive_end" type="checkbox" value="true" checked disabled>
-            <label for="check5">Include End Key in results</label>
-          </div>
-        </div>
-
-      </div>
-
-    </div>
-  </div>
-
-<!-- Limit and Skip are conditional -->
-
-  <div class="controls-group">
-
-    <div class="row-fluid">
-      <div class="span6">
-        <label class="drop-down inline">
-          Limit:
-          <select name="limit" class="input-medium">
-            <option selected="selected">None</option>
-            <option>5</option>
-            <option>10</option>
-            <option>20</option>
-            <option>30</option>
-            <option>50</option>
-            <option>100</option>
-  		      <option>500</option>
-          </select>
-        </label>
-      </div>
-      <div class="span6">
-        <label for="skipRows" class="inline drop-down">
-          # of rows to skip
-          <input name="skip" class="input-small" type="text" id="skipRows" placeholder="0">
-        </label>
-      </div>
-    </div>
-    <div class="row-fluid">
-      <div class="span6">
-        <label id="select2" class="drop-down inline">
-          Order:
-          <select id="select2" name="descending" class="input-medium">
-            <option value="false">Ascending</option>
-            <option value="true">Descending</option>
-          </select>
-        </label>
-      </div>
-      <div class="span6">
-        <label id="select2" class="drop-down inline">
-          Docs:
-          <select id="select2" name="include_docs" class="input-medium">
-            <option value="false">Exclude</option>
-            <option value="true">Include</option>
-          </select>
-        </label>
-      </div>
-    </div>
-    <div class="row-fluid">
-      <% if (showStale) { %>
-        <div class="span6">
-          <div class="checkbox inline">
-            <input id="check7" name="stale" type="checkbox" value="ok">
-            <label for="check7">Stale</label>
-          </div>
-        </div>
-      <% } %>
-      <div class="span6 update-seq">
-        <div class="checkbox inline">
-          <input id="check6" name="update_seq" type="checkbox" value="true">
-          <label for="check6">Update Sequence</label>
-        </div>
-      </div>
-
-    </div>
-  <% if (hasReduce) { %>
-    <div class="row-fluid">
-      <div class="span6">
-        <div class="checkbox inline">
-          <input id="check2" name="reduce" type="checkbox" value="true">
-          <label for="check2">Reduce</label>
-        </div>
-      </div>
-      <div class="span6">
-        <label id="select1" class="drop-down inline">
-          Group Level:
-          <select id="select1" disabled name="group_level" class="input-small">
-            <option value="0">None</option>
-            <option value="1">1</option>
-            <option value="2">2</option>
-            <option value="3">3</option>
-            <option value="4">4</option>
-            <option value="5">5</option>
-            <option value="6">6</option>
-            <option value="7">7</option>
-            <option value="8">8</option>
-            <option value="9">9</option>
-            <option value="999" selected="selected">Exact</option>
-          </select>
-        </label>
-      </div>
-    </div>
-  <% } %>
-  </div>
-
-  <div class="controls-group">
-    <div id="button-options" class="controls controls-row">
-      <button type="submit" class="btn btn-success">Query</button>
-    </div>
-  </div>
-</form>
-</div>
-

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/all_docs_layout.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/all_docs_layout.html b/app/addons/documents/templates/all_docs_layout.html
index e2c2479..8db91ed 100644
--- a/app/addons/documents/templates/all_docs_layout.html
+++ b/app/addons/documents/templates/all_docs_layout.html
@@ -11,15 +11,6 @@ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 License for the specific language governing permissions and limitations under
 the License.
 -->
-<div class="dashboard-upper-menu">
-	<ul class="nav nav-tabs window-resizeable" id="db-views-tabs-nav">
-	  <li><a id="toggle-query" href="#query" data-bypass="true" data-toggle="tab">
-	    <i class="fonticon fonticon-plus"></i> Query Options</a></li>
-	</ul>
-	<div class="js-search searchbox-container"></div>
-</div>
-
 <div class="tab-content">
-  <div class="tab-pane" id="query">
-  </div>
+  <div class="tab-pane" id="query"></div>
 </div>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/all_docs_list.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/all_docs_list.html b/app/addons/documents/templates/all_docs_list.html
index 8db7bbe..c77fc05 100644
--- a/app/addons/documents/templates/all_docs_list.html
+++ b/app/addons/documents/templates/all_docs_list.html
@@ -33,9 +33,9 @@ the License.
   </table>
 
   <% if (endOfResults) { %>
-  <div class="text-center well">
+  <div class="end-of-results text-center well">
     <p class="muted">
-      End of results - <a id="js-end-results" href="#query" data-bypass="true" data-toggle="tab">edit query</a>
+      End of results - <a id="js-end-results" href="#query" data-bypass="true">edit query</a>
     </p>
     </div>
   <% } %>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/ddoc_info.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/ddoc_info.html b/app/addons/documents/templates/ddoc_info.html
index e9b1b6e..5c180ec 100644
--- a/app/addons/documents/templates/ddoc_info.html
+++ b/app/addons/documents/templates/ddoc_info.html
@@ -58,4 +58,4 @@ the License.
       </dl>
     </div>
   </div>
-</div>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/header_alldocs.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/header_alldocs.html b/app/addons/documents/templates/header_alldocs.html
index b353d89..a4da0fb 100644
--- a/app/addons/documents/templates/header_alldocs.html
+++ b/app/addons/documents/templates/header_alldocs.html
@@ -13,13 +13,12 @@ the License.
 -->
 
   <!-- floats right -->
-
   <div id="header-api-bar" class="button"></div>
 
   <!-- Query Options-->
-  <!--<div class="button header-query-options">
+  <div id="header-query-options" class="button">
     <div id="query-options"></div>
-  </div>-->
+  </div>
 
   <!-- search (jump to doc)-->
   <div id="header-search" class="js-search searchbox-container"></div>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/query_options.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/query_options.html b/app/addons/documents/templates/query_options.html
new file mode 100644
index 0000000..8126457
--- /dev/null
+++ b/app/addons/documents/templates/query_options.html
@@ -0,0 +1,38 @@
+<% /*
+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.
+*/ %>
+<a id="toggle-query" href="#query-options-tray" data-bypass="true" data-toggle="tab"
+   class="btn btn-primary pull-right query-options-btn">
+  <i class="icon header-icon fonticon-gears"></i>
+  Query Options
+</a>
+
+<div id="query-options-tray" class="query-options tray">
+  <form class="js-view-query-update custom-inputs">
+
+    <div class="query-group" id="query-options-main-fields"></div>
+    <div class="query-group" id="query-options-key-search"></div>
+    <div class="controls-group query-group" id="query-options-additional-params"></div>
+
+    <div class="controls-group query-group">
+      <div id="button-options" class="controls controls-row">
+        <button type="submit" class="btn btn-success">
+          <i class="fonticon-play icon"></i>
+          Query
+        </button>
+        <a class="btn btn-cancel">Cancel</a>
+      </div>
+    </div>
+
+  </form>
+</div>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/query_options_additional_params.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/query_options_additional_params.html b/app/addons/documents/templates/query_options_additional_params.html
new file mode 100644
index 0000000..3784315
--- /dev/null
+++ b/app/addons/documents/templates/query_options_additional_params.html
@@ -0,0 +1,61 @@
+<% /*
+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.
+*/ %>
+
+<!-- Limit and Skip are conditional -->
+<div class="add-on additionalParams">Additional Parameters</div>
+
+<div class="row-fluid fieldsets">
+
+  <% if (showStale) { %>
+  <div class="checkbox inline">
+    <input id="qoStale" name="stale" type="checkbox" value="ok" />
+    <label for="qoStale">Stale</label>
+  </div>
+  <% } %>
+
+  <div class="checkbox inline">
+    <input id="qoUpdateSeq" name="update_seq" type="checkbox" value="true" />
+    <label for="qoUpdateSeq">Update Sequence</label>
+  </div>
+
+  <div class="dropdown inline">
+    <label class="drop-down">
+      Limit
+      <select id="qoLimit" name="limit" class="input-small">
+        <option value="" selected="selected">None</option>
+        <option value="5">5</option>
+        <option value="10">10</option>
+        <option value="20">20</option>
+        <option value="30">30</option>
+        <option value="50">50</option>
+        <option value="100">100</option>
+        <option value="500">500</option>
+      </select>
+    </label>
+  </div>
+</div>
+
+<div class="row-fluid fieldsets">
+  <div class="checkbox inline">
+    <input id="qoDescending" name="descending" type="checkbox" value="true" />
+    <label for="qoDescending">Descending</label>
+  </div>
+
+  <div class="dropdown inline">
+    <label for="qoSkip" class="drop-down">
+      Skip
+      <input name="skip" class="input-small" type="text" id="qoSkip" placeholder="# of rows" />
+    </label>
+  </div>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/query_options_key_search.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/query_options_key_search.html b/app/addons/documents/templates/query_options_key_search.html
new file mode 100644
index 0000000..b288b4d
--- /dev/null
+++ b/app/addons/documents/templates/query_options_key_search.html
@@ -0,0 +1,50 @@
+<% /*
+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.
+*/ %>
+
+<div class="add-on">Keys</div>
+
+<!-- tabs for choosing Keys or start & end -->
+<div class="btn-group toggle-btns row-fluid">
+  <label data-action="showByKeys" class="drop-down btn">By Key(s)</label>
+  <label data-action="showBetweenKeys" class="drop-down btn">Between Keys</label>
+</div>
+
+<div class="controls-group well hide js-query-keys-wrapper">
+  <div class="row-fluid js-keys-section" id="js-showKeys">
+    <div class="controls controls-row">
+      <label for="keys-input" class="drop-down">A key, or an array of keys.</label>
+      <textarea id="keys-input" name="keys" class="input-xxlarge" rows="5" type="text"
+        placeholder='Enter valid JSON; e.g., ["1234"] or ["1234","2345"]'></textarea>
+      <div id="keys-error" class="inline-block js-keys-error"></div>
+    </div>
+  </div>
+
+  <div class="row-fluid js-keys-section hide" id="js-showStartEnd">
+    <div class="controls controls-row">
+      <div>
+        <label for="startkey" class="drop-down">Start key</label>
+        <input name="startkey" id="startkey" type="text" placeholder='e.g., "1234"' disabled />
+      </div>
+      <div>
+        <label for="endkey" class="drop-down">End key</label>
+        <input id="endkey" name="endkey" type="text" placeholder='e.g., "1234"'>
+        <div class="controls include-end-key-row checkbox controls-row inline">
+          <input id="qoIncludeEndKeyInResults" name="inclusive_end" type="checkbox" value="true" checked disabled />
+          <label for="qoIncludeEndKeyInResults">Include End Key in results</label>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/query_options_main_fields.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/query_options_main_fields.html b/app/addons/documents/templates/query_options_main_fields.html
new file mode 100644
index 0000000..48b5d3c
--- /dev/null
+++ b/app/addons/documents/templates/query_options_main_fields.html
@@ -0,0 +1,55 @@
+<% /*
+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.
+*/ %>
+
+<span class="add-on">
+  Query Options
+  <a class="help-link" href="<%-getDocUrl(documentation)%>" target="_blank" data-bypass="true">
+    <i class="icon-question-sign"></i>
+  </a>
+</span>
+
+<div class="errors-container"></div>
+
+<div class="controls-group">
+  <div class="row-fluid fieldsets">
+    <div class="checkbox inline">
+      <input id="qoIncludeDocs" name="include_docs" type="checkbox" value="true" />
+      <label for="qoIncludeDocs" id="qoIncludeDocsLabel">Include Docs</label>
+    </div>
+
+    <% if (hasReduce) { %>
+    <div class="checkbox inline">
+      <input id="qoReduce" name="reduce" type="checkbox" value="true" />
+      <label for="qoReduce">Reduce</label>
+    </div>
+
+    <label class="drop-down inline" id="qoGroupLevelGroup">
+      Group Level
+      <select id="qoGroupLevel" name="group_level" class="input-small">
+        <option value="0">None</option>
+        <option value="1">1</option>
+        <option value="2">2</option>
+        <option value="3">3</option>
+        <option value="4">4</option>
+        <option value="5">5</option>
+        <option value="6">6</option>
+        <option value="7">7</option>
+        <option value="8">8</option>
+        <option value="9">9</option>
+        <option value="999" selected="selected">Exact</option>
+      </select>
+    </label>
+    <% } %>
+  </div>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/templates/view_editor.html
----------------------------------------------------------------------
diff --git a/app/addons/documents/templates/view_editor.html b/app/addons/documents/templates/view_editor.html
index 769deed..d22c734 100644
--- a/app/addons/documents/templates/view_editor.html
+++ b/app/addons/documents/templates/view_editor.html
@@ -15,12 +15,8 @@ the License.
   <ul class="nav nav-tabs" id="db-views-tabs-nav">
     <li class="active"> <a data-bypass="true" id="index-nav" data-toggle="tab" href="#index">
       <i class="fonticon-wrench fonticon"></i>
-      <% if (newView) { %>Create Index <% } else { %>Edit Index <% } %></a></li>
-    <% if (!newView) { %>
-    <li><a data-bypass="true" id="query-nav" href="#query" data-toggle="tab">
-      <i class="fonticon-plus fonticon"></i> Query Options</a>
+      <% if (newView) { %>Create Index <% } else { %>Edit Index <% } %></a>
     </li>
-    <% } %>
   </ul>
 </div>
   <div class="all-docs-list errors-container"></div>
@@ -78,6 +74,7 @@ the License.
             <% if (!newView) { %>
             <button class="btn btn-danger delete"><i class="icon fonticon-cancel-circled"></i> Delete</button>
             <% } %>
+            <span id="viewBtnExtensions"></span>
           </div>
           <div class="clearfix"></div>
         </form>

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/tests/views-advancedoptsSpec.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/tests/views-advancedoptsSpec.js b/app/addons/documents/tests/views-advancedoptsSpec.js
index 3f9373b..fe9bbe5 100644
--- a/app/addons/documents/tests/views-advancedoptsSpec.js
+++ b/app/addons/documents/tests/views-advancedoptsSpec.js
@@ -10,14 +10,14 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 define([
-        'addons/documents/views-advancedopts',
-        'testUtils'
+  'addons/documents/views-queryoptions',
+  'testUtils'
 ], function (Views, testUtils) {
   var assert = testUtils.assert,
       ViewSandbox = testUtils.ViewSandbox,
       viewSandbox;
 
-  describe('Documents AdvancedOptions', function () {
+  describe('Documents QueryOptions', function () {
     var view;
       beforeEach(function () {
         viewSandbox = new ViewSandbox();

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/views-advancedopts.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/views-advancedopts.js b/app/addons/documents/views-advancedopts.js
deleted file mode 100644
index b2e1af5..0000000
--- a/app/addons/documents/views-advancedopts.js
+++ /dev/null
@@ -1,270 +0,0 @@
-// 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.
-
-define([
-       "app",
-       "api",
-       // Libs
-       "addons/fauxton/resizeColumns",
-],
-
-function(app, FauxtonAPI, resizeColumns ) {
-
-  var Views = {};
-
-  Views.AdvancedOptions = FauxtonAPI.View.extend({
-    template: "addons/documents/templates/advanced_options",
-    className: "advanced-options well",
-
-    initialize: function (options) {
-      this.database = options.database;
-      this.ddocName = options.ddocName;
-      this.viewName = options.viewName;
-      this.updateViewFn = options.updateViewFn;
-      this.previewFn = options.previewFn;
-      this.showStale = _.isUndefined(options.showStale) ? false : options.showStale;
-      this.hasReduce = _.isUndefined(options.hasReduce) ? true : options.hasReduce;
-    },
-
-    events: {
-      "change form.js-view-query-update input": "updateFilters",
-      "change form.js-view-query-update select": "updateFilters",
-      "submit form.js-view-query-update": "updateView",
-      "click .toggle-btns > label":  "toggleQuery"
-    },
-
-    toggleQuery: function(e){
-      e.preventDefault();
-
-      if (this.$(e.currentTarget).hasClass("active")){
-        this.$('.js-query-keys-wrapper').addClass("hide");
-        this.$(".toggle-btns > label").removeClass('active');
-        this.$('.js-query-keys-wrapper').find("input,textarea").attr("disabled","true");
-      } else {
-        this.$('.js-query-keys-wrapper').removeClass("hide");
-        var showFunctionName =this.$(e.currentTarget).attr("for");
-        //highlight current
-        this.$(".toggle-btns > label").removeClass('active');
-        this.$(e.currentTarget).addClass("active");
-        this.$("[id^='js-show']").hide();
-        //show section & disable what needs to be disabled
-        this[showFunctionName]();
-      }
-    },
-
-    showKeys: function(){
-      this.$("#js-showKeys, .js-disabled-message").show();
-      this.$('[name="startkey"],[name="endkey"],[name="inclusive_end"]').attr("disabled","true");
-      this.$('[name="keys"]').removeAttr("disabled");
-    },
-
-    showStartEnd: function(){
-      this.$("#js-showStartEnd").show();
-      this.$('[name="startkey"],[name="endkey"],[name="inclusive_end"]').removeAttr("disabled");
-      this.$('.js-disabled-message').hide();
-      this.$('[name="keys"]').attr("disabled","true");
-    },
-
-    beforeRender: function () {
-      if (this.viewName && this.ddocName) {
-        var buttonViews = FauxtonAPI.getExtensions('advancedOptions:ViewButton');
-        _.each(buttonViews, function (view) {
-          this.insertView('#button-options', view);
-          view.update(this.database, this.ddocName, this.viewName);
-        }, this);
-      }
-    },
-
-    renderOnUpdatehasReduce: function (hasReduce) {
-      this.hasReduce = hasReduce;
-      this.render();
-    },
-
-    parseJSON: function (value) {
-      try {
-        return JSON.parse(value);
-      } catch(e) {
-        return undefined;
-      }
-    },
-
-    validateKeys:  function(param){
-      var errorMsg = false,
-          parsedValue = this.parseJSON(param.value);
-
-      if (_.isUndefined(parsedValue)) {
-        errorMsg = "Keys must be valid json.";
-      } else if (!_.isArray(parsedValue)) {
-        errorMsg =  "Keys values must be in an array. E.g [1,2,3]";
-      }
-
-      if (errorMsg) {
-        this.$('.js-keys-error').empty();
-        FauxtonAPI.addNotification({
-          type: "error",
-          msg: errorMsg,
-          clear:  false,
-          selector: '.advanced-options .errors-container'
-        });
-        return false;
-      }
-
-      return true;
-    },
-    validateFields: function(params){
-      var errors = false;
-      //so ghetto. Spaghetti code.
-      for (var i= 0; i <params.length; i++){
-        if (params[i].name === "skip"){
-          if (!(/^\d+$/).test(params[i].value)){
-            FauxtonAPI.addNotification({
-              msg: "Numbers only for skip",
-              type: "warn",
-              selector: ".advanced-options .errors-container",
-              clear:  true
-            });
-            errors = true;
-          }
-        }
-      }
-      return errors;
-    },
-    queryParams: function () {
-      var $form = this.$(".js-view-query-update"),
-          keysParam = false;
-
-      var params = _.reduce($form.serializeArray(), function(params, param) {
-        if (!param.value) { return params; }
-        if (param.name === "limit" && param.value === 'None') { return params; }
-        if (param.name === "keys") { keysParam = param; }
-        params.push(param);
-        return params;
-      }, []);
-
-
-      if (keysParam && !this.validateKeys(keysParam)) { return false; }
-
-      if (params && this.validateFields(params)){ return false; }
-
-      // Validate *key* params to ensure they're valid JSON
-      var keyParams = ["keys","startkey","endkey"];
-      var errorParams = _.filter(params, function(param) {
-        if (_.contains(keyParams, param.name) && _.isUndefined(this.parseJSON(param.value))) {
-            return true;
-          }
-
-          return false;
-      }, this);
-
-      return {params: params, errorParams: errorParams};
-    },
-
-    updateView: function (event) {
-      event.preventDefault();
-      var params = this.queryParams();
-      if (!params) { return;}
-      this.updateViewFn(event, params);
-    },
-
-    updateFilters: function(event) {
-      event.preventDefault();
-      var $ele = $(event.currentTarget);
-      var name = $ele.attr('name');
-      this.updateFiltersFor(name, $ele);
-    },
-
-    updateFiltersFor: function(name, $ele) {
-      var $form = $ele.parents("form.js-view-query-update:first");
-      switch (name) {
-        // Reduce constraints
-        //   - Can't include_docs for reduce=true
-        //   - can't include group_level for reduce=false
-        case "reduce":
-          if ($ele.prop('checked') === true) {
-          if ($form.find("input[name=include_docs]").prop("checked") === true) {
-            $form.find("input[name=include_docs]").prop("checked", false);
-            var notification = FauxtonAPI.addNotification({
-              msg: "include_docs has been disabled as you cannot include docs on a reduced view",
-              type: "warn",
-              selector: ".advanced-options .errors-container",
-              clear:  true
-            });
-          }
-          $form.find("input[name=include_docs]").prop("disabled", true);
-          $form.find("select[name=group_level]").prop("disabled", false);
-        } else {
-          $form.find("select[name=group_level]").val("999").prop("disabled", true);
-          $form.find("input[name=include_docs]").prop("disabled", false);
-        }
-        break;
-        case "skip":
-          if (!(/^\d+$/).test($ele.val())){
-            FauxtonAPI.addNotification({
-              msg: "Numbers only for skip",
-              type: "warn",
-              selector: ".advanced-options .errors-container",
-              clear:  true
-            });
-          }
-        break;
-        case "include_docs":
-        break;
-      }
-    },
-
-    updateFromParams: function (params) {
-      var $form = this.$el.find("form.js-view-query-update");
-      _.each(params, function(val, key) {
-        var $ele;
-        switch (key) {
-          case "limit":
-          case "descending":
-          case "group_level":
-            if (!val) { return; }
-            $form.find("select[name='"+key+"']").val(val);
-          break;
-          case "include_docs":
-            case "stale":
-            case "inclusive_end":
-            $form.find("input[name='"+key+"']").prop('checked', true);
-          break;
-          case "reduce":
-            $ele = $form.find("input[name='"+key+"']");
-          if (val == "true") {
-            $ele.prop('checked', true);
-          }
-          this.updateFiltersFor(key, $ele);
-          break;
-          case "key":
-          case "keys":
-            $form.find("textarea[name='"+key+"']").val(val);
-          break;
-          default:
-            $form.find("input[name='"+key+"']").val(val);
-          break;
-        }
-      }, this);
-    },
-
-    serialize: function () {
-      return {
-        hasReduce: this.hasReduce,
-        showPreview: false,
-        showStale: this.showStale
-      };
-    }
-  });
-
-
-  return Views;
-
-});

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/views-index.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/views-index.js b/app/addons/documents/views-index.js
index db4a83b..cbc76ad 100644
--- a/app/addons/documents/views-index.js
+++ b/app/addons/documents/views-index.js
@@ -12,15 +12,15 @@
 
 define([
   "app",
-
   "api",
   "addons/fauxton/components",
-
   "addons/documents/resources",
   "addons/databases/resources",
   "addons/pouchdb/base",
+
   //views
-  "addons/documents/views-advancedopts",
+  "addons/documents/views-queryoptions",
+
   // Libs
   "addons/fauxton/resizeColumns",
 
@@ -29,11 +29,20 @@ define([
   "plugins/prettify"
 ],
 
-function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
-         QueryOptions, resizeColumns, beautify, prettify) {
+function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, QueryOptions, resizeColumns, beautify) {
 
   var Views = {};
 
+
+  // this is a temporary workaround until I hear of a better on. The problem is that on initial page load (i.e. a refresh
+  // of the View page) the afterRender() functions calls a FauxtonAPI.triggerRouteEvent(). That causes this View to be
+  // rendered twice (at least, the afterRender() function then gets called twice) - and that causes the header content to
+  // disappear. This var tracks whether the View has been rendered and if not, doesn't call the triggerRouteEvent. btw,
+  // the reason the triggerRouteEvent('resetQueryOptions') code is there is that it ensures the Query Options tray shows
+  // the appropriate content for the current View (i.e. hasReduce or not)
+  var hasRenderedOnce = false;
+
+
   Views.ViewEditor = FauxtonAPI.View.extend({
     template: "addons/documents/templates/view_editor",
     builtinReduces: ['_sum', '_count', '_stats'],
@@ -57,13 +66,16 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
     },
 
     defaultLang: "javascript",
+    rendered: false,
 
     initialize: function(options) {
+      this.rightHeader = options.rightHeader;
       this.newView = options.newView || false;
       this.ddocs = options.ddocs;
       this.params = options.params;
       this.database = options.database;
       this.currentDdoc = options.currentddoc;
+
       if (this.newView) {
         this.viewName = 'newView';
       } else {
@@ -133,14 +145,14 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
     },
 
     saveView: function(event) {
-      var json, notification,
-      that = this;
+      var notification,
+          that = this;
 
-      if (event) { event.preventDefault();}
+      if (event) { event.preventDefault(); }
 
       $('#dashboard-content').scrollTop(0); //scroll up
 
-      if (this.hasValidCode() && this.$('#new-ddoc:visible').val() !=="") {
+      if (this.hasValidCode() && this.$('#new-ddoc:visible').val() !== "") {
         var mapVal = this.mapEditor.getValue(),
         reduceVal = this.reduceVal(),
         viewName = this.$('#index-name').val(),
@@ -177,7 +189,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
           if (that.newView || viewNameChange) {
             var fragment = '/database/' + that.database.safeID() +'/' + ddoc.safeID() + '/_views/' + app.utils.safeURLName(viewName);
 
-            FauxtonAPI.navigate(fragment, {trigger: false});
+            FauxtonAPI.navigate(fragment, { trigger: false });
             that.newView = false;
             that.ddocID = ddoc.safeID();
             that.viewName = viewName;
@@ -192,7 +204,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
 
           if (that.reduceFunStr !== reduceVal) {
             that.reduceFunStr = reduceVal;
-            that.advancedOptions.renderOnUpdatehasReduce(that.hasReduce());
+            FauxtonAPI.triggerRouteEvent("updateQueryOptions", { hasReduce: that.hasReduce() });
           }
 
           FauxtonAPI.triggerRouteEvent('updateAllDocs', {ddoc: ddocName, view: viewName});
@@ -231,29 +243,25 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
            // bootstrap wants the error on a control-group div, but we're not using that
            //$('form.view-query-update input[name='+param+'], form.view-query-update select[name='+param+']').addClass('error');
            return FauxtonAPI.addNotification({
-             msg: "JSON Parse Error on field: "+param.name,
+             msg: "JSON Parse Error on field: " + param.name,
              type: "error",
-             selector: ".advanced-options .errors-container",
+             selector: ".query-options .errors-container",
              clear: true
            });
          });
          FauxtonAPI.addNotification({
            msg: "Make sure that strings are properly quoted and any other values are valid JSON structures",
            type: "warning",
-           selector: ".advanced-options .errors-container",
+           selector: ".query-options .errors-container",
            clear: true
          });
 
          return false;
       }
 
-       var fragment = window.location.hash.replace(/\?.*$/, '');
-       if (!_.isEmpty(params)) {
-        fragment = fragment + '?' + $.param(params);
-       }
-
-       FauxtonAPI.navigate(fragment, {trigger: false});
-       FauxtonAPI.triggerRouteEvent('updateAllDocs', {ddoc: this.ddocID, view: this.viewName});
+      var url = app.utils.replaceQueryParams(params);
+      FauxtonAPI.navigate(url, {trigger: false});
+      FauxtonAPI.triggerRouteEvent('updateAllDocs', {ddoc: this.ddocID, view: this.viewName});
     },
 
 
@@ -276,7 +284,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
       FauxtonAPI.addNotification({
         msg: "<strong>Warning!</strong> Preview executes the Map/Reduce functions in your browser, and may behave differently from CouchDB.",
         type: "warning",
-        selector: ".advanced-options .errors-container",
+        selector: ".query-options .errors-container",
         fade: true,
         escape: false // beware of possible XSS when the message changes
       });
@@ -311,7 +319,6 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
       if (this.mapEditor) {
         return this.mapEditor.getValue();
       }
-
       return this.$('#map-function').text();
     },
 
@@ -401,8 +408,8 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
         $('.beautify-tooltip').tooltip();
       }
     },
-    beforeRender: function () {
 
+    beforeRender: function () {
       if (this.newView) {
         this.reduceFunStr = '';
         if (this.ddocs.length === 0) {
@@ -427,7 +434,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
         });
         designDocs.reset(filteredModels, {silent: true});
       }
-      
+
       if (!this.designDocSelector) { 
         this.designDocSelector = this.setView('.design-doc-group', new Views.DesignDocSelector({
           collection: designDocs,
@@ -436,27 +443,25 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
         }));
       }
 
+      // if this isn't a new View, add in whatever extensions have been associated with this location
       if (!this.newView) {
-        this.eventer = _.extend({}, Backbone.Events);
-
-        this.advancedOptions = this.insertView('#query', new QueryOptions.AdvancedOptions({
-          updateViewFn: this.updateView,
-          previewFn: this.previewView,
-          database: this.database,
-          viewName: this.viewName,
-          ddocName: this.model.id,
-          hasReduce: this.hasReduce(),
-          eventer: this.eventer,
-          showStale: true
-        }));
+        var buttonViews = FauxtonAPI.getExtensions('ViewEditor:ButtonRow');
+        _.each(buttonViews, function (view) {
+          this.insertView("#viewBtnExtensions", view);
+          view.update(this.database, this.ddocInfo.safeID(), this.viewName);
+        }, this);
       }
-
     },
 
     afterRender: function() {
-
-      if (this.params && !this.newView) {
-        this.advancedOptions.updateFromParams(this.params);
+      if (this.params && !this.newView && hasRenderedOnce) {
+        FauxtonAPI.triggerRouteEvent('resetQueryOptions', {
+          queryParams: this.params,
+          hasReduce: this.hasReduce(),
+          showStale: true,
+          viewName: this.viewName,
+          ddocName: this.ddocInfo.get('name')
+        });
       }
 
       this.designDocSelector.updateDesignDoc();
@@ -468,6 +473,8 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
         this.$('#index-nav').parent().removeClass('active');
       }
 
+      // note that this View has been rendered
+      hasRenderedOnce = true;
     },
 
     showEditors: function () {
@@ -550,6 +557,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb,
     newDocValidation: function(){
       return this.newDesignDoc() && this.$('#new-ddoc').val()==="";
     },
+
     getCurrentDesignDoc: function () {
       if (this.newDesignDoc()) {
         var doc = {

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/app/addons/documents/views-queryoptions.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/views-queryoptions.js b/app/addons/documents/views-queryoptions.js
new file mode 100644
index 0000000..5bea495
--- /dev/null
+++ b/app/addons/documents/views-queryoptions.js
@@ -0,0 +1,519 @@
+// 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.
+
+define([
+  "app",
+  "api",
+
+  // libs
+  "addons/fauxton/resizeColumns"
+],
+
+  function (app, FauxtonAPI) {
+
+    // our default settings for the Query Options tray
+    var defaultOptions = {
+      showStale: false,
+      hasReduce: false,
+      viewName: null,
+      ddocName: null,
+
+      // all the possible query search params. Ultimately these should probably be moved higher-up (route object?),
+      // because they also apply to the actual search results. Seems better to place them there, then use them in
+      // both places
+      queryParams: {
+        include_docs: "false",
+        keys: "",
+        limit: "",
+        descending: "false",
+        skip: "",
+        update_seq: "false",
+        startkey: "",
+        endkey: "",
+        inclusive_end: "true",
+        reduce: "false",
+        stale: "",
+        group_level: "999"
+      }
+    };
+
+
+    var Views = {};
+
+    // our main View. This is the only View exposed externally
+    Views.QueryOptionsTray = FauxtonAPI.View.extend({
+      template: "addons/documents/templates/query_options",
+      className: "query-options",
+
+      initialize: function (options) {
+
+        // overlays whatever custom options were passed with defaultOptions above, so this.options
+        // always contains all options. [This does a deep copy: we never overwrite defaultOptions!]
+        this.options = $.extend(true, {}, defaultOptions, options);
+
+        // add any general events relating to the Query Options tray
+        this.addEvents();
+
+        // add the sub-views
+        this.mainFieldsView       = this.setView("#query-options-main-fields", new MainFieldsView(this.options));
+        this.keySearchFieldsView  = this.setView("#query-options-key-search", new KeySearchFieldsView(this.options));
+        this.additionalParamsView = this.setView("#query-options-additional-params", new AdditionalParamsView(this.options));
+      },
+
+      addEvents: function () {
+        FauxtonAPI.Events.on('QueryOptions:closeTray', this.closeTray, this);
+        FauxtonAPI.Events.on('QueryOptions:openTray', this.toggleQueryOptionsTray, this);
+
+        // if the user just clicked outside the tray, close it [TODO be nice to generalize for all trays]
+        var trayIsVisible = this.trayIsVisible;
+        var closeTray = this.closeTray;
+
+        $("body").on("click.queryOptions", function (e) {
+          if (!trayIsVisible()) { return; }
+          if ($(e.target).closest("#query-options-tray").length === 0) {
+            closeTray();
+          }
+        });
+
+        $(window).on("resize", this.onResize);
+      },
+
+      afterRender: function () {
+        this.onResize();
+      },
+
+      cleanup: function () {
+        FauxtonAPI.Events.unbind("QueryOptions:closeTray");
+        FauxtonAPI.Events.unbind("QueryOptions:openTray");
+        $(window).off("resize", this.onResize);
+      },
+
+      events: {
+        "click #toggle-query": "toggleQueryOptionsTray", // hide/show the Query Options tray
+        "submit form.js-view-query-update": "onSubmit",  // submits the form
+        "click .btn-cancel": "onCancel"                  // closes the tray (doesn't reset the fields)
+      },
+
+      toggleQueryOptionsTray: function () {
+        if (!this.trayIsVisible()) {
+          $("#query-options-tray").velocity("transition.slideDownIn", 250); // TODO constant
+          FauxtonAPI.Events.trigger("APIbar:closeTray");
+        }
+      },
+
+      // returns all applicable query parameters for the Query Options tray
+      getQueryParams: function () {
+        var mainFieldParams = this.mainFieldsView.getParams();
+        var keySearchParams = this.keySearchFieldsView.getParams();
+        var additionalParams = this.additionalParamsView.getParams();
+
+        // assumption: there aren't conflicting keys
+        return _.extend({}, mainFieldParams, keySearchParams, additionalParams);
+      },
+
+      onSubmit: function (e) {
+        e.preventDefault();
+
+        // validate the user-inputted fields. If anything is invalid, the sub-view will display the appropriate
+        // errors to the user
+        if (!this.keySearchFieldsView.hasValidInputs() || !this.additionalParamsView.hasValidInputs()) {
+          return;
+        }
+
+        this.closeTray();
+
+        // this may be empty. That's ok! Perhaps the user just did a search with params, then removed them & wants the default
+        var params = this.getQueryParams();
+
+        // all looks good! Close the tray and publish the message
+        var url = app.utils.replaceQueryParams(params);
+        FauxtonAPI.navigate(url, { trigger: false });
+
+        if (this.options.viewName !== null && this.options.ddocName !== null) {
+          FauxtonAPI.triggerRouteEvent('updateAllDocs', { ddoc: this.options.ddocName, view: this.options.viewName });
+        } else {
+          FauxtonAPI.triggerRouteEvent("updateAllDocs", { allDocs: true });
+        }
+      },
+
+      onCancel: function () {
+        this.closeTray();
+      },
+
+      // if the screen is so small there isn't space for the full tray height we manually shrink the height to allow scrolling.
+      // Technically this should handle width as well, but we won't bother because there are way bigger issues with a screen
+      // with such a small width!
+      onResize: function () {
+        var $tray = $("#query-options-tray");
+        var heightFromTop = parseInt($tray.css("top"), 10);
+        var windowHeight = $(window).height();
+
+        // we apply the max-height to the form rather than the entire tray to allow the little up arrow to appear normally
+        $tray.find("form").css("max-height", windowHeight - heightFromTop);
+      },
+
+      /*
+       * Updates specific query options, leaving any that have been set already intact.
+       */
+      updateQueryOptions: function (options) {
+        this.options = $.extend(this.options, options);
+        this.updateSubViews();
+      },
+
+      /*
+       * Reset the query options back to the defaults, then apply whatever new options are needed.
+       */
+      resetQueryOptions: function (options) {
+        this.options = $.extend(true, {}, defaultOptions, options);
+        this.updateSubViews();
+      },
+
+      // helper
+      updateSubViews: function () {
+        this.mainFieldsView.update(this.options);
+        this.keySearchFieldsView.update(this.options);
+        this.additionalParamsView.update(this.options);
+      },
+
+      trayIsVisible: function () {
+        return $("#query-options-tray").is(":visible");
+      },
+
+      closeTray: function () {
+        $("#query-options-tray").velocity("reverse", 250, function () { // TODO constant
+          $("#query-options-tray").hide();
+        });
+      }
+    });
+
+
+    // ------ "private" Views ------
+
+    var MainFieldsView = FauxtonAPI.View.extend({
+      template: "addons/documents/templates/query_options_main_fields",
+      events: {
+        "change #qoReduce": "onToggleReduceCheckbox"
+      },
+
+      initialize: function (options) {
+        this.queryParams = options.queryParams;
+        this.showStale = options.showStale;
+        this.hasReduce = options.hasReduce;
+      },
+
+      update: function (options) {
+        this.queryParams = options.queryParams;
+        this.showStale = options.showStale;
+        this.hasReduce = options.hasReduce;
+
+        // if the View hasn't already rendered we can rely on afterRender() to pre-fill the fields
+        if (this.hasRendered) {
+          this.render();
+        }
+      },
+
+      afterRender: function () {
+        $("#qoIncludeDocs").prop("checked", this.queryParams.include_docs === "true");
+        this.updateReduceSettings(this.queryParams.reduce === "true");
+      },
+
+      /*
+       * The "Reduce" option comes with baggage:
+       *   - we can't include_docs for reduce = true
+       *   - can't include group_level for reduce = false
+       */
+      onToggleReduceCheckbox: function (e) {
+        e.preventDefault();
+        var isChecked = $(e.currentTarget).prop("checked");
+        this.updateReduceSettings(isChecked);
+      },
+
+
+      // helper function to hide/show, disable/enable fields based on whether "Reduce" is an option and whether
+      // it's checked
+      updateReduceSettings: function (isChecked) {
+        $("#qoReduce").prop("checked", isChecked);
+
+        var $qoIncludeDocs = $("#qoIncludeDocs"),
+          $qoIncludeDocsLabel = $("#qoIncludeDocsLabel"),
+          $qoGroupLevelGroup = $("#qoGroupLevelGroup");
+
+        if (this.hasReduce) {
+          $("#qoGroupLevel").val(this.queryParams.group_level);
+
+          if (isChecked) {
+            $qoIncludeDocs.prop({ "checked": false, "disabled": true });
+            $qoIncludeDocsLabel.addClass("disabled");
+            $qoGroupLevelGroup.removeClass("hide");
+          } else {
+            $qoIncludeDocs.prop("disabled", false);
+            $qoIncludeDocsLabel.removeClass("disabled");
+            $qoGroupLevelGroup.addClass("hide");
+          }
+        } else {
+          $qoIncludeDocs.prop("disabled", false);
+          $qoIncludeDocsLabel.removeClass("disabled");
+          $qoGroupLevelGroup.addClass("hide");
+        }
+      },
+
+      getParams: function () {
+        var params = {};
+        this.$("input:checked,select").each(function () {
+
+          // this ensures that only settings that differ from the defaults are passed along. If we didn't do this,
+          // the query string would be loaded up with all possible vals for each search (which would work, but would be ugly)
+          if (this.value !== defaultOptions.queryParams[this.name]) {
+            params[this.name] = this.value;
+          }
+        });
+        return params;
+      },
+
+      serialize: function () {
+        return {
+          hasReduce: this.hasReduce,
+          showStale: this.showStale
+        };
+      }
+    });
+
+
+    var KeySearchFieldsView = FauxtonAPI.View.extend({
+      template: "addons/documents/templates/query_options_key_search",
+      events: {
+        "click .toggle-btns > label": "toggleKeysSection"
+      },
+
+      initialize: function (options) {
+        this.queryParams = options.queryParams;
+        this.hasReduce = options.hasReduce;
+      },
+
+      update: function (options) {
+        this.queryParams = options.queryParams;
+        this.hasReduce = options.hasReduce;
+
+        if (this.hasRendered) {
+          this.render();
+        }
+      },
+
+      // prefill the form fields
+      afterRender: function () {
+        if (this.queryParams.keys) {
+          this.$(".toggle-btns > label[data-action=showByKeys]").addClass("active");
+          this.$(".js-query-keys-wrapper").removeClass("hide");
+          this.showByKeysSection();
+          $("#keys-input").val(this.queryParams.keys);
+        } else {
+
+          // if the startKey, endKey or inclusive_end differs from the defaults, show the section. Meh, this sucks...
+          if (defaultOptions.queryParams.startkey !== this.queryParams.startkey ||
+            defaultOptions.queryParams.endkey !== this.queryParams.endkey ||
+            defaultOptions.queryParams.inclusive_end !== this.queryParams.inclusive_end) {
+            this.$(".toggle-btns > label[data-action=showBetweenKeys]").addClass("active");
+            this.$(".js-keys-section").addClass("hide");
+            this.$(".js-query-keys-wrapper").removeClass("hide");
+            this.showBetweenKeysSection();
+
+            $("#startkey").prop("disabled", false).val(this.queryParams.startkey);
+            $("#endkey").prop("disabled", false).val(this.queryParams.endkey);
+            $("#qoIncludeEndKeyInResults").prop("checked", this.queryParams.inclusive_end === "true");
+          }
+        }
+      },
+
+      toggleKeysSection: function (e) {
+        e.preventDefault();
+
+        var $clickedEl = $(e.currentTarget);
+        var $keyFieldsWrapper = this.$(".js-query-keys-wrapper");
+
+        if ($clickedEl.hasClass("active")){
+          $clickedEl.removeClass("active");
+          $keyFieldsWrapper.addClass("hide");
+        } else {
+          this.$(".toggle-btns > label").removeClass("active");
+          this.$(".js-keys-section").hide();
+
+          $clickedEl.addClass("active");
+          $keyFieldsWrapper.removeClass("hide");
+
+          // show section and disable what needs to be disabled
+          var action = $clickedEl.data("action");
+          if (action === "showByKeys") {
+            this.showByKeysSection();
+          } else {
+            this.showBetweenKeysSection();
+          }
+        }
+      },
+
+      showByKeysSection: function () {
+        this.$("#js-showKeys, .js-disabled-message").show();
+        this.$('[name="startkey"],[name="endkey"],[name="inclusive_end"]').prop("disabled", true);
+        this.$('[name="keys"]').removeAttr("disabled");
+      },
+
+      showBetweenKeysSection: function (){
+        this.$("#js-showStartEnd").show();
+        this.$('[name="startkey"],[name="endkey"],[name="inclusive_end"]').removeAttr("disabled");
+        this.$('.js-disabled-message').hide();
+        this.$('[name="keys"]').prop("disabled", true);
+      },
+
+      // this assumes that hasValidInputs has been called. Otherwise the returned param data may be invalid
+      getParams: function () {
+        var params = {};
+        var selectedKeysSection = this.getSelectedKeysSection();
+
+        // basically the gist of this is that it only actually returns *relevant* key-value pairs. Defaults
+        // aren't included because they'd clutter up the URL
+        if (selectedKeysSection === "showByKeys") {
+          var keys = $.trim($("#keys-input").val());
+          if (keys !== "") {
+            params.keys = keys;
+          }
+        } else if (selectedKeysSection === "showBetweenKeys") {
+          var startKey = $.trim($("#startkey").val());
+          if (startKey !== defaultOptions.queryParams.startkey) {
+            params.startkey = startKey;
+          }
+          var endKey = $.trim($("#endkey").val());
+          if (endKey !== defaultOptions.queryParams.endkey) {
+            params.endkey = endKey;
+          }
+          var includeEndKeyVal = $("#qoIncludeEndKeyInResults").is(":checked");
+          params.inclusive_end = (includeEndKeyVal) ? "true" : "false";
+        }
+        return params;
+      },
+
+      /*
+       * Checks to see that the user-inputted values are valid. If not, it displays a message to the user.
+       * @returns {boolean} true if all valid; false otherwise
+       */
+      hasValidInputs: function () {
+        var selectedKeysSection = this.getSelectedKeysSection(),
+          errorMsg = null;
+
+        if (selectedKeysSection === "showByKeys") {
+          var keys = this.parseJSON($("#keys-input").val());
+          if (_.isUndefined(keys) || !_.isArray(keys)) {
+            errorMsg = "Keys values must be in an array, e.g [1,2,3]";
+          }
+        } else {
+          var startKey = $.trim($("#startkey").val()),
+            endKey = $.trim($("#endkey").val());
+
+          if (startKey !== "" && _.isUndefined(this.parseJSON(startKey))) {
+            errorMsg = "JSON Parse Error on the Start Key field";
+          } else if (endKey !== "" && _.isUndefined(this.parseJSON(endKey))) {
+            errorMsg = "JSON Parse Error on the End Key field";
+          }
+        }
+
+        if (errorMsg !== null) {
+          this.$(".js-keys-error").empty();
+
+          FauxtonAPI.addNotification({
+            type: "error",
+            msg: errorMsg,
+            clear:  false,
+            selector: ".query-options .errors-container"
+          });
+          return false;
+        }
+
+        return true;
+      },
+
+      parseJSON: function (value) {
+        try {
+          return JSON.parse(value);
+        } catch(e) {
+          return undefined;
+        }
+      },
+
+      getSelectedKeysSection: function () {
+        return this.$(".toggle-btns > label.active").data("action");
+      }
+    });
+
+
+    var AdditionalParamsView = FauxtonAPI.View.extend({
+      template: "addons/documents/templates/query_options_additional_params",
+
+      initialize: function (options) {
+        this.queryParams = options.queryParams;
+        this.showStale = options.showStale;
+      },
+
+      update: function (options) {
+        this.queryParams = options.queryParams;
+        this.showStale = options.showStale;
+        if (this.hasRendered) {
+          this.render();
+        }
+      },
+
+      afterRender: function () {
+        $("#qoUpdateSeq").prop("checked", this.queryParams.update_seq === "true");
+        $("#qoDescending").prop("checked", this.queryParams.descending === "true");
+        $("#qoLimit").val(this.queryParams.limit);
+        $("#qoSkip").val(this.queryParams.skip);
+        $("#qoStale").prop("checked", this.queryParams.stale === "ok");
+      },
+
+      getParams: function () {
+        var params = {};
+        this.$("input,select").each(function () {
+          if ($(this).is(":checkbox")) {
+            if (this.checked) {
+              params[this.name] = this.value;
+            }
+          } else {
+            var val = $.trim(this.value);
+            if (val !== "") {
+              params[this.name] = this.value;
+            }
+          }
+        });
+        return params;
+      },
+
+      hasValidInputs: function () {
+        var allValid = true;
+        var skipVal = $("#qoSkip").val();
+        if (skipVal !== "" && /\D/.test(skipVal)) {
+          FauxtonAPI.addNotification({
+            msg: "Please only enter numbers only for the Skip field.",
+            type: "error",
+            selector: ".query-options .errors-container",
+            clear:  true
+          });
+          allValid = false;
+        }
+        return allValid;
+      },
+
+      serialize: function () {
+        return {
+          showStale: this.showStale
+        };
+      }
+    });
+
+    return Views;
+  });


[2/4] New Query Options tray added

Posted by ro...@apache.org.
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/fonts/fauxtonicon.svg
----------------------------------------------------------------------
diff --git a/assets/fonts/fauxtonicon.svg b/assets/fonts/fauxtonicon.svg
index 7b77755..bc241f9 100644
--- a/assets/fonts/fauxtonicon.svg
+++ b/assets/fonts/fauxtonicon.svg
@@ -1,31 +1,31 @@
 <?xml version="1.0" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
 <!--
-2014-8-4: Created.
+2014-10-3: Created with FontForge (http://fontforge.org)
 -->
 <svg xmlns="http://www.w3.org/2000/svg">
 <metadata>
-Created by FontForge 20120731 at Mon Aug  4 13:55:25 2014
- By Garren Smith
-Created by Garren Smith with FontForge 2.0 (http://fontforge.sf.net)
+Created by FontForge 20141003 at Fri Oct  3 16:50:50 2014
+ By Benjamin Keen
+Copyright (c) 2014, Benjamin Keen
 </metadata>
 <defs>
 <font id="fauxtonicon" horiz-adv-x="512" >
   <font-face 
     font-family="fauxtonicon"
-    font-weight="500"
+    font-weight="400"
     font-stretch="normal"
     units-per-em="512"
-    panose-1="2 0 6 9 0 0 0 0 0 0"
+    panose-1="2 0 5 9 0 0 0 0 0 0"
     ascent="448"
     descent="-64"
-    bbox="-0.0730828 -64.6562 516.096 448.515"
+    bbox="-0.0730828 -64.6562 516.322 448.515"
     underline-thickness="25.6"
     underline-position="-51.2"
-    unicode-range="U+F100-F16E"
+    unicode-range="U+F100-F17B"
   />
     <missing-glyph />
-    <glyph glyph-name="uniF108" unicode="&#xf108;" 
+    <glyph glyph-name="uniF109" unicode="&#xf109;" 
 d="M219.648 412.16c39.5944 0 76.2874 -9.89876 110.079 -29.6963c33.7923 -19.7975 60.4163 -46.4215 79.8721 -79.8721c19.4564 -33.4505 29.1846 -70.1439 29.1846 -110.08c0 -39.9355 -9.72819 -76.6289 -29.1846 -110.08
 c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08
 c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08c20.821 33.4505 47.2741 60.0745 79.3594 79.8721s68.9495 29.6963 110.593 29.6963zM256 55.8076v54.2725c0 2.73047 -0.85319 4.94922 -2.55957 6.65625c-1.70703 1.70638 -3.75521 2.55957 -6.14453 2.55957h-54.7842
@@ -33,7 +33,7 @@ c-2.73047 0 -4.94889 -0.85319 -6.65527 -2.55957c-1.70703 -1.70703 -2.73112 -3.92
 c2.38932 0 4.4375 1.02409 6.14453 3.07227c1.70638 2.04753 2.55957 4.26595 2.55957 6.65527zM255.488 154.112l5.12012 177.151c0 2.38932 -1.02409 4.09603 -3.07227 5.12012c-1.70703 1.70703 -3.92578 2.56055 -6.65625 2.56055h-62.9756
 c-2.73112 0 -4.94987 -0.853516 -6.65625 -2.56055c-2.04818 -1.02409 -3.07227 -2.73079 -3.07227 -5.12012l5.12012 -177.151c0 -2.04818 0.853516 -3.75488 2.56055 -5.12012c1.70638 -1.36523 4.0957 -2.04785 7.16797 -2.04785h52.7354
 c2.73112 0 4.94987 0.682617 6.65625 2.04785s2.73047 3.07194 3.07227 5.12012z" />
-    <glyph glyph-name="uniF125" unicode="&#xf125;" 
+    <glyph glyph-name="uniF12C" unicode="&#xf12c;" 
 d="M201.216 89.5996v-68.6074c0 -3.07227 -1.19466 -5.80306 -3.58398 -8.19238s-4.94922 -3.41341 -7.67969 -3.07227h-68.6084c-3.07161 0 -5.80208 1.02409 -8.19141 3.07227s-3.58398 4.77897 -3.58398 8.19238v68.6074c0 3.07227 1.19466 5.80306 3.58398 8.19238
 s5.11979 3.41341 8.19141 3.07227h68.6084c2.73047 0 5.29036 -1.02409 7.67969 -3.07227s3.58398 -4.77897 3.58398 -8.19238zM291.328 261.12c0 -10.2402 -1.36523 -19.7975 -4.0957 -28.6719c-2.73112 -8.875 -6.14453 -16.2139 -10.2402 -22.0166
 c-4.09635 -5.80273 -9.38704 -11.4346 -15.8721 -16.8955c-6.48568 -5.46159 -11.9469 -9.72819 -16.3838 -12.7998c-4.4375 -3.07227 -10.2402 -6.3151 -17.4082 -9.72852c-7.85091 -4.4375 -14.3363 -10.752 -19.4561 -18.9434
@@ -42,14 +42,14 @@ c-2.04753 3.41341 -3.07129 6.9974 -3.07129 10.752v13.3125c0 15.7012 6.31445 30.5
 c0 7.85091 -4.4375 14.8483 -13.3125 20.9922c-8.87435 6.14388 -19.1143 9.21582 -30.7197 9.21582c-12.2884 0 -22.5283 -2.73047 -30.7197 -8.19141c-6.82682 -4.77865 -17.0671 -15.7015 -30.7207 -32.7686c-2.38932 -3.07161 -5.29069 -4.60742 -8.7041 -4.60742
 c-2.38932 0 -4.77865 0.682617 -7.16797 2.04785l-46.5918 35.8398c-2.73047 2.04818 -4.26628 4.4375 -4.60742 7.16797c-0.341797 2.73047 0.169922 5.46094 1.53516 8.19141c30.3789 50.5176 74.5817 75.7764 132.608 75.7764c15.36 0 30.7201 -2.90137 46.0801 -8.7041
 s29.1839 -13.6533 41.4717 -23.5518c12.2884 -9.89844 22.3577 -22.1865 30.208 -36.8643c7.85091 -14.6771 11.7764 -29.6956 11.7764 -45.0557z" />
-    <glyph glyph-name="uniF12E" unicode="&#xf12e;" 
+    <glyph glyph-name="uniF135" unicode="&#xf135;" 
 d="M0 192.512l75.7764 76.2881l180.224 179.712l75.7764 -75.7754l-179.712 -180.225l179.712 -180.224l-75.7764 -75.7764l-180.224 180.225z" />
-    <glyph glyph-name="uniF107" unicode="&#xf107;" 
+    <glyph glyph-name="uniF108" unicode="&#xf108;" 
 d="M146.432 92.1602v-64c0 -5.11979 -1.87728 -9.38639 -5.63184 -12.7998c-3.75456 -3.41341 -8.02116 -5.29102 -12.7998 -5.63281h-73.2158c-4.77865 0 -9.04525 1.8776 -12.7998 5.63281c-3.75521 3.75456 -5.63281 8.02116 -5.63281 12.7998v64
 c0 4.77865 1.8776 9.04525 5.63281 12.7998c3.75456 3.75456 8.02116 5.46126 12.7998 5.12012h73.2158c5.11979 0 9.38639 -1.70671 12.7998 -5.12012s5.29069 -7.68001 5.63184 -12.7998zM154.624 393.728l-7.67969 -219.647
 c-0.341797 -4.77865 -2.38997 -9.04525 -6.14453 -12.7998s-8.02116 -5.46126 -12.7998 -5.12012h-73.2158c-4.77865 0 -9.04525 1.70671 -12.7998 5.12012c-3.75521 3.41341 -5.80339 7.68001 -6.14453 12.7998l-7.67969 219.647
 c-0.341146 4.7793 1.19466 9.04622 4.60742 12.8008c3.41341 3.75456 7.68034 5.63184 12.8008 5.63184h91.6475c4.77865 0 9.04525 -1.87728 12.7998 -5.63184c3.75521 -3.75456 5.29134 -8.02148 4.6084 -12.8008z" />
-    <glyph glyph-name="uniF133" unicode="&#xf133;" 
+    <glyph glyph-name="uniF13A" unicode="&#xf13a;" 
 d="M512 245.76v-226.815c0 -12.6296 -4.43717 -23.3815 -13.3115 -32.2559c-8.875 -8.875 -19.6273 -13.4831 -32.2568 -13.8242h-420.863c-12.2884 0 -23.0407 4.60807 -32.2568 13.8242c-9.21549 9.21549 -13.6527 19.9674 -13.3115 32.2559v226.815
 c8.5332 -9.55729 18.0905 -17.9199 28.6719 -25.0879c68.9492 -46.7624 116.395 -79.5303 142.336 -98.3037c10.9225 -8.19206 19.6266 -14.5068 26.1123 -18.9443c6.48503 -4.4375 15.5303 -9.04557 27.1357 -13.8242s22.0163 -6.99707 31.2324 -6.65527h1.02344
 c9.55729 0 19.9681 2.21842 31.2324 6.65527c11.2637 4.4375 20.3089 9.04557 27.1357 13.8242s15.5309 11.0934 26.1123 18.9443c32.4264 23.2103 79.8717 55.9782 142.336 98.3037c10.9225 7.50911 20.4798 15.8717 28.6719 25.0879zM512 329.728
@@ -58,13 +58,13 @@ c-6.14453 -4.43685 -11.2646 -8.19141 -15.3604 -11.2637c-4.09635 -3.07227 -9.0455
 c-4.09635 0 -8.70443 0.853516 -13.8242 2.56055c-5.11979 1.70638 -10.752 4.26628 -16.8965 7.67969c-6.14388 3.41341 -11.0931 6.48535 -14.8477 9.21582s-8.87467 6.48503 -15.3604 11.2637c-6.48503 4.77865 -10.4102 7.68001 -11.7754 8.7041
 c-17.4082 11.9466 -42.4964 29.1839 -75.2646 51.7119c-32.7676 22.528 -52.2233 36.1813 -58.3672 40.96c-11.9466 7.85091 -23.04 18.7738 -33.2803 32.7686s-15.5309 27.1361 -15.8721 39.4238c0 14.6771 3.92546 26.9652 11.7764 36.8643
 c7.85026 9.89844 19.1143 14.8477 33.792 14.8477h420.863c12.2884 0 22.8698 -4.43717 31.7441 -13.3115c8.875 -8.875 13.4831 -19.6273 13.8242 -32.2568z" />
-    <glyph glyph-name="uniF13F" unicode="&#xf13f;" 
+    <glyph glyph-name="uniF146" unicode="&#xf146;" 
 d="M208.766 -59.6162c-46.3301 0 -89.874 18.0889 -122.595 50.8799c-32.7598 32.7432 -50.8096 76.2324 -50.8096 122.586c0.0302734 46.3223 18.0498 89.8584 50.8096 122.58l175.544 171.749c47.1777 47.2002 130.493 47.3848 178.093 -0.253906
 c49.1084 -49.1934 49.1084 -129.184 0 -178.322l-157.979 -154.101c-30.4199 -30.4355 -80.4199 -30.4961 -111.148 0.276367c-30.7285 30.79 -30.7285 80.7598 0 111.479l61.1465 61.1553l44.583 -44.582l-61.1465 -61.1475
 c-4.04199 -4.06348 -4.61914 -8.74414 -4.61914 -11.1465c0 -2.43066 0.577148 -7.11133 4.61914 -11.1758c8.06641 -8.03613 14.2168 -8.03613 22.291 0l157.888 154.123c24.3232 24.292 24.3232 64.2871 -0.24707 88.8965c-23.8301 23.8311 -65.334 23.8311 -89.165 0
 l-175.529 -171.766c-20.5908 -20.6211 -32.082 -48.3018 -32.082 -77.7656c0 -29.4971 11.4912 -57.2051 32.3281 -78.0195c41.6963 -41.7354 114.359 -41.7354 156.039 0l78.8203 78.8203l44.5527 -44.5674l-78.8213 -78.8193
 c-32.7275 -32.7617 -76.2568 -50.8799 -122.571 -50.8799z" />
-    <glyph glyph-name="uniF132" unicode="&#xf132;" 
+    <glyph glyph-name="uniF139" unicode="&#xf139;" 
 d="M475.648 18.9443v219.136c-6.14453 -6.82682 -12.8008 -13.1416 -19.9688 -18.9443c-50.8587 -38.9121 -91.4772 -70.9974 -121.855 -96.2559c-9.55729 -8.19206 -17.4079 -14.6774 -23.5518 -19.4561c-6.14453 -4.77865 -14.3366 -9.38672 -24.5762 -13.8242
 c-10.2402 -4.43685 -19.9684 -6.65527 -29.1846 -6.65527h-1.02344c-8.875 0 -18.6032 2.21842 -29.1846 6.65527c-10.5814 4.4375 -18.7734 9.04557 -24.5762 13.8242c-5.80208 4.77865 -13.6527 11.264 -23.5518 19.4561
 c-30.0371 25.2585 -70.6556 57.3438 -121.855 96.2559c-7.16797 5.80273 -13.8242 12.1175 -19.9688 18.9443v-219.136c0 -2.73112 1.02409 -4.94987 3.07227 -6.65625c2.04818 -1.70703 4.09635 -2.56055 6.14453 -2.56055h420.863
@@ -75,7 +75,7 @@ c4.4375 1.70638 9.21615 4.26628 14.3359 7.67969c5.12044 3.41341 9.38704 6.48535
 c10.2402 8.19206 19.7975 19.2852 28.6719 33.2793c8.875 13.9948 13.3125 26.4535 13.3125 37.376zM512 329.728v-310.783c0 -12.6296 -4.43717 -23.3815 -13.3115 -32.2559c-8.875 -8.875 -19.6273 -13.4831 -32.2568 -13.8242h-420.863
 c-12.2884 0 -23.0407 4.60807 -32.2568 13.8242c-9.21549 9.21549 -13.6527 19.9674 -13.3115 32.2559v310.783c0 12.6296 4.43717 23.3818 13.3115 32.2568c8.875 8.87435 19.6273 13.3115 32.2568 13.3115h420.863c12.6296 0 23.3818 -4.43717 32.2568 -13.3115
 c8.87435 -8.875 13.3115 -19.6273 13.3115 -32.2568z" />
-    <glyph glyph-name="uniF157" unicode="&#xf157;" 
+    <glyph glyph-name="uniF15F" unicode="&#xf15f;" 
 d="M109.568 9.72754h219.647v109.568h-219.647v-109.568zM365.568 9.72754h36.8633v256c0 2.73112 -1.02376 6.31543 -3.07129 10.7529c-2.04818 4.43685 -3.92578 7.84993 -5.63281 10.2393l-80.3838 79.8721c-1.70638 2.04818 -4.94889 4.09635 -9.72754 6.14453
 c-4.77865 2.04753 -8.53353 2.90072 -11.2646 2.55957v-118.784c0 -7.50911 -2.5599 -13.9945 -7.67969 -19.4561c-5.11979 -5.46094 -11.6051 -8.19141 -19.4561 -8.19141h-164.864c-7.50911 0 -13.8236 2.73047 -18.9434 8.19141
 c-5.12044 5.46159 -7.85124 11.9469 -8.19238 19.4561v118.784h-36.8643v-365.568h36.8643v118.784c0 7.50977 2.73079 13.9951 8.19238 19.4561c5.46094 5.46159 11.7754 8.19238 18.9434 8.19238h238.08c7.50977 0 13.9951 -2.73079 19.4561 -8.19238
@@ -84,20 +84,20 @@ c-2.04753 -1.70703 -2.90072 -3.92578 -2.55957 -6.65625v-91.1357c0 -2.73112 0.853
 c2.04753 1.70638 2.90072 3.92513 2.55957 6.65625zM438.784 265.728v-265.216c0 -7.50911 -2.56022 -13.9945 -7.68066 -19.4561c-5.11979 -5.46094 -11.6048 -8.19141 -19.4551 -8.19141h-384c-7.85091 0 -14.3363 2.73047 -19.4561 8.19141
 c-5.12044 5.46159 -7.85124 11.9469 -8.19238 19.4561v384c0 7.50977 2.73079 13.9951 8.19238 19.4561c5.46094 5.46159 11.9463 8.19238 19.4561 8.19238h264.703c7.85091 0 16.3844 -2.04818 25.6006 -6.14453c9.21615 -4.0957 16.3841 -8.53288 21.5039 -13.3115
 l79.8721 -80.3838c5.46094 -5.12044 10.069 -12.2884 13.8242 -21.5039c3.75456 -9.21615 5.63184 -17.5791 5.63184 -25.0889z" />
-    <glyph glyph-name="uniF120" unicode="&#xf120;" 
+    <glyph glyph-name="uniF122" unicode="&#xf122;" 
 d="M0 282.624l75.7764 75.7764l180.224 -179.712l180.224 179.712l75.7764 -75.7764l-256 -256l-75.7764 75.7764z" />
-    <glyph glyph-name="uniF11F" unicode="&#xf11f;" 
+    <glyph glyph-name="uniF121" unicode="&#xf121;" 
 d="M292.352 247.296c0 -4.77865 -1.70638 -9.04525 -5.11914 -12.7998l-128 -128c-3.75521 -3.75456 -8.02214 -5.63184 -12.8008 -5.63184s-9.04525 1.87728 -12.7998 5.63184l-128 128c-3.75456 3.75456 -5.63184 8.02116 -5.63184 12.7998
 s1.87728 9.04525 5.63184 12.7998c3.75456 3.75456 8.02116 5.63184 12.7998 5.63184h256c4.77865 0 9.04557 -1.87728 12.8008 -5.63184c3.75456 -3.75456 5.46094 -8.02116 5.11914 -12.7998z" />
-    <glyph glyph-name="uniF13D" unicode="&#xf13d;" 
+    <glyph glyph-name="uniF144" unicode="&#xf144;" 
 d="M0 192.512c0 70.6562 25.0879 131.072 75.2637 181.248c50.1764 50.1764 110.422 75.0938 180.736 74.752c70.3145 -0.341146 130.73 -25.2585 181.248 -74.752s75.4349 -109.91 74.752 -181.248c-0.682943 -71.3385 -25.6003 -131.755 -74.752 -181.248
 c-49.1523 -49.4928 -109.568 -74.4102 -181.248 -74.752c-71.6797 -0.341146 -131.925 24.5762 -180.736 74.752c-48.8105 50.1764 -73.8984 110.592 -75.2637 181.248zM93.1836 163.328l107.009 -107.008l52.7354 53.248l165.889 165.888l-52.7363 53.248l-165.888 -166.4
 l-54.2725 54.2725z" />
-    <glyph glyph-name="uniF121" unicode="&#xf121;" 
+    <glyph glyph-name="uniF124" unicode="&#xf124;" 
 d="M192 416.768h128v-128h-128v128zM192 256.512h128v-128h-128v128zM192 96.7676h128v-128.512h-128v128.512z" />
-    <glyph glyph-name="uniF11D" unicode="&#xf11d;" 
+    <glyph glyph-name="uniF11F" unicode="&#xf11f;" 
 d="M466.432 193.024l-228.863 -229.376l-228.353 229.376l80.8965 80.8955l90.624 -90.1123v237.568h114.176v-237.568l90.1123 89.6006z" />
-    <glyph glyph-name="uniF147" unicode="&#xf147;" 
+    <glyph glyph-name="uniF14F" unicode="&#xf14f;" 
 d="M329.216 220.16v-18.4326c0 -2.73047 -0.85319 -4.94889 -2.55957 -6.65527c-1.70703 -1.70703 -3.92578 -2.56055 -6.65625 -2.56055h-100.352v-100.352c0 -2.73047 -0.853516 -4.94922 -2.56055 -6.65625c-1.70638 -1.70638 -3.92513 -2.55957 -6.65625 -2.55957
 h-18.4316c-2.73047 0 -4.94922 0.85319 -6.65625 2.55957c-1.70638 1.70703 -2.55957 3.92578 -2.55957 6.65625v100.352h-100.353c-2.73047 0 -4.94889 0.853516 -6.65527 2.56055c-1.70703 1.70638 -2.56055 3.9248 -2.56055 6.65527v18.4326
 c0 2.38932 0.853516 4.43717 2.56055 6.14355c1.70638 1.70703 3.9248 2.56055 6.65527 2.56055h100.353v100.863c0 2.73112 0.85319 4.94987 2.55957 6.65625c1.70703 1.70703 3.92578 2.56055 6.65625 2.56055h18.4316c2.73112 0 4.94987 -0.853516 6.65625 -2.56055
@@ -113,21 +113,21 @@ c3.75456 3.75456 8.02116 5.46126 12.7998 5.12012h475.137c5.11979 0 9.38639 -1.70
 c-5.11979 0 -9.38639 1.70671 -12.7998 5.12012c-3.41341 3.41341 -5.29069 7.68001 -5.63184 12.7998v73.2158c0 5.11979 1.87728 9.38639 5.63184 12.7998c3.75456 3.41341 8.02116 5.29069 12.7998 5.63184h475.137c5.11979 0 9.38639 -1.87728 12.7998 -5.63184
 s5.29069 -8.02116 5.63184 -12.7998zM512 393.728v-73.2158c0 -5.11979 -1.87728 -9.38639 -5.63184 -12.7998s-8.02116 -5.29069 -12.7998 -5.63184h-475.137c-5.11979 0 -9.38639 1.87728 -12.7998 5.63184c-3.41341 3.75456 -5.29069 8.02116 -5.63184 12.7998v73.2158
 c0 4.7793 1.87728 9.04622 5.63184 12.8008c3.75456 3.75456 8.02116 5.63184 12.7998 5.63184h475.137c5.11979 0 9.38639 -1.87728 12.7998 -5.63184s5.29069 -8.02148 5.63184 -12.8008z" />
-    <glyph glyph-name="uniF168" unicode="&#xf168;" 
+    <glyph glyph-name="uniF175" unicode="&#xf175;" 
 d="M9.21582 193.536l228.353 227.84l228.863 -227.84l-81.4072 -81.4082l-90.1123 90.624v-239.104h-114.176v239.104l-90.624 -90.624z" />
-    <glyph glyph-name="uniF15B" unicode="&#xf15b;" 
+    <glyph glyph-name="uniF163" unicode="&#xf163;" 
 d="M398.464 368c62.5918 0 113.536 -50.9277 113.536 -113.52v-140.944c0 -62.5918 -50.9443 -113.536 -113.536 -113.536h-284.944c-62.5918 0 -113.52 50.9443 -113.52 113.536v140.944c0 62.5918 50.9277 113.52 113.52 113.52h284.944zM480 113.536v140.944
 c0 44.9434 -36.5762 81.5195 -81.5361 81.5195h-284.944c-44.9434 0 -81.5195 -36.5762 -81.5195 -81.5195v-140.944c0 -44.96 36.5762 -81.5361 81.5195 -81.5361h284.944c44.96 0 81.5361 36.5762 81.5361 81.5361zM304 160v-48h16v-48h-16h-64h-48v48h48v48h-48v64h48h64
 v-64zM256 256v48h48v-48h-48z" />
-    <glyph glyph-name="uniF15D" unicode="&#xf15d;" 
+    <glyph glyph-name="uniF165" unicode="&#xf165;" 
 d="M284.4 252.96v-121.904h-48.7686v97.5205h-24.3838v-97.5205h-48.7676v97.5205h-24.3848v-97.5205h-48.752v121.904h195.057zM406.304 179.808h24.3682v-48.7676h-48.752v48.7676h-24.3838v-48.7676h-48.7686v121.92h121.904v-48.7676h-24.3682v-24.3848z
 M357.536 204.192h23.4082v24.3838h-23.4082v-24.3838zM398.464 0h-284.944c-62.5918 0 -113.52 50.9443 -113.52 113.536v140.944c0 62.5918 50.9277 113.52 113.52 113.52h284.944c62.5918 0 113.536 -50.9277 113.536 -113.52v-140.944
 c0 -62.5918 -50.9443 -113.536 -113.536 -113.536zM113.52 336c-44.9434 0 -81.5195 -36.5762 -81.5195 -81.5195v-140.944c0 -44.96 36.5762 -81.5361 81.5195 -81.5361h284.944c44.96 0 81.5361 36.5762 81.5361 81.5361v140.944
 c0 44.9434 -36.5762 81.5195 -81.5361 81.5195h-284.944z" />
-    <glyph glyph-name="uniF155" unicode="&#xf155;" 
+    <glyph glyph-name="uniF15D" unicode="&#xf15d;" 
 d="M164.352 192.512c0 -4.77865 -1.70638 -9.04525 -5.11914 -12.7998l-128 -128c-3.75521 -3.75456 -8.02214 -5.63184 -12.8008 -5.63184s-9.04525 1.87728 -12.7998 5.63184c-3.75456 3.75456 -5.63184 8.02116 -5.63184 12.7998v256
 c0 5.12044 1.87728 9.38704 5.63184 12.7998c3.75456 3.41341 8.02116 5.29102 12.7998 5.63281c4.77865 0.341146 9.04557 -1.53646 12.8008 -5.63281l128 -128c3.41276 -3.41276 5.11914 -7.67936 5.11914 -12.7998z" />
-    <glyph glyph-name="uniF166" unicode="&#xf166;" 
+    <glyph glyph-name="uniF173" unicode="&#xf173;" 
 d="M146.432 238.08v-164.353c0 -2.73047 -0.85319 -4.94889 -2.55957 -6.65527c-1.70703 -1.70703 -3.92578 -2.56055 -6.65625 -2.56055h-18.4316c-2.73047 0 -4.94922 0.853516 -6.65625 2.56055c-1.70638 1.70638 -2.55957 3.9248 -2.55957 6.65527v164.353
 c0 2.73047 0.85319 4.94922 2.55957 6.65625c1.70703 1.70638 3.92578 2.55957 6.65625 2.55957h18.4316c2.73047 0 4.94922 -0.85319 6.65625 -2.55957c1.70638 -1.70703 2.55957 -3.92578 2.55957 -6.65625zM219.648 238.08v-164.353
 c0 -2.73047 -0.853516 -4.94889 -2.56055 -6.65527c-1.70638 -1.70703 -3.92513 -2.56055 -6.65625 -2.56055h-18.4316c-2.73047 0 -4.94922 0.853516 -6.65625 2.56055c-1.70638 1.70638 -2.55957 3.9248 -2.55957 6.65527v164.353
@@ -140,14 +140,45 @@ c0 -2.73047 -0.85319 -4.94922 -2.55957 -6.65625c-1.70703 -1.70638 -3.92578 -2.55
 c-12.6289 0 -23.3809 5.63184 -32.2559 16.8955c-8.87435 11.2643 -13.4824 24.7471 -13.8242 40.4482v271.872h-27.1357c-2.73047 0 -4.94922 0.85319 -6.65625 2.55957c-1.70638 1.70703 -2.55957 3.92578 -2.55957 6.65625v18.4316
 c0 2.73112 0.85319 4.94987 2.55957 6.65625c1.70703 1.70703 3.92578 2.56055 6.65625 2.56055h88.0645l19.9678 47.6152c3.07227 7.16797 8.36296 13.1416 15.8721 17.9209c7.50911 4.77865 15.0186 7.33854 22.5283 7.67969h91.1357
 c7.50911 0 15.0182 -2.5599 22.5273 -7.67969c7.50977 -5.12044 12.6299 -11.0941 15.3604 -17.9209l19.9678 -47.6152h88.5762c2.73047 0 4.94922 -0.853516 6.65625 -2.56055c1.70638 -1.70638 2.55957 -3.92513 2.55957 -6.65625z" />
-    <glyph glyph-name="uniF13E" unicode="&#xf13e;" 
+    <glyph glyph-name="uniF145" unicode="&#xf145;" 
 d="M0 192c0 70.6562 25.0879 131.072 75.2637 181.248c50.1764 50.1758 110.422 75.0931 180.736 74.752s130.73 -25.2585 181.248 -74.752s75.4349 -109.91 74.752 -181.248c-0.682943 -71.3385 -25.6003 -131.755 -74.752 -181.248
 c-49.1523 -49.4935 -109.568 -74.4108 -181.248 -74.752c-71.6797 -0.341146 -131.925 24.5762 -180.736 74.752c-48.8105 50.1758 -73.8984 110.592 -75.2637 181.248zM55.8076 192c0 -55.2962 19.627 -102.4 58.8809 -141.312
 c39.2533 -38.9121 86.3571 -58.5391 141.312 -58.8809c54.9544 -0.341146 102.058 19.2858 141.312 58.8809c39.2539 39.5944 58.8809 86.6982 58.8809 141.312s-19.627 101.717 -58.8809 141.312c-39.2533 39.5951 -86.3571 59.222 -141.312 58.8809
 c-54.9544 -0.341797 -102.058 -19.9688 -141.312 -58.8809c-39.2539 -38.9115 -58.8809 -86.0153 -58.8809 -141.312zM110.08 165.888l48.1279 47.1045l47.6162 -48.1279l147.968 148.992l48.1279 -47.6162l-148.992 -148.48l-47.1035 -47.6162l-47.6162 47.6162z" />
     <glyph glyph-name="uniF102" unicode="&#xf102;" 
 d="M0 448.512h512v-512h-512v512zM448 0.511719v384h-384v-384h384zM384 96.7676h-256l128 192z" />
-    <glyph glyph-name="uniF161" unicode="&#xf161;" 
+    <glyph glyph-name="uniF12B" unicode="&#xf12b;" 
+d="M240.941 207.059c0 19.0046 -6.72135 35.2279 -20.1641 48.6699c-13.4427 13.4427 -29.666 20.1641 -48.6699 20.1641c-19.0046 0 -35.2279 -6.72135 -48.6699 -20.1641c-13.4427 -13.4421 -20.1641 -29.6654 -20.1641 -48.6699
+c0 -19.0039 6.72135 -35.2272 20.1641 -48.6699c13.4421 -13.4427 29.6654 -20.1641 48.6699 -20.1641c19.0039 0 35.2272 6.72135 48.6699 20.1641s20.1641 29.666 20.1641 48.6699zM447.458 69.376c0 9.32617 -3.4082 17.3926 -10.2246 24.1992
+c-6.81706 6.80664 -14.8838 10.2152 -24.2002 10.2256c-9.31641 0.00976562 -17.3828 -3.39876 -24.1992 -10.2256c-6.81641 -6.82617 -10.2246 -14.8926 -10.2246 -24.1992c0 -9.4974 3.36296 -17.609 10.0889 -24.335c6.72656 -6.72656 14.8382 -10.0898 24.335 -10.0898
+c9.4974 0 17.609 3.36328 24.335 10.0898c6.72656 6.72591 10.0898 14.8376 10.0898 24.335zM447.458 344.741c0 9.32682 -3.4082 17.3936 -10.2246 24.2002c-6.81706 6.80664 -14.8838 10.2148 -24.2002 10.2246c-9.31641 0.0104167 -17.3828 -3.39779 -24.1992 -10.2246
+s-10.2246 -14.8936 -10.2246 -24.2002c0 -9.49674 3.36296 -17.6084 10.0889 -24.335c6.72656 -6.72591 14.8382 -10.0889 24.335 -10.0889c9.4974 0 17.609 3.36296 24.335 10.0889c6.72656 6.72656 10.0898 14.8382 10.0898 24.335zM344.199 231.529v-49.7539
+c0 -1.79753 -0.627279 -3.5446 -1.88184 -5.24121c-1.25521 -1.69661 -2.69076 -2.6403 -4.30664 -2.83105l-41.6836 -6.45996c-1.96745 -6.27474 -4.83366 -13.0863 -8.59863 -20.4346c6.0944 -8.60352 14.1611 -18.9137 24.2002 -30.9307
+c1.25456 -1.79753 1.88184 -3.58952 1.88184 -5.37598c0 -2.14844 -0.627279 -3.85026 -1.88184 -5.10547c-4.1263 -5.38086 -11.5202 -13.402 -22.1816 -24.0635c-10.6621 -10.6621 -17.6995 -15.998 -21.1123 -16.0078c-1.9681 0 -3.85059 0.627604 -5.64746 1.88281
+l-30.9307 24.1992c-6.63607 -3.40365 -13.5381 -6.18457 -20.7061 -8.34277c-1.96745 -19.3659 -4.0306 -33.2601 -6.18945 -41.6826c-1.25456 -4.30664 -3.94499 -6.45996 -8.07129 -6.45996h-50.0107c-1.96745 0 -3.75944 0.672526 -5.37598 2.01758
+c-1.61589 1.34505 -2.51432 2.91602 -2.69531 4.71289l-6.18945 41.1406c-6.09375 1.79753 -12.8148 4.57845 -20.1631 8.34277l-31.7295 -23.9277c-1.25456 -1.25521 -3.04655 -1.88281 -5.37598 -1.88281c-1.96745 0 -3.84961 0.717773 -5.64648 2.15332
+c-25.8112 23.8431 -38.7168 38.1842 -38.7168 43.0234c0 1.61589 0.627604 3.31738 1.88281 5.10449c1.79688 2.50977 5.47103 7.25846 11.0225 14.2461c5.55208 6.98698 9.76367 12.4531 12.6348 16.3984c-4.1263 7.89128 -7.26367 15.2402 -9.41211 22.0469
+l-40.8691 6.45996c-1.79688 0.180339 -3.32292 1.03353 -4.57812 2.55957c-1.25456 1.52604 -1.88184 3.27311 -1.88184 5.24121v49.7539c0 1.79688 0.627279 3.54362 1.88184 5.24023c1.25521 1.69661 2.69076 2.6403 4.30664 2.83105l41.6836 6.45996
+c1.96745 6.27474 4.83333 13.0866 8.59766 20.4355c-6.09375 8.60352 -14.1602 18.9137 -24.1992 30.9307c-1.25456 1.96745 -1.88184 3.75944 -1.88184 5.37598c0 2.14844 0.627279 3.94043 1.88184 5.37598c3.94531 5.38086 11.2939 13.3571 22.0459 23.9287
+c10.752 10.571 17.8346 15.8617 21.248 15.8721c1.9681 0 3.85059 -0.627604 5.64746 -1.88281l30.9307 -24.1992c6.09375 3.22266 12.9958 6.08887 20.7061 8.59863c1.96745 19.3652 4.0306 33.1689 6.18945 41.4111c1.25456 4.30729 3.94499 6.46094 8.07129 6.46094
+h50.0098c1.9681 0 3.76009 -0.672852 5.37598 -2.01855c1.61654 -1.34505 2.5153 -2.91602 2.69629 -4.71289l6.18848 -41.1406c6.0944 -1.79688 12.8158 -4.5778 20.1641 -8.34277l31.7295 23.9287c1.43555 1.25456 3.22754 1.88184 5.37598 1.88184
+c1.96745 0 3.84961 -0.717773 5.64648 -2.15332c25.8112 -23.8431 38.7168 -38.1839 38.7168 -43.0225c0 -1.61654 -0.627604 -3.31836 -1.88281 -5.10547c-2.14844 -2.87109 -5.91309 -7.70996 -11.2939 -14.5166s-9.41667 -12.1826 -12.1074 -16.1279
+c4.1263 -8.60352 7.17318 -15.9521 9.14062 -22.0459l40.8701 -6.18945c1.79688 -0.361328 3.32259 -1.30501 4.57715 -2.83105c1.25521 -1.52604 1.88281 -3.27279 1.88281 -5.24023zM516.307 88.1992v-37.6465c0 -2.87109 -13.3571 -5.65202 -40.0713 -8.34277
+c-2.14844 -4.83919 -4.83887 -9.50228 -8.07129 -13.9893c9.14583 -20.2598 13.7188 -32.6283 13.7188 -37.1055c0 -0.712891 -0.356445 -1.34017 -1.06934 -1.88184c-21.8757 -12.7298 -32.9893 -19.0947 -33.3408 -19.0947c-1.43555 0 -5.55664 4.21126 -12.3633 12.6338
+c-6.80664 8.42318 -11.4697 14.5169 -13.9893 18.2812c-3.58398 -0.361328 -6.27441 -0.541992 -8.07129 -0.541992c-1.79753 0 -4.48828 0.180664 -8.07227 0.541992c-2.50977 -3.76432 -7.17285 -9.85807 -13.9893 -18.2812
+c-6.81641 -8.42253 -10.9375 -12.6338 -12.3633 -12.6338c-0.361328 0 -11.4746 6.36491 -33.3398 19.0947c-0.712891 0.541667 -1.06934 1.16895 -1.06934 1.88184c0 4.47721 4.57292 16.8457 13.7188 37.1055c-3.22266 4.47721 -5.91341 9.1403 -8.07227 13.9893
+c-26.7142 2.69076 -40.0713 5.47168 -40.0713 8.34277v37.6465c0 2.87174 13.3571 5.65267 40.0713 8.34277c2.32943 5.20052 5.02018 9.86393 8.07227 13.9902c-9.14583 20.2591 -13.7188 32.6273 -13.7188 37.1045c0 0.712891 0.356445 1.34049 1.06934 1.88281
+c0.71224 0.361328 3.84928 2.15332 9.41113 5.37598c5.56185 3.22201 10.8525 6.26888 15.8721 9.14062c5.01953 2.87109 7.70996 4.30664 8.07129 4.30664c1.43555 0 5.55664 -4.16634 12.3633 -12.499s11.4701 -14.3812 13.9902 -18.1455
+c3.58398 0.361328 6.27441 0.541992 8.07129 0.541992s4.4873 -0.180664 8.07129 -0.541992c9.14583 12.7292 17.3932 22.7682 24.7422 30.1172l1.61133 0.541992c0.712891 0 11.8262 -6.27441 33.3398 -18.8232c0.712891 -0.542318 1.06934 -1.16992 1.06934 -1.88281
+c0 -4.47721 -4.57292 -16.8454 -13.7188 -37.1045c3.05208 -4.1263 5.74251 -8.78939 8.07129 -13.9893c26.7148 -2.69076 40.0723 -5.47168 40.0723 -8.34277zM516.307 363.565v-37.6475c0 -2.87109 -13.3571 -5.65202 -40.0713 -8.34277
+c-2.14844 -4.83854 -4.83887 -9.50163 -8.07129 -13.9893c9.14583 -20.2591 13.7188 -32.6276 13.7188 -37.1055c0 -0.71224 -0.356445 -1.33952 -1.06934 -1.88184c-21.8757 -12.7298 -32.9893 -19.0947 -33.3408 -19.0947c-1.43555 0 -5.55664 4.21159 -12.3633 12.6348
+c-6.80664 8.42253 -11.4697 14.5163 -13.9893 18.2812c-3.58398 -0.361328 -6.27441 -0.541992 -8.07129 -0.541992c-1.79753 0 -4.48828 0.180664 -8.07227 0.541992c-2.50977 -3.76497 -7.17285 -9.85872 -13.9893 -18.2812
+c-6.81641 -8.42318 -10.9375 -12.6348 -12.3633 -12.6348c-0.361328 0 -11.4746 6.36491 -33.3398 19.0947c-0.712891 0.542318 -1.06934 1.1696 -1.06934 1.88184c0 4.47786 4.57292 16.8464 13.7188 37.1055c-3.22266 4.47721 -5.91341 9.1403 -8.07227 13.9893
+c-26.7142 2.69076 -40.0713 5.47168 -40.0713 8.34277v37.6475c0 2.87109 13.3571 5.65202 40.0713 8.34277c2.32943 5.19987 5.02018 9.86296 8.07227 13.9893c-9.14583 20.2591 -13.7188 32.6273 -13.7188 37.1045c0 0.712891 0.356445 1.34049 1.06934 1.88281
+c0.71224 0.361328 3.84928 2.15332 9.41113 5.37598s10.8525 6.26953 15.8721 9.14062s7.70996 4.30664 8.07129 4.30664c1.43555 0 5.55664 -4.16634 12.3633 -12.499c6.80664 -8.33203 11.4701 -14.3805 13.9902 -18.1455
+c3.58398 0.361328 6.27441 0.541992 8.07129 0.541992s4.4873 -0.180664 8.07129 -0.541992c9.14583 12.7298 17.3932 22.7692 24.7422 30.1182l1.61133 0.541992c0.712891 0 11.8262 -6.27474 33.3398 -18.8242c0.712891 -0.541667 1.06934 -1.16895 1.06934 -1.88184
+c0 -4.47786 -4.57292 -16.8464 -13.7188 -37.1055c3.05208 -4.12565 5.74251 -8.78874 8.07129 -13.9893c26.7148 -2.69076 40.0723 -5.47168 40.0723 -8.34277z" />
+    <glyph glyph-name="uniF169" unicode="&#xf169;" 
 d="M512 92.1602v-91.6484c0 -7.50911 -2.73079 -13.9945 -8.19238 -19.4561c-5.46094 -5.46094 -11.9463 -8.19141 -19.4561 -8.19141h-91.1357c-7.50911 0 -13.9945 2.73047 -19.4561 8.19141c-5.46094 5.46159 -8.19141 11.9469 -8.19141 19.4561v91.6484
 c0 7.50911 2.73047 13.9945 8.19141 19.4561c5.46159 5.46094 11.9469 8.02083 19.4561 7.67969h27.1357v54.7842h-145.92v-54.7842h27.1367c7.85026 0 14.3356 -2.5599 19.4561 -7.67969c5.11979 -5.12044 7.85026 -11.6058 8.19141 -19.4561v-91.6484
 c0 -7.50911 -2.73047 -13.9945 -8.19141 -19.4561c-5.46159 -5.46094 -11.9469 -8.19141 -19.4561 -8.19141h-91.1367c-7.85026 0 -14.3356 2.73047 -19.4561 8.19141c-5.11979 5.46159 -7.85026 11.9469 -8.19141 19.4561v91.6484
@@ -157,11 +188,11 @@ c0 7.50911 2.73079 13.9945 8.19238 19.4561c5.46094 5.46094 11.9463 8.02083 19.45
 c-7.85026 0 -14.3356 2.56022 -19.4561 7.68066c-5.11979 5.11979 -7.85026 11.6051 -8.19141 19.4561v91.6475c0 7.50977 2.73047 13.9951 8.19141 19.4561c5.46159 5.46159 11.9469 8.19238 19.4561 8.19238h91.1367c7.85026 0 14.3356 -2.73079 19.4561 -8.19238
 c5.11979 -5.46094 7.85026 -11.9463 8.19141 -19.4561v-91.6475c0 -7.50977 -2.73047 -13.9951 -8.19141 -19.4561c-5.46159 -5.46159 -11.9469 -8.02181 -19.4561 -7.68066h-27.1367v-54.7832h145.92c9.89909 0 18.6032 -3.58398 26.1123 -10.752
 s11.0931 -15.8721 10.752 -26.1123v-54.7842h27.1357c7.85091 0 14.3363 -2.5599 19.4561 -7.67969c5.12044 -5.12044 7.85124 -11.6058 8.19238 -19.4561z" />
-    <glyph glyph-name="uniF152" unicode="&#xf152;" 
+    <glyph glyph-name="uniF15A" unicode="&#xf15a;" 
 d="M493.568 193.536c0 -2.73047 -0.853516 -5.11979 -2.56055 -7.16797l-110.08 -100.864c-3.07161 -2.73047 -6.31413 -3.41309 -9.72754 -2.04785c-3.75456 1.70638 -5.63184 4.60775 -5.63184 8.7041v64h-356.353c-2.73047 0 -4.94922 0.85319 -6.65625 2.55957
 c-1.70638 1.70703 -2.55957 3.75521 -2.55957 6.14453v55.2959c0 2.38932 0.85319 4.43717 2.55957 6.14355c1.70703 1.70703 3.92578 2.56055 6.65625 2.56055h356.353v64c0 4.0957 1.87728 6.99707 5.63184 8.7041c3.75456 1.70638 6.99707 1.19434 9.72754 -1.53613
 l110.08 -100.353c1.70703 -1.70638 2.56055 -3.75423 2.56055 -6.14355z" />
-    <glyph glyph-name="uniF141" unicode="&#xf141;" 
+    <glyph glyph-name="uniF149" unicode="&#xf149;" 
 d="M172.032 293.798c0 -14.4564 -4.97949 -26.6641 -14.9385 -36.623s-22.1667 -15.0993 -36.623 -15.4209c-14.4564 -0.320964 -26.6641 4.81934 -36.623 15.4209s-14.9385 22.8092 -14.9385 36.623s4.97949 25.8607 14.9385 36.1406
 c9.95898 10.2806 22.1667 15.4209 36.623 15.4209c14.4564 0 26.6641 -5.1403 36.623 -15.4209c9.95898 -10.2799 14.9385 -22.3268 14.9385 -36.1406zM447.669 190.193v-120.471h-378.76v51.5615l85.7754 86.2568l43.3691 -42.8877l137.336 137.336zM473.208 379.572
 h-430.32c-2.2487 0 -4.17643 -0.80306 -5.7832 -2.40918c-1.60612 -1.60612 -2.56966 -3.69434 -2.89062 -6.26465v-326.716c0 -2.57031 0.963542 -4.65853 2.89062 -6.26465c1.92773 -1.60612 3.85547 -2.40918 5.7832 -2.40918h430.32
@@ -170,14 +201,14 @@ c0 -11.8867 -4.17611 -22.0062 -12.5283 -30.3584c-8.35286 -8.35286 -18.4727 -12.6
 c8.35221 8.35221 18.4717 12.6891 30.3584 13.0107h430.32c11.8867 0 22.0065 -4.33691 30.3594 -13.0107c8.35221 -8.67383 12.5283 -18.7936 12.5283 -30.3594z" />
     <glyph glyph-name="uniF103" unicode="&#xf103;" 
 d="M102.592 304h26.3203v-80h384v-48h-384v-80h-26.3203l-102.592 104z" />
-    <glyph glyph-name="uniF10C" unicode="&#xf10c;" 
+    <glyph glyph-name="uniF10E" unicode="&#xf10e;" 
 d="M0 368.64h512v-96.2559h-512v96.2559zM0 240.64h512v-96.2559h-512v96.2559zM0 112.64h512v-96.2559h-512v96.2559z" />
-    <glyph glyph-name="uniF14E" unicode="&#xf14e;" 
+    <glyph glyph-name="uniF156" unicode="&#xf156;" 
 d="M0 -63.4883v225.792l75.7764 -75.7754l103.424 102.912l73.7275 -73.7285l-102.912 -103.424l75.7764 -75.7764h-225.792zM259.072 269.312l102.912 103.425l-75.7764 75.7754h225.792v-225.792l-75.7764 75.7764l-103.424 -102.912z" />
-    <glyph glyph-name="uniF162" unicode="&#xf162;" 
+    <glyph glyph-name="uniF16C" unicode="&#xf16c;" 
 d="M228.864 393.728v-227.84h227.84c0 -125.439 -101.888 -227.84 -227.84 -227.84c-125.44 0 -227.328 102.4 -227.328 227.84c0 125.44 100.864 227.328 226.304 227.84h1.02441zM510.976 201.728l-245.76 -0.511719s-0.511719 245.76 0.511719 245.76
 c135.169 0 245.248 -110.079 245.248 -245.248z" />
-    <glyph glyph-name="uniF112" unicode="&#xf112;" 
+    <glyph glyph-name="uniF114" unicode="&#xf114;" 
 d="M256 292.864v-128c0 -2.38932 -0.85319 -4.4375 -2.55957 -6.14453c-1.70703 -1.70638 -3.92578 -2.55957 -6.65625 -2.55957h-91.1357c-2.73112 0 -4.94987 0.85319 -6.65625 2.55957c-1.70703 1.70703 -2.56055 3.75521 -2.56055 6.14453v18.4316
 c0 2.73047 0.853516 4.94922 2.56055 6.65625c1.70638 1.70638 3.92513 2.55957 6.65625 2.55957h64v100.353c0 2.73047 0.85319 4.94889 2.55957 6.65527c1.70638 1.70703 3.75423 2.56055 6.14355 2.56055h18.4326c2.73047 0 4.94922 -0.853516 6.65625 -2.56055
 c1.70638 -1.70638 2.55957 -3.9248 2.55957 -6.65527zM374.784 192.512c0 28.3307 -6.9974 54.2721 -20.9922 77.8242c-13.9948 23.5521 -32.7682 42.4961 -56.3203 56.832s-49.4932 21.3333 -77.8232 20.9922c-28.3307 -0.341146 -54.443 -7.33854 -78.3369 -20.9922
@@ -186,59 +217,59 @@ c29.013 -0.341797 54.9541 6.6556 77.8232 20.9922c22.8698 14.3359 41.6432 33.2799
 c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08
 c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08c20.821 33.4505 47.2741 60.0745 79.3594 79.8721s68.9495 29.6963 110.593 29.6963c41.6426 0 78.3356 -9.89876 110.079 -29.6963c31.7441 -19.7975 58.3682 -46.4215 79.8721 -79.8721
 c21.5046 -33.4505 31.2327 -70.1439 29.1846 -110.08z" />
-    <glyph glyph-name="uniF111" unicode="&#xf111;" 
+    <glyph glyph-name="uniF113" unicode="&#xf113;" 
 d="M384 -64.6562h-288c-17.6797 0 -32 14.2881 -32 31.9365v385.552c0 17.6318 14.3203 31.9199 32 31.9199h80v-33.2637h-64c-8.83203 0 -16 -7.13672 -16 -15.9688v-352.271c0 -8.84766 7.16797 -15.9678 16 -15.9678h256c8.84766 0 16 7.12012 16 15.9678v352.271
 c0 8.83203 -7.15234 15.9688 -16 15.9688h-64v33.2637h80c17.6641 0 32 -14.3037 32 -31.9199v-385.552c0 -17.6484 -14.3359 -31.9365 -32 -31.9365zM176 255.696h176v-15.9688h-176v15.9688zM176 207.792h176v-15.9678h-176v15.9678zM176 159.872h176v-15.9678h-176
 v15.9678zM176 111.968h176v-15.9678h-176v15.9678zM352 0.223633h-176v15.9365h176v-15.9365zM176 64.0645h176v-15.9688h-176v15.9688zM128 256.016h16v-15.9678h-16v15.9678zM128 208.112h16v-15.9688h-16v15.9688zM128 160.224h16v-15.9678h-16v15.9678zM128 112.32h16
 v-15.9688h-16v15.9688zM144 0.52832h-16v15.9678h16v-15.9678zM128 64.4004h16v-15.9688h-16v15.9688zM336 334.544c8.84766 0 16 -7.15234 16 -15.9844v-30.9277h-224v30.9277c0 8.83203 7.15234 15.9844 16 15.9844h48s0.192383 22.7041 0.192383 48.6562
 c0 26.9434 20.7998 49.4717 47.8076 49.4717s48.5283 -23.6797 48.5283 -49.6318c0 -27.9521 -0.52832 -48.4961 -0.52832 -48.4961h48zM240 384.752c-8.84766 0 -16 -7.13574 -16 -15.9521c0 -8.83203 7.15234 -15.9678 16 -15.9678s16 7.13574 16 15.9678
 c0 8.81641 -7.15234 15.9521 -16 15.9521z" />
-    <glyph glyph-name="uniF14C" unicode="&#xf14c;" 
+    <glyph glyph-name="uniF154" unicode="&#xf154;" 
 d="M216.01 448.432v-137.54c31.6185 -4.3112 60.9375 -10.7786 87.957 -19.4023c27.0189 -8.62305 49.8701 -18.3958 68.5537 -29.3184c18.6836 -10.9225 35.6426 -22.7074 50.877 -35.3545c15.2337 -12.6478 27.5934 -25.7262 37.0791 -39.2354
 c9.48568 -13.5098 17.6777 -26.4447 24.5762 -38.8047s11.9287 -24.4323 15.0908 -36.2168c3.16146 -11.7852 5.74837 -21.7018 7.76074 -29.75c2.01172 -8.04818 2.87402 -14.8031 2.58691 -20.2646l0.430664 -7.33008c-1.72461 3.16211 -4.45508 7.33008 -8.19141 12.5039
 c-3.73698 5.17383 -13.3662 14.3717 -28.8877 27.5938c-15.5221 13.2227 -33.487 24.1455 -53.8945 32.7686c-20.4082 8.62305 -48.5775 16.0964 -84.5078 22.4199c-22.1328 3.44922 -45.415 5.17383 -69.8467 5.17383c-15.8092 0 -32.3372 -0.718424 -49.584 -2.15527
 v-136.246l-216.01 215.147z" />
-    <glyph glyph-name="uniF151" unicode="&#xf151;" 
+    <glyph glyph-name="uniF159" unicode="&#xf159;" 
 d="M436.8 -64l-102.399 102.4l-75.2002 -75.2002v225.6h225.6l-75.2002 -75.2002l102.4 -104zM27.2002 195.2l75.2002 75.2002l-102.4 102.399l75.2002 75.2002l104 -102.4l75.2002 75.2002v-225.6h-227.2z" />
-    <glyph glyph-name="uniF138" unicode="&#xf138;" 
+    <glyph glyph-name="uniF13F" unicode="&#xf13f;" 
 d="M365.568 174.08v36.8643c0 4.77865 -1.70671 9.04525 -5.12012 12.7998s-7.68001 5.46126 -12.7998 5.12012h-256c-5.12044 0 -9.55794 -1.70671 -13.3125 -5.12012s-5.46126 -7.68001 -5.12012 -12.7998v-36.8643c0 -4.77865 1.70671 -9.04525 5.12012 -12.7998
 s7.85091 -5.46126 13.3125 -5.12012h256c4.77865 0 9.04525 1.70671 12.7998 5.12012s5.46126 7.68001 5.12012 12.7998zM438.784 329.728v-274.432c0 -22.528 -8.02148 -41.8132 -24.0645 -57.8555c-16.0423 -16.043 -35.4984 -24.235 -58.3682 -24.5762h-273.92
 c-22.8691 0 -42.3249 8.19206 -58.3672 24.5762c-16.043 16.3835 -24.0645 35.6686 -24.0645 57.8555v274.432c0 22.528 8.02148 41.8135 24.0645 57.8564c16.0423 16.043 35.498 24.235 58.3672 24.5762h273.92c22.8698 0 42.3258 -8.19206 58.3682 -24.5762
 c16.043 -16.3841 24.0645 -35.6696 24.0645 -57.8564z" />
-    <glyph glyph-name="uniF110" unicode="&#xf110;" 
+    <glyph glyph-name="uniF112" unicode="&#xf112;" 
 d="M219.648 348.16c-28.3307 0 -54.443 -6.9974 -78.3369 -20.9922c-23.8932 -13.9948 -42.6663 -32.9388 -56.3193 -56.832c-13.6536 -23.8932 -20.651 -49.8346 -20.9922 -77.8242c-0.341146 -27.9889 6.65625 -53.93 20.9922 -77.8232
 c14.3359 -23.8939 33.109 -42.8379 56.3193 -56.832c23.2109 -13.9948 49.3232 -20.9922 78.3369 -20.9922c29.013 0 54.9541 6.9974 77.8232 20.9922c22.8698 13.9941 41.6432 32.9382 56.3203 56.832c14.6771 23.8932 21.6745 49.8343 20.9922 77.8232
 c-0.682943 27.9896 -7.68034 53.931 -20.9922 77.8242c-13.3118 23.8932 -32.0853 42.8372 -56.3203 56.832c-24.2344 13.9948 -50.1755 20.9922 -77.8232 20.9922zM438.784 192.512c0 -39.9355 -9.72819 -76.6289 -29.1846 -110.08
 c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08
 c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08c20.821 33.4505 47.2741 60.0745 79.3594 79.8721s68.9495 29.6963 110.593 29.6963c41.6426 0 78.3356 -9.89876 110.079 -29.6963c31.7441 -19.7975 58.3682 -46.4215 79.8721 -79.8721
 c21.5046 -33.4505 31.2327 -70.1439 29.1846 -110.08z" />
-    <glyph glyph-name="uniF122" unicode="&#xf122;" 
+    <glyph glyph-name="uniF125" unicode="&#xf125;" 
 d="M512 110.08v-54.7842c0 -2.38932 -0.85319 -4.43717 -2.55957 -6.14355c-1.70703 -1.70703 -3.92578 -2.73112 -6.65625 -3.07227h-393.216v-54.7842c0 -2.38932 -0.853516 -4.43717 -2.56055 -6.14355c-1.70638 -1.70703 -3.92513 -2.73112 -6.65625 -3.07227
 c-2.04753 0 -4.26595 1.02409 -6.65527 3.07227l-91.1367 91.1357c-1.70638 1.70638 -2.55957 3.92513 -2.55957 6.65625c0 2.73047 0.85319 4.94889 2.55957 6.65527l91.6484 91.1367c1.70638 1.70638 3.75423 2.55957 6.14355 2.55957
 c2.73112 0 4.94987 -0.85319 6.65625 -2.55957c1.70703 -1.70703 2.56055 -3.92578 2.56055 -6.65625v-54.7842h393.216c2.38932 0 4.60807 -0.85319 6.65625 -2.55957c2.04753 -1.70703 2.90072 -3.92578 2.55957 -6.65625zM512 265.728
 c0 -2.73047 -0.85319 -4.94889 -2.55957 -6.65527l-91.6484 -91.6484c-1.70638 -1.70638 -3.75423 -2.55957 -6.14355 -2.55957c-2.73112 0 -4.94987 1.02376 -6.65625 3.07129c-1.70703 2.04818 -2.56055 4.09635 -2.56055 6.14453v54.7842h-393.216
 c-2.38932 0 -4.60807 1.02376 -6.65625 3.07129c-2.04753 2.04818 -2.90072 4.09635 -2.55957 6.14453v54.7842c0 2.73047 0.85319 4.94889 2.55957 6.65527c1.70703 1.70703 3.92578 2.56055 6.65625 2.56055h393.216v54.7842c0 2.73047 0.853516 4.94889 2.56055 6.65527
 c1.70638 1.70703 3.92513 2.56055 6.65625 2.56055c2.04753 0 4.26595 -0.853516 6.65527 -2.56055l91.1367 -91.1357c1.70638 -1.70638 2.55957 -3.92513 2.55957 -6.65625z" />
-    <glyph glyph-name="uniF10E" unicode="&#xf10e;" 
+    <glyph glyph-name="uniF110" unicode="&#xf110;" 
 d="M0 192.512c0 70.6562 25.0879 131.072 75.2637 181.248c50.1764 50.1764 110.422 75.0938 180.736 74.752c70.3145 -0.341146 130.73 -25.2585 181.248 -74.752s75.4349 -109.91 74.752 -181.248c-0.682943 -71.3385 -25.6003 -131.755 -74.752 -181.248
 c-49.1523 -49.4928 -109.568 -74.4102 -181.248 -74.752c-71.6797 -0.341146 -131.925 24.5762 -180.736 74.752c-48.8105 50.1764 -73.8984 110.592 -75.2637 181.248zM112.128 112.64l64 -64l79.8721 79.8721l79.8721 -79.8721l64 64l-79.8721 79.8721l79.8721 79.8721
 l-64 64l-79.8721 -79.8721l-79.8721 79.8721l-64 -64l79.8721 -79.8721z" />
-    <glyph glyph-name="uniF137" unicode="&#xf137;" 
+    <glyph glyph-name="uniF13E" unicode="&#xf13e;" 
 d="M108.8 150.4v83.1992h294.4v-83.1992h-294.4zM0 192c0 70.4004 25.5996 131.2 75.2002 180.8c49.5996 49.6006 110.399 76.7998 180.8 75.2002s131.2 -25.5996 180.8 -75.2002c51.2002 -48 75.2002 -108.8 75.2002 -180.8s-25.5996 -131.2 -75.2002 -180.8
 c-49.5996 -49.6006 -108.8 -73.6006 -180.8 -75.2002s-131.2 24 -180.8 75.2002c-49.6006 51.2002 -73.6006 110.399 -75.2002 180.8zM56 192c0 -56 19.2002 -102.4 59.2002 -140.8c40 -38.4004 86.3994 -59.2002 140.8 -59.2002s102.4 19.2002 140.8 59.2002
 c38.4004 40 59.2002 86.3994 59.2002 140.8s-19.2002 102.4 -59.2002 140.8c-40 38.4004 -86.3994 60.7998 -140.8 59.2002c-54.4004 0 -102.4 -19.2002 -140.8 -59.2002c-38.4004 -40 -59.2002 -84.7998 -59.2002 -140.8z" />
-    <glyph glyph-name="uniF129" unicode="&#xf129;" 
+    <glyph glyph-name="uniF130" unicode="&#xf130;" 
 d="M324.096 364.032c-23.8932 0 -44.2025 -8.36263 -60.9277 -25.0879c-16.7253 -16.7253 -25.2585 -36.6934 -25.5996 -59.9043c0 -4.77865 0.682617 -10.2399 2.04785 -16.3838l5.63184 -29.1846c-19.7975 -19.7969 -49.6641 -49.6634 -89.5996 -89.5996
 c-39.9362 -39.9362 -69.6325 -69.4616 -89.0889 -88.5762v-33.792h56.832v56.832h57.3447v57.3438h56.832v24.0645l40.96 40.4482l29.1836 -5.63281c6.14388 -1.02344 11.4346 -1.53516 15.8721 -1.53516c23.8932 0 44.2025 8.36263 60.9277 25.0879
 s24.9173 36.8639 24.5762 60.416c-0.341146 23.5521 -8.5332 43.6908 -24.5762 60.416c-16.0423 16.7253 -36.181 25.0879 -60.416 25.0879zM324.096 421.376c39.2533 0 72.8747 -13.9948 100.864 -41.9844c27.9896 -27.9889 41.8135 -61.61 41.4717 -100.863
 c-0.341146 -39.2533 -14.165 -72.8747 -41.4717 -100.864s-61.0986 -41.9844 -101.376 -41.9844c-9.55729 0 -18.2614 0.853516 -26.1123 2.56055l-2.55957 -2.56055v-57.3438h-57.3438v-56.832h-56.832v-57.8555h-171.521v114.688l174.08 174.08
 c-1.70638 7.85091 -2.55957 16.7256 -2.55957 26.624c0 39.2533 13.9945 72.7038 41.9834 100.352c27.9896 27.6484 61.7816 41.6432 101.376 41.9844zM294.912 279.04c0 18.7734 9.55729 28.1602 28.6719 28.1602s28.6719 -9.38672 28.6719 -28.1602
 c0 -19.4557 -9.55729 -29.1836 -28.6719 -29.1836s-28.6719 9.72786 -28.6719 29.1836z" />
-    <glyph glyph-name="uniF106" unicode="&#xf106;" 
+    <glyph glyph-name="uniF107" unicode="&#xf107;" 
 d="M466.432 364.032h-457.216v57.3438h457.216v-57.3438zM294.912 249.856h-285.696v57.3438h285.696v-57.3438zM466.432 78.3359h-457.216v57.3438h457.216v-57.3438zM352.256 -36.3516h-343.04v57.8555h343.04v-57.8555zM466.432 -7.16797
 c0 -8.19206 -2.73047 -15.0189 -8.19141 -20.4805c-5.46159 -5.46094 -12.1175 -8.36198 -19.9678 -8.70312c-7.85091 -0.341797 -14.6777 2.55924 -20.4805 8.70312c-5.80273 6.14453 -8.7041 12.9714 -8.7041 20.4805c0 7.50911 2.90137 14.165 8.7041 19.9678
 s12.6296 8.7041 20.4805 8.7041c7.50911 0 14.165 -2.90137 19.9678 -8.7041s8.5332 -12.4587 8.19141 -19.9678z" />
-    <glyph glyph-name="uniF130" unicode="&#xf130;" 
+    <glyph glyph-name="uniF137" unicode="&#xf137;" 
 d="M109.568 110.08v-17.9199c0 -2.73047 -0.853516 -4.94922 -2.56055 -6.65625c-1.70638 -1.70638 -3.92513 -2.55957 -6.65625 -2.55957h-17.9199c-2.38932 0 -4.60775 0.85319 -6.65527 2.55957c-2.04818 1.70703 -2.90169 3.92578 -2.56055 6.65625v17.9199
 c0 2.73047 0.853516 4.94922 2.56055 6.65625c1.70638 1.70638 3.9248 2.55957 6.65527 2.55957h17.9199c2.73112 0 4.94987 -0.85319 6.65625 -2.55957c1.70703 -1.70703 2.56055 -3.92578 2.56055 -6.65625zM109.568 183.296v-18.4316
 c0 -2.38932 -0.853516 -4.4375 -2.56055 -6.14453c-1.70638 -1.70638 -3.92513 -2.55957 -6.65625 -2.55957h-17.9199c-2.38932 0 -4.60775 0.85319 -6.65527 2.55957c-2.04818 1.70703 -2.90169 3.75521 -2.56055 6.14453v18.4316
@@ -257,24 +288,24 @@ c0 -12.6296 -4.43717 -23.3815 -13.3115 -32.2559c-8.875 -8.875 -19.6273 -13.3125
 c8.875 8.875 19.6273 13.4831 32.2568 13.8242h420.863c12.6296 0 23.3818 -4.60807 32.2568 -13.8242c8.87435 -9.21615 13.3115 -19.9681 13.3115 -32.2559z" />
     <glyph glyph-name="uniF101" unicode="&#xf101;" 
 d="M512 -63.4883h-512v512h512v-512zM448 0.511719v384h-384v-384h384zM256 96.7676l-128 192h256z" />
-    <glyph glyph-name="uniF12B" unicode="&#xf12b;" 
+    <glyph glyph-name="uniF132" unicode="&#xf132;" 
 d="M237.568 -36.3516l-228.353 229.376l228.353 228.352l81.4072 -80.8955l-90.624 -90.624h238.08v-114.177h-238.08l90.624 -90.1113z" />
-    <glyph glyph-name="uniF13C" unicode="&#xf13c;" 
+    <glyph glyph-name="uniF143" unicode="&#xf143;" 
 d="M0 146.432l82.9443 82.9443l84.9912 -83.9678l260.097 261.12l83.9678 -83.9688l-344.064 -344.063l-82.9434 83.9678z" />
-    <glyph glyph-name="uniF144" unicode="&#xf144;" 
+    <glyph glyph-name="uniF14C" unicode="&#xf14c;" 
 d="M0 192.512c0 70.6562 25.0879 131.072 75.2637 181.248c50.1764 50.1764 110.422 75.0938 180.736 74.752c70.3145 -0.341146 130.73 -25.2585 181.248 -74.752s75.4349 -109.91 74.752 -181.248c-0.682943 -71.3385 -25.6003 -131.755 -74.752 -181.248
 c-49.1523 -49.4928 -109.568 -74.4102 -181.248 -74.752c-71.6797 -0.341146 -131.925 24.5762 -180.736 74.752c-48.8105 50.1764 -73.8984 110.592 -75.2637 181.248zM112.128 151.552h102.912v-102.912h81.9199v102.912h102.912v81.9199h-102.912v102.912h-81.9199
 v-102.912h-102.912v-81.9199z" />
     <glyph glyph-name="uniF104" unicode="&#xf104;" 
 d="M512.912 200l-102.592 -104h-26.3203v80h-384v48h384v80h26.3203z" />
-    <glyph glyph-name="uniF13A" unicode="&#xf13a;" 
+    <glyph glyph-name="uniF141" unicode="&#xf141;" 
 d="M415.232 -60.9277h-316.929c-52.7354 0 -95.2314 43.0078 -95.2314 95.2314v316.929c0 52.7354 42.4961 95.2314 95.2314 95.2314h316.929c52.2236 0 95.2314 -42.4961 95.2314 -95.2314v-316.929c0 -52.2236 -43.0078 -95.2314 -95.2314 -95.2314zM446.976 351.232
 c0 17.9199 -14.3359 31.7432 -31.7432 31.7432h-316.929c-17.9199 0 -31.7441 -14.3359 -31.7441 -31.7432v-316.929c0 -17.4072 13.8242 -31.7441 31.7441 -31.7441h316.929c17.4072 0 31.7432 14.3369 31.7432 31.7441v316.929zM351.744 97.792v-47.6162
 c0 -8.7041 -7.16797 -15.8721 -15.8721 -15.8721s-15.8721 7.16797 -15.8721 15.8721v47.6162c-17.4082 0 -31.7441 14.3359 -31.7441 31.7441v31.7441c0 17.4082 14.3359 31.7441 31.7441 31.7441v142.336c0 8.7041 7.16797 15.8721 15.8721 15.8721
 s15.8721 -7.16797 15.8721 -15.8721v-142.336c17.4082 0 31.7441 -14.3359 31.7441 -31.7441v-31.7441c0 -17.4082 -14.3359 -31.7441 -31.7441 -31.7441zM193.024 193.024v-142.849c0 -8.7041 -7.16797 -15.8721 -15.8721 -15.8721s-15.8721 7.16797 -15.8721 15.8721
 v142.849c-17.4082 0 -31.7441 14.3359 -31.7441 31.7432v31.7441c0 17.4082 14.3359 31.2324 31.7441 31.2324v47.6162c0 8.7041 7.16797 15.8721 15.8721 15.8721s15.8721 -7.16797 15.8721 -15.8721v-47.6162c17.9199 0 31.7432 -13.8242 31.7432 -31.2324v-31.7441
 c0 -17.9199 -13.8232 -31.7432 -31.7432 -31.7432z" />
-    <glyph glyph-name="uniF118" unicode="&#xf118;" 
+    <glyph glyph-name="uniF11A" unicode="&#xf11a;" 
 d="M288 -64h-64v48h64v-48zM128 400v48h48v-48h-48zM176 -64h-48v48h48v-48zM224 448h64v-48h-64v48zM432 400v48h80v-80h-48v32h-32zM48 160h-48v64h48v-64zM0 272v48h48v-48h-48zM48 64h-48v48h48v-48zM384 -16v-48h-48v48h48zM80 -16v-48h-80v80h48v-32h32zM464 16h48
 v-80h-80v48h32v32zM464 320h48v-48h-48v48zM48 368h-48v80h80v-48h-32v-32zM336 448h48v-48h-48v48zM464 224h48v-64h-48v64zM512 112v-48h-48v48h48zM364.8 302.4c12.7998 -14.4004 24 -33.6006 32 -51.2002c8 -17.6006 12.7998 -38.4004 12.7998 -59.2002
 c0 -22.4004 -4.7998 -41.5996 -12.7998 -60.7998s-17.5996 -35.2002 -32 -49.6006c-14.3994 -12.7998 -30.3994 -24 -49.5996 -32s-38.4004 -12.7998 -59.2002 -12.7998s-40 4.7998 -59.2002 12.7998s-35.2002 17.6006 -49.5996 32
@@ -282,7 +313,7 @@ c-12.7998 14.4004 -24 30.4004 -32 49.6006s-12.7998 40 -12.7998 60.7998s4.7998 41
 s35.2002 -17.6006 49.5996 -32zM147.2 192c0 -20.7998 6.39941 -41.5996 19.2002 -59.2002l150.399 150.4c-19.2002 11.2002 -38.3994 17.5996 -60.7998 17.5996c-19.2002 0 -38.4004 -4.7998 -54.4004 -14.3994c-17.5996 -9.60059 -30.3994 -22.4004 -40 -40
 c-9.59961 -16 -14.3994 -35.2002 -14.3994 -54.4004zM356.8 150.4c4.7998 12.7998 8 27.1992 8 41.5996c0 22.4004 -6.39941 41.5996 -17.5996 59.2002l-150.4 -150.4c17.6006 -11.2002 38.4004 -17.5996 59.2002 -17.5996c14.4004 0 28.7998 1.59961 41.5996 8
 c14.4004 6.39941 25.6006 14.3994 35.2002 24c11.2002 9.59961 17.6006 22.3994 24 35.2002z" />
-    <glyph glyph-name="uniF12C" unicode="&#xf12c;" 
+    <glyph glyph-name="uniF133" unicode="&#xf133;" 
 d="M329.216 220.16v-55.2959c0 -2.38932 -0.85319 -4.4375 -2.55957 -6.14453c-1.70703 -1.70638 -3.92578 -2.55957 -6.65625 -2.55957h-100.352v-55.2959c0 -2.38932 -0.853516 -4.4375 -2.56055 -6.14453c-1.70638 -1.70638 -3.92513 -2.55957 -6.65625 -2.55957
 c-2.38932 0 -4.77865 0.85319 -7.16797 2.55957l-91.1357 91.1367c-1.70638 1.70638 -2.55957 3.9248 -2.55957 6.65527c0 2.73112 0.85319 4.94987 2.55957 6.65625l91.6484 91.1357c1.70638 1.70703 3.9248 2.56055 6.65527 2.56055
 c2.38932 0 4.4375 -0.853516 6.14453 -2.56055c1.70638 -1.70638 2.73047 -3.75423 3.07227 -6.14355v-55.2959h100.352c2.38932 0 4.60807 -0.853516 6.65625 -2.56055c2.04753 -1.70638 2.90072 -3.75423 2.55957 -6.14355zM374.784 192.512
@@ -291,7 +322,7 @@ c-13.6536 -24.2344 -20.651 -50.1758 -20.9922 -77.8242c-0.341146 -27.6478 6.65625
 c22.8698 14.3359 41.6432 33.2799 56.3203 56.832c14.6771 23.5514 21.6745 49.4925 20.9922 77.8232zM438.784 192.512c0 -39.9355 -9.72819 -76.6289 -29.1846 -110.08c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721
 c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08
 c20.821 33.4505 47.2741 60.0745 79.3594 79.8721s68.9495 29.6963 110.593 29.6963c41.6426 0 78.3356 -9.89876 110.079 -29.6963c31.7441 -19.7975 58.3682 -46.4215 79.8721 -79.8721c21.5046 -33.4505 31.2327 -70.1439 29.1846 -110.08z" />
-    <glyph glyph-name="uniF127" unicode="&#xf127;" 
+    <glyph glyph-name="uniF12E" unicode="&#xf12e;" 
 d="M292.352 55.2959v45.5684c0 2.73047 -0.85319 4.94889 -2.55957 6.65527c-1.70638 1.70703 -3.75423 2.56055 -6.14355 2.56055h-27.6484v146.432c0 2.73112 -0.85319 4.94987 -2.55957 6.65625c-1.70703 1.70638 -3.92578 2.55957 -6.65625 2.55957h-91.1357
 c-2.73112 0 -4.94987 -0.85319 -6.65625 -2.55957c-1.70703 -1.70638 -2.56055 -3.92513 -2.56055 -6.65625v-45.5674c0 -2.73112 0.853516 -4.94987 2.56055 -6.65625c1.70638 -1.70703 3.92513 -2.56055 6.65625 -2.56055h27.1357v-91.6475h-27.1357
 c-2.73112 0 -4.94987 -0.853516 -6.65625 -2.56055c-1.70703 -1.70638 -2.56055 -3.9248 -2.56055 -6.65527v-45.5684c0 -2.73047 0.853516 -4.94922 2.56055 -6.65625c1.70638 -1.70638 3.92513 -2.55957 6.65625 -2.55957h128c2.38932 0 4.43717 0.85319 6.14355 2.55957
@@ -300,12 +331,12 @@ c-1.70638 -1.70638 -2.55957 -3.9248 -2.55957 -6.65527v-45.5684c0 -2.73047 0.8531
 c1.70638 1.70703 2.55957 3.92578 2.55957 6.65625zM438.784 192.512c0 -39.9355 -9.72819 -76.6289 -29.1846 -110.08c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953
 c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08c20.821 33.4505 47.2741 60.0745 79.3594 79.8721
 s68.9495 29.6963 110.593 29.6963c41.6426 0 78.3356 -9.89876 110.079 -29.6963c31.7441 -19.7975 58.3682 -46.4215 79.8721 -79.8721c21.5046 -33.4505 31.2327 -70.1439 29.1846 -110.08z" />
-    <glyph glyph-name="uniF143" unicode="&#xf143;" 
+    <glyph glyph-name="uniF14B" unicode="&#xf14b;" 
 d="M0 120.32v144.384h183.808v183.808h144.385v-183.808h183.808v-144.384h-183.808v-183.809h-144.385v183.809h-183.808z" />
-    <glyph glyph-name="uniF149" unicode="&#xf149;" 
+    <glyph glyph-name="uniF151" unicode="&#xf151;" 
 d="M251.104 231.344l80.2725 80.2725l-40.416 40.3994l124.56 -0.735352l-0.0634766 -123.744l-41.4404 41.4395l-80.2559 -80.2715zM414.816 176.88l1.18359 -112.896c0 -17.6641 -14.3359 -32 -32 -32h-256c-17.6641 0 -32 14.3359 -32 32v256c0 17.6641 14.3359 32 32 32
 h112l32 -32l-143.328 -0.640625l-0.255859 -255.567l256.24 0.143555l-0.560547 144.112z" />
-    <glyph glyph-name="uniF113" unicode="&#xf113;" 
+    <glyph glyph-name="uniF115" unicode="&#xf115;" 
 d="M292.352 192.512c0 20.1387 -6.99707 37.376 -20.9912 51.7119c-13.9948 14.3359 -31.2321 21.5039 -51.7119 21.5039c-20.4805 0 -37.7181 -7.16797 -51.7129 -21.5039c-13.9941 -14.3359 -21.1621 -31.5732 -21.5039 -51.7119
 c-0.341146 -20.1387 6.82682 -37.376 21.5039 -51.7119c14.6777 -14.3359 31.9154 -21.5039 51.7129 -21.5039c19.7969 0 37.0342 7.16797 51.7119 21.5039c14.6771 14.3359 21.6742 31.5732 20.9912 51.7119zM438.784 223.744v-63.4883
 c0 -2.38932 -0.682617 -4.60807 -2.04785 -6.65625c-1.36523 -2.04753 -3.24284 -3.24219 -5.63281 -3.58398l-53.2471 -8.19141c-3.41341 -10.2402 -6.99772 -18.9443 -10.7529 -26.1123c6.48568 -9.21615 16.555 -22.3574 30.208 -39.4238
@@ -320,7 +351,7 @@ c1.02409 5.12044 4.4375 7.68066 10.2402 7.68066h63.4873c2.38932 0 4.60807 -0.682
 c1.70638 1.70638 3.92513 2.55957 6.65625 2.55957c2.38932 0 4.77865 -0.85319 7.16797 -2.55957c24.5755 -22.8698 40.2767 -39.0833 47.1035 -48.6406c1.36523 -1.70638 2.04785 -3.92513 2.04785 -6.65625c0 -2.04753 -0.682617 -4.09538 -2.04785 -6.14355
 c-3.07161 -4.09635 -8.02083 -10.5817 -14.8477 -19.4561s-11.9469 -15.5303 -15.3604 -19.9678c4.77865 -9.55729 8.7041 -18.944 11.7764 -28.1602l52.2236 -7.67969c2.38932 -0.341797 4.4375 -1.53646 6.14453 -3.58398
 c1.70638 -2.04818 2.389 -4.26693 2.04785 -6.65625z" />
-    <glyph glyph-name="uniF109" unicode="&#xf109;" 
+    <glyph glyph-name="uniF10B" unicode="&#xf10b;" 
 d="M374.784 193.536c0 30.7201 -8.19206 58.7093 -24.5762 83.9678l-215.552 -215.04c25.9414 -17.0664 54.2721 -25.5996 84.9922 -25.5996c21.1621 0 41.3008 4.2666 60.416 12.7998c19.1146 8.5332 35.4984 19.6266 49.1514 33.2803
 c13.6536 13.653 24.7471 30.2077 33.2803 49.6641c8.5332 19.4557 12.6292 39.765 12.2881 60.9277zM89.5996 108.032l215.553 215.552c-25.6003 17.0664 -54.1016 25.5996 -85.5039 25.5996c-28.3307 0 -54.443 -6.8265 -78.3369 -20.4795
 c-23.8932 -13.6536 -42.6663 -32.7682 -56.3193 -57.3438c-13.6536 -24.5762 -20.651 -50.5176 -20.9922 -77.8242c0 -31.0612 8.5332 -59.5625 25.5996 -85.5039zM438.784 193.536c0 -30.0371 -5.80273 -58.7093 -17.4082 -86.0166
@@ -328,7 +359,7 @@ c-11.6055 -27.3066 -27.1361 -50.6878 -46.5918 -70.1436c-19.4564 -19.4557 -42.837
 c-27.6478 11.2637 -51.029 26.9648 -70.1436 47.1035s-34.6452 43.5199 -46.5918 70.1436c-11.9466 26.6243 -17.7493 55.2965 -17.4082 86.0166s6.14388 59.2214 17.4082 85.5039c11.2637 26.2826 26.7943 49.6637 46.5918 70.1436
 c19.7975 20.4805 43.1787 36.0114 70.1436 46.5928c26.9655 10.5814 55.4671 16.3838 85.5049 17.4072c30.0371 1.02409 58.3675 -4.77832 84.9912 -17.4072c26.6243 -12.6296 50.0059 -28.1605 70.1445 -46.5928c20.1387 -18.4316 35.6693 -41.8128 46.5918 -70.1436
 c10.9225 -28.3307 16.7253 -56.832 17.4082 -85.5039z" />
-    <glyph glyph-name="uniF11E" unicode="&#xf11e;" 
+    <glyph glyph-name="uniF120" unicode="&#xf120;" 
 d="M320 183.296c0 -2.38932 -1.02409 -4.60807 -3.07227 -6.65625l-91.1357 -91.1357c-2.04818 -1.70638 -4.09603 -2.55957 -6.14355 -2.55957c-2.04818 0 -4.26693 0.85319 -6.65625 2.55957l-91.6484 91.1357c-2.73047 3.07227 -3.41309 6.48568 -2.04785 10.2402
 c1.70703 3.75456 4.6084 5.63184 8.7041 5.63184h54.7842v100.353c0 2.73047 0.85319 4.94889 2.55957 6.65527c1.70703 1.70703 3.92578 2.56055 6.65625 2.56055h54.7842c2.73047 0 4.94922 -0.853516 6.65625 -2.56055
 c1.70638 -1.70638 2.55957 -3.9248 2.55957 -6.65527v-100.353h54.7842c2.73047 0 4.94922 -0.85319 6.65625 -2.55957c1.70638 -1.70703 2.55957 -3.92578 2.55957 -6.65625zM219.648 348.16c-28.3307 0 -54.443 -6.9974 -78.3369 -20.9922
@@ -337,20 +368,20 @@ c23.2109 -13.9948 49.3232 -20.9922 78.3369 -20.9922c29.013 0 54.9541 6.9974 77.8
 c-13.3118 23.8932 -32.0853 42.8372 -56.3203 56.832c-24.2344 13.9948 -50.1755 20.9922 -77.8232 20.9922zM438.784 192.512c0 -39.9355 -9.72819 -76.6289 -29.1846 -110.08c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721
 c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08
 c20.821 33.4505 47.2741 60.0745 79.3594 79.8721s68.9495 29.6963 110.593 29.6963c41.6426 0 78.3356 -9.89876 110.079 -29.6963c31.7441 -19.7975 58.3682 -46.4215 79.8721 -79.8721c21.5046 -33.4505 31.2327 -70.1439 29.1846 -110.08z" />
-    <glyph glyph-name="uniF11C" unicode="&#xf11c;" 
+    <glyph glyph-name="uniF11E" unicode="&#xf11e;" 
 d="M218.624 77.3115c1.36523 -3.41276 0.85319 -6.65527 -1.53613 -9.72754l-99.8398 -110.08c-2.04818 -1.70638 -4.26693 -2.55957 -6.65625 -2.55957c-2.73047 0 -4.94922 0.85319 -6.65625 2.55957l-101.376 110.08c-2.73047 3.07227 -3.24219 6.31478 -1.53516 9.72754
 c1.70638 3.75521 4.43685 5.63281 8.19141 5.63281h64v356.352c0 2.73047 0.853516 4.94922 2.56055 6.65625c1.70638 1.70638 3.9248 2.55957 6.65527 2.55957h54.7842c2.73047 0 4.94922 -0.85319 6.65625 -2.55957c1.70638 -1.70703 2.55957 -3.92578 2.55957 -6.65625
 v-356.352h64c3.75521 0 6.486 -1.8776 8.19238 -5.63281z" />
-    <glyph glyph-name="uniF10B" unicode="&#xf10b;" 
+    <glyph glyph-name="uniF10D" unicode="&#xf10d;" 
 d="M399.872 448.512v-512l-143.872 131.072l-143.872 -131.072v512h287.744zM335.872 256.512v32.2559h-64v64h-31.7441v-64h-64v-32.2559h64v-64h31.7441v64h64z" />
-    <glyph glyph-name="uniF14D" unicode="&#xf14d;" 
+    <glyph glyph-name="uniF155" unicode="&#xf155;" 
 d="M164.168 448.328v-59.6387l-104.53 -104.529l104.53 -104.202v-59.3105l-164.168 163.513zM283.771 448.328v-104.53c24.0299 -3.27669 46.3122 -8.19206 66.8467 -14.7461c20.5352 -6.55339 37.9023 -13.9808 52.1016 -22.2822
 c14.1992 -8.30078 27.0879 -17.2572 38.666 -26.8691s20.9717 -19.5518 28.1807 -29.8193c7.20898 -10.2669 13.4349 -20.0973 18.6777 -29.4912c5.24284 -9.39323 9.06576 -18.568 11.4688 -27.5244c2.40299 -8.95703 4.36914 -16.4938 5.89844 -22.6104
 s2.29395 -11.2503 2.29395 -15.4014v-5.57031c-1.3112 2.40299 -3.38672 5.57064 -6.22656 9.50293s-10.1579 10.9229 -21.9541 20.9717c-11.7969 10.0488 -25.4502 18.3499 -40.96 24.9033c-15.5104 6.99089 -37.028 12.6706 -64.5527 17.0391
 c-16.821 2.62174 -34.4066 3.93262 -52.7568 3.93262c-12.015 0 -24.5762 -0.546224 -37.6836 -1.63867v-103.547l-164.167 163.513z" />
-    <glyph glyph-name="uniF10D" unicode="&#xf10d;" 
+    <glyph glyph-name="uniF10F" unicode="&#xf10f;" 
 d="M334.848 192l177.152 -177.152l-78.8477 -78.8477l-177.152 177.152l-177.152 -177.152l-78.8477 78.8477l177.152 177.152l-177.152 177.152l78.8477 78.8477l177.152 -177.152l177.152 177.152l78.8477 -78.8477z" />
-    <glyph glyph-name="uniF165" unicode="&#xf165;" 
+    <glyph glyph-name="uniF172" unicode="&#xf172;" 
 d="M146.432 55.2959v54.7842c0 2.73047 -0.85319 4.94922 -2.55957 6.65625c-1.70703 1.70638 -3.92578 2.55957 -6.65625 2.55957h-91.6475c-2.38932 0 -4.60807 -0.85319 -6.65625 -2.55957c-2.04818 -1.70703 -2.90169 -3.92578 -2.56055 -6.65625v-54.7842
 c0 -2.73047 0.853516 -4.94922 2.56055 -6.65625c1.70638 -1.70638 3.92513 -2.55957 6.65625 -2.55957h91.6475c2.73047 0 4.94922 0.85319 6.65625 2.55957c1.70638 1.70703 2.55957 3.92578 2.55957 6.65625zM146.432 164.864v55.2959
 c0 2.38932 -0.85319 4.43717 -2.55957 6.14355c-1.70703 1.70703 -3.92578 2.56055 -6.65625 2.56055h-91.6475c-2.38932 0 -4.60807 -0.853516 -6.65625 -2.56055c-2.04818 -1.70638 -2.90169 -3.75423 -2.56055 -6.14355v-55.2959
@@ -371,17 +402,17 @@ c0 2.73112 -0.853516 4.94987 -2.56055 6.65625c-1.70638 1.70703 -3.9248 2.56055 -
 c0 -2.73112 0.853516 -4.94987 2.56055 -6.65625c1.70638 -1.70703 3.9248 -2.56055 6.65527 -2.56055h91.1367c2.73047 0 4.94889 0.853516 6.65527 2.56055c1.70703 1.70638 2.56055 3.92513 2.56055 6.65625zM475.648 366.08v-310.784
 c0 -12.6296 -4.60807 -23.3815 -13.8242 -32.2559c-9.21615 -8.875 -19.9681 -13.3125 -32.2559 -13.3125h-384c-12.2884 0 -23.0407 4.4375 -32.2568 13.3125c-9.21549 8.87435 -13.6527 19.6263 -13.3115 32.2559v310.784c0 12.6296 4.43717 23.3815 13.3115 32.2559
 c8.875 8.875 19.6273 13.4831 32.2568 13.8242h384c12.6289 0 23.3809 -4.60807 32.2559 -13.8242c8.87435 -9.21615 13.4824 -19.9681 13.8242 -32.2559z" />
-    <glyph glyph-name="uniF16A" unicode="&#xf16a;" 
+    <glyph glyph-name="uniF177" unicode="&#xf177;" 
 d="M292.352 100.864c0 -4.77865 -1.70638 -9.04525 -5.11914 -12.7998c-3.41341 -3.75521 -7.68034 -5.46191 -12.8008 -5.12012h-256c-5.11979 0 -9.38639 1.70671 -12.7998 5.12012c-3.41341 3.41276 -5.29069 7.67936 -5.63184 12.7998
 c-0.341146 5.11979 1.53613 9.55697 5.63184 13.3115l128 128c3.41341 3.41341 7.68001 5.12012 12.7998 5.12012c5.12044 0 9.38737 -1.70671 12.8008 -5.12012l128 -128c3.41276 -3.75456 5.11914 -8.19173 5.11914 -13.3115z" />
-    <glyph glyph-name="uniF115" unicode="&#xf115;" 
+    <glyph glyph-name="uniF117" unicode="&#xf117;" 
 d="M0 192.512c0 70.6562 25.0879 131.072 75.2637 181.248c50.1764 50.1764 110.422 75.0938 180.736 74.752c71.3385 0 131.925 -25.2585 181.76 -75.7754l74.2402 52.7354v-238.08l-227.84 76.2881l67.0723 47.6162c-27.9896 22.1868 -59.7337 33.2803 -95.2324 33.2803
 c-41.9837 0 -77.8236 -14.848 -107.52 -44.5439c-29.6966 -29.696 -44.5449 -65.5361 -44.5449 -107.521c0 -41.9837 14.8483 -77.8236 44.5449 -107.52c29.696 -29.696 65.5358 -44.5439 107.52 -44.5439c27.9896 0 53.5895 6.8265 76.7998 20.4795
 c23.2109 13.6536 41.6429 32.2565 55.2959 55.8086l90.1123 -52.2246c-22.8691 -38.5703 -53.9303 -69.6315 -93.1836 -93.1836c-39.2539 -23.5521 -82.262 -35.1576 -129.024 -34.8164c-70.6562 0 -130.902 24.9173 -180.736 74.752
 c-49.8346 49.8346 -74.9225 110.251 -75.2637 181.248z" />
-    <glyph glyph-name="uniF164" unicode="&#xf164;" 
+    <glyph glyph-name="uniF171" unicode="&#xf171;" 
 d="M3.49219 294.4l101 102.399h25.0312v-78.7695h378.093v-47.2607h-378.093v-78.7695h-25.0312zM508.508 89.5996l-101.016 -102.399h-25.9082v78.7686h-378.092v47.2607h378.092v78.7705h25.9082z" />
-    <glyph glyph-name="uniF124" unicode="&#xf124;" 
+    <glyph glyph-name="uniF127" unicode="&#xf127;" 
 d="M238.08 364.032c23.2109 0 47.1042 -5.80273 71.6797 -17.4082c24.5762 -11.6055 45.7389 -25.6003 63.4883 -41.9844c17.7493 -16.3835 33.9626 -32.9382 48.6396 -49.6641c14.6777 -16.7253 25.6006 -30.8903 32.7686 -42.4951l11.7754 -17.4082
 c-3.07161 -4.77865 -7.16764 -11.0934 -12.2881 -18.9443c-5.11979 -7.85091 -15.8717 -21.6748 -32.2559 -41.4717c-16.3841 -19.7975 -32.9388 -37.3763 -49.6641 -52.7363s-37.3757 -29.3548 -61.9512 -41.9844c-24.5762 -12.6289 -48.6403 -18.7728 -72.1924 -18.4316
 c-23.5521 0.341146 -47.4453 6.14388 -71.6797 17.4082c-24.235 11.2637 -45.3978 25.7702 -63.4883 43.5195s-34.4746 34.8161 -49.1523 51.2002c-14.6771 16.3841 -25.5996 31.0615 -32.7676 44.0322l-11.7764 17.4082c2.73047 4.77865 6.65592 10.9225 11.7764 18.4316
@@ -389,14 +420,14 @@ c5.11979 7.50911 15.8717 20.9919 32.2559 40.4482c16.3841 19.4557 33.1094 36.693
 c22.528 22.1868 33.6214 49.152 33.2803 80.8955c-0.341146 31.7441 -11.4346 58.7096 -33.2803 80.8965c-21.8451 22.1868 -48.8102 33.4508 -80.8955 33.792c-32.0853 0.341146 -59.0508 -10.9229 -80.8965 -33.792c-21.8451 -22.8698 -33.109 -49.8353 -33.792 -80.8965
 c-0.682292 -31.0612 10.5817 -58.0264 33.792 -80.8955c23.2109 -22.8698 50.1764 -33.9632 80.8965 -33.2803zM180.736 192.512c0 38.2298 19.1146 57.3447 57.3438 57.3447c38.2292 0 57.1732 -19.1149 56.832 -57.3447
 c-0.341146 -38.2292 -19.2852 -57.1732 -56.832 -56.832c-37.5469 0.341797 -56.6615 19.2858 -57.3438 56.832z" />
-    <glyph glyph-name="uniF10A" unicode="&#xf10a;" 
+    <glyph glyph-name="uniF10C" unicode="&#xf10c;" 
 d="M479.232 3.07227c-49.1523 -2.56055 -141.824 -10.752 -192 -36.8643c-2.56055 -15.3604 -15.3604 -27.1357 -31.2324 -27.1357s-28.1602 11.7754 -30.7197 27.1357c-50.1768 26.1123 -143.36 34.8164 -192 36.8643c-17.4082 0 -31.7441 14.3359 -31.7441 31.7441
 v381.951c0 17.4082 14.3359 31.7441 31.7441 31.7441c1.02344 0 2.04785 -0.511719 3.07129 -0.511719c219.137 -5.63184 219.648 -62.9756 219.648 -62.9756s1.02441 57.3438 219.648 62.9756c1.53516 0 2.04785 0.511719 3.58398 0.511719
 c17.4072 0 31.7432 -14.3359 31.7432 -31.7441v-381.951c0 -17.4082 -14.3359 -31.7441 -31.7432 -31.7441zM224.256 348.672c-40.96 20.9922 -109.056 29.6963 -159.231 33.2803v-316.928c85.5039 -4.6084 133.632 -17.4082 159.231 -30.208v313.855zM446.976 381.952
 c-50.1758 -3.58398 -117.76 -12.2881 -158.72 -33.2803v-313.855c25.6006 12.7998 73.7285 25.5996 158.72 30.208v316.928zM415.232 321.024v-63.4883s-95.2324 0 -95.2324 -31.7441v63.4883s0 31.7441 95.2324 31.7441zM415.232 194.048v-64s-95.2324 0 -95.2324 -31.7441
 v64s0 31.7441 95.2324 31.7441zM192.512 289.28v-63.4883c0 31.7441 -95.2314 31.7441 -95.2314 31.7441v63.4883c95.2314 0 95.2314 -31.7441 95.2314 -31.7441zM192.512 162.304v-64c0 31.7441 -95.2314 31.7441 -95.2314 31.7441v64
 c95.2314 0 95.2314 -31.7441 95.2314 -31.7441z" />
-    <glyph glyph-name="uniF163" unicode="&#xf163;" 
+    <glyph glyph-name="uniF170" unicode="&#xf170;" 
 d="M509.952 193.024c0 -10.752 -1.02441 -20.9922 -2.04785 -31.7441c-0.512695 -2.56055 -1.02441 -5.12012 -1.02441 -7.68066c-1.53613 -8.70312 -3.07227 -16.8955 -5.63184 -25.5996c-0.511719 -1.53613 -0.511719 -3.07227 -1.02441 -4.6084
 c-6.14355 -20.9912 -14.8477 -40.96 -25.5996 -59.3916c-22.0156 -36.8643 -52.7363 -67.584 -89.5996 -89.5996c-18.4326 -10.752 -38.4004 -19.4561 -59.3926 -25.6006c-1.53613 -0.511719 -3.07227 -0.511719 -4.60742 -1.02344
 c-8.19238 -2.04883 -16.8965 -4.09668 -25.6006 -5.12012c-2.55957 -0.512695 -5.12012 -1.02441 -7.67969 -1.53613c-10.2402 -1.02441 -20.9922 -2.04785 -31.7441 -2.04785v0v0c-10.752 0 -20.9922 1.02344 -31.7441 2.04785
@@ -415,7 +446,7 @@ c-1.02441 -6.14453 -2.04785 -12.8008 -2.04785 -19.4561c0 -6.65625 1.02344 -13.31
 c4.0957 -1.02441 8.19141 -2.04785 12.7998 -2.56055c6.14453 -1.02344 12.7998 -2.04785 19.4561 -2.04785s13.3115 1.02441 19.4561 2.04785c4.6084 0.512695 8.7041 1.53613 13.3115 2.56055v0v0c43.5205 11.7754 77.8242 46.0801 89.6006 90.1113v0v0
 c1.02344 4.09668 2.04785 8.19238 2.55957 12.8008c1.02441 6.14355 2.04785 12.7998 2.04785 19.4561c0 6.65527 -1.02344 13.3115 -2.04785 19.4561c-0.511719 4.60742 -1.53613 8.70312 -2.55957 12.7998v0zM450.56 297.984l-47.1035 -47.1045
 c7.16797 -17.9199 11.2637 -37.376 11.2637 -57.8555c0 -20.4805 -4.0957 -39.9365 -11.2637 -57.8564l47.1035 -47.1035c17.4082 31.2314 27.6484 66.5596 27.6484 104.96c0 38.3994 -10.2402 73.7275 -27.6484 104.96z" />
-    <glyph glyph-name="uniF128" unicode="&#xf128;" 
+    <glyph glyph-name="uniF12F" unicode="&#xf12f;" 
 d="M94.208 395.264c15.3604 10.752 39.4238 15.8721 72.1924 15.8721h39.4238v-39.9355h-20.9922c-10.2402 0 -19.4561 -0.511719 -26.1123 -1.53613c-6.65527 -1.02441 -11.7754 -3.07227 -15.8721 -5.63184c-3.58398 -3.07227 -6.14355 -6.65625 -7.67969 -11.2646
 c-1.53613 -4.60742 -2.55957 -10.2393 -2.55957 -17.4072c0 -13.8242 0.511719 -27.1367 1.53516 -40.4482c0.512695 -13.3125 1.02441 -27.6484 1.02441 -43.0078c0 -19.4561 -4.0957 -33.792 -11.7764 -42.4961c-7.67969 -8.7041 -20.9912 -14.3359 -39.4238 -17.4082
 v-2.04785c18.4326 -3.07227 31.2324 -9.21582 39.4238 -17.9199c8.19238 -8.7041 11.7764 -22.5283 11.7764 -41.9844c0 -15.8721 -0.511719 -30.208 -1.02441 -43.0078c-1.02344 -13.3125 -1.53516 -26.624 -1.53516 -40.4482
@@ -432,11 +463,11 @@ c8.19238 8.7041 20.9922 14.8477 39.4248 17.9199v2.04785c-18.4326 3.07227 -31.232
 c0 7.16797 -0.511719 12.7998 -2.04785 17.4072c-1.53613 4.6084 -4.09668 8.19238 -8.19238 11.2646c-3.58398 2.55957 -8.7041 4.60742 -15.3604 5.63184c-6.65527 1.02441 -15.3594 1.53613 -26.1113 1.53613h-20.9922v39.9355h39.4238
 c32.7686 0 56.832 -5.12012 72.1924 -15.8721c15.3594 -10.2393 23.04 -29.1836 23.04 -56.832c0 -9.21582 0 -16.8955 -0.512695 -24.5752c-0.511719 -7.16797 -1.53516 -14.3369 -2.04785 -20.9922c-1.02344 -6.65625 -1.53613 -13.3125 -2.04785 -19.9678
 c-0.511719 -7.16895 -1.02344 -14.3369 -1.02344 -22.0166c0 -4.60742 1.02344 -9.21582 3.07129 -13.3115c2.04785 -4.6084 6.14453 -8.7041 11.2646 -12.2881c5.63184 -3.58398 12.7998 -6.14453 22.0156 -8.7041z" />
-    <glyph glyph-name="uniF14B" unicode="&#xf14b;" 
+    <glyph glyph-name="uniF153" unicode="&#xf153;" 
 d="M192 96.7676h32.2559v-64h-32.2559v64zM256 96.7676h32.2559v-64h-32.2559v64zM320 96.7676h32.2559v-64h-32.2559v64zM416.256 144.384l95.7441 -79.8721l-95.7441 -79.8721h-32.2559v159.744h32.2559zM512 400.384v-159.744h-159.744v159.744h159.744zM463.872 288.768
 v64h-64v-64h64zM0 -15.3604v159.744h160.256v-159.744h-160.256zM48.1279 96.7676v-64h64v64h-64zM288.256 352.768h31.7441v-64h-31.7441v64zM224.256 352.768h31.7441v-64h-31.7441v64zM160.256 352.768h31.7441v-64h-31.7441v64zM128 240.64h-32.2559l-95.7441 79.8721
 l95.7441 79.8721h32.2559v-159.744z" />
-    <glyph glyph-name="uniF134" unicode="&#xf134;" 
+    <glyph glyph-name="uniF13B" unicode="&#xf13b;" 
 d="M475.648 265.728c9.89844 0 18.4316 -3.58398 25.5996 -10.752s10.752 -15.8717 10.752 -26.1113c0 -10.2402 -3.58398 -18.7738 -10.752 -25.6006c-7.16797 -6.82617 -15.7012 -10.4102 -25.5996 -10.752v-109.567c0 -9.89909 -3.75488 -18.4326 -11.2646 -25.6006
 c-7.50911 -7.16797 -16.0423 -10.9225 -25.5996 -11.2637c-79.5306 66.2188 -156.843 102.4 -231.937 108.544c-10.9225 -3.41341 -19.6263 -9.55729 -26.1113 -18.4316c-6.48568 -8.875 -9.38704 -18.6032 -8.7041 -29.1846
 c0.682292 -10.5814 4.43685 -19.2852 11.2637 -26.1113c-3.75456 -6.48568 -5.97331 -12.8005 -6.65625 -18.9443c-0.682292 -6.14388 0.000651042 -11.6051 2.04883 -16.3838c2.04753 -4.77865 5.11947 -10.0693 9.21582 -15.8721
@@ -445,17 +476,17 @@ c-16.3835 2.38932 -28.8421 7.68001 -37.376 15.8721c-1.36523 4.4375 -4.2666 12.80
 c-0.682292 7.85091 -0.34082 17.2376 1.02441 28.1602c1.36523 10.9225 3.41309 21.5039 6.14355 31.7441h-34.8154c-12.2884 0 -23.0407 4.43717 -32.2568 13.3115c-9.21549 8.875 -13.6527 19.627 -13.3115 32.2559v54.7842c0 12.6296 4.43717 23.3815 13.3115 32.2559
 c8.875 8.875 19.6273 13.3125 32.2568 13.3125h137.216c82.944 0 168.277 36.6934 256 110.08c9.89844 0 18.4316 -3.75456 25.5996 -11.2637c7.16797 -7.50977 10.9229 -16.0433 11.2646 -25.6006v-109.568zM438.784 93.1836v272.385
 c-75.0938 -57.3444 -148.139 -89.9417 -219.136 -97.792v-77.3125c71.6797 -7.85026 144.725 -40.277 219.136 -97.2803z" />
-    <glyph glyph-name="uniF140" unicode="&#xf140;" 
+    <glyph glyph-name="uniF148" unicode="&#xf148;" 
 d="M192 2.04785l-189.952 -63.4883l62.9766 190.465l317.439 317.439l126.977 -126.976zM65.0244 2.04785l95.2314 31.7441l-63.4883 63.4883zM128.512 129.024l63.4883 -63.4883l190.464 190.464l-63.4883 63.4883z" />
-    <glyph glyph-name="uniF114" unicode="&#xf114;" 
+    <glyph glyph-name="uniF116" unicode="&#xf116;" 
 d="M0 448.512h512v-512h-512v512zM448 0.511719v256h-384v-256h384zM448 320.512v64h-384v-64h384zM224.256 32.7676v95.7441h-64l95.7441 96.2559l96.2559 -96.2559h-64v-95.7441h-64z" />
-    <glyph glyph-name="uniF153" unicode="&#xf153;" 
+    <glyph glyph-name="uniF15B" unicode="&#xf15b;" 
 d="M237.568 421.376l228.863 -228.352l-228.863 -229.376l-80.3848 81.9199l89.6006 90.1113h-237.568v114.688h237.568l-89.6006 90.1123z" />
-    <glyph glyph-name="uniF158" unicode="&#xf158;" 
+    <glyph glyph-name="uniF160" unicode="&#xf160;" 
 d="M495.616 19.9678c18.9434 -18.9434 18.9434 -49.1514 0 -67.584c-18.4326 -18.9434 -48.6406 -18.9434 -67.584 0l-111.616 111.616c-31.7441 -19.4561 -68.0957 -31.2324 -108.032 -31.2324c-114.176 0 -206.848 92.6729 -206.848 206.849
 s92.6719 206.848 206.848 206.848s206.849 -92.6719 206.849 -206.848c0 -39.4238 -11.7764 -76.2881 -31.2324 -108.032zM208.384 96.7676c78.8486 0 142.849 64 142.849 142.849c0 79.3594 -64 143.359 -142.849 143.359c-79.3594 0 -143.359 -64 -143.359 -143.359
 c0 -78.8486 64 -142.849 143.359 -142.849z" />
-    <glyph glyph-name="uniF12F" unicode="&#xf12f;" 
+    <glyph glyph-name="uniF136" unicode="&#xf136;" 
 d="M416.256 100.864c0 7.85026 -2.73047 14.3356 -8.19141 19.4561l-59.3926 59.3916c-5.46094 5.46159 -11.9463 8.19238 -19.4561 8.19238c-8.19206 0 -15.0186 -3.07194 -20.4795 -9.21582c0.341146 -0.341797 2.04785 -2.0485 5.12012 -5.12012
 c3.07161 -3.07227 5.11947 -5.12044 6.14355 -6.14453s2.56022 -2.90137 4.6084 -5.63184c2.04753 -2.73047 3.24219 -5.11979 3.58398 -7.16797c0.341146 -2.04818 0.682292 -4.60807 1.02344 -7.67969c0 -7.85091 -2.73047 -14.3363 -8.19141 -19.4561
 c-5.46159 -5.12044 -11.9469 -7.85124 -19.4561 -8.19238c-2.73112 0 -5.29134 0.341471 -7.68066 1.02441c-2.38932 0.682292 -4.77865 1.87695 -7.16797 3.58398c-2.38932 1.70638 -4.2666 3.24219 -5.63184 4.60742s-3.41309 3.41341 -6.14355 6.14453
@@ -469,14 +500,14 @@ c-23.2109 0 -42.667 8.19206 -58.3682 24.5762l-58.8799 58.8799c-15.7012 16.043 -2
 c-22.8691 0 -42.3249 8.02116 -58.3672 24.0635l-59.3926 59.3916c-16.0423 16.043 -24.0635 35.499 -24.0635 58.3682c0 22.8698 8.02116 42.1553 24.0635 57.8564l41.9844 41.9834c16.0423 15.7018 35.4984 23.5527 58.3682 23.5527
 c22.8691 0 42.3249 -8.02148 58.3672 -24.0645l58.8809 -59.3916c15.7012 -15.7012 23.5518 -34.9867 23.5518 -57.8564c0 -23.5521 -8.36263 -43.5199 -25.0879 -59.9033l25.0879 -25.0889c16.3841 16.7259 36.1813 25.0889 59.3916 25.0889
 c22.8691 0 42.3252 -8.02148 58.3682 -24.0645l59.3916 -59.3916c16.043 -16.043 24.0645 -35.499 24.0645 -58.3682z" />
-    <glyph glyph-name="uniF139" unicode="&#xf139;" 
+    <glyph glyph-name="uniF140" unicode="&#xf140;" 
 d="M329.216 220.16v-18.4326c0 -2.73047 -0.85319 -4.94889 -2.55957 -6.65527c-1.70703 -1.70703 -3.92578 -2.56055 -6.65625 -2.56055h-237.568c-2.73047 0 -4.94889 0.853516 -6.65527 2.56055c-1.70703 1.70638 -2.56055 3.9248 -2.56055 6.65527v18.4326
 c0 2.38932 0.853516 4.43717 2.56055 6.14355c1.70638 1.70703 3.9248 2.56055 6.65527 2.56055h237.568c2.73047 0 4.94922 -0.853516 6.65625 -2.56055c1.70638 -1.70638 2.55957 -3.75423 2.55957 -6.14355zM365.568 92.1602v237.567
 c0 12.6296 -4.4375 23.3818 -13.3125 32.2568c-8.87435 8.87435 -19.6263 13.3115 -32.2559 13.3115h-237.568c-12.6289 0 -23.3809 -4.43717 -32.2559 -13.3115c-8.87435 -8.875 -13.4824 -19.6273 -13.8242 -32.2568v-237.567
 c0 -12.6296 4.60807 -23.5524 13.8242 -32.7686c9.21615 -9.21549 19.9681 -13.6527 32.2559 -13.3115h237.568c12.6296 0 23.3815 4.43717 32.2559 13.3115c8.875 8.875 13.3125 19.7979 13.3125 32.7686zM402.432 329.728v-237.567
 c0 -22.8691 -8.02116 -42.3252 -24.0635 -58.3682c-16.043 -16.043 -35.499 -24.0645 -58.3682 -24.0645h-237.568c-22.8691 0 -42.3249 8.02148 -58.3672 24.0645c-16.043 16.043 -24.0645 35.499 -24.0645 58.3682v237.567c0 22.528 8.02148 41.8135 24.0645 57.8564
 c16.0423 16.043 35.498 24.235 58.3672 24.5762h237.568c22.528 0 41.984 -8.19206 58.3682 -24.5762s24.4053 -35.6696 24.0635 -57.8564z" />
-    <glyph glyph-name="uniF11B" unicode="&#xf11b;" 
+    <glyph glyph-name="uniF11D" unicode="&#xf11d;" 
 d="M292.352 192.512c0 -20.1387 -6.99707 -37.376 -20.9912 -51.7119c-13.9948 -14.3359 -31.2321 -21.5039 -51.7119 -21.5039c-20.4805 0 -37.7181 7.16797 -51.7129 21.5039c-13.9941 14.3359 -21.1621 31.5732 -21.5039 51.7119
 c-0.341146 20.1387 6.82682 37.376 21.5039 51.7119c14.6777 14.3359 31.9154 21.5039 51.7129 21.5039c19.7969 0 37.0342 -7.16797 51.7119 -21.5039c14.6771 -14.3359 21.6742 -31.5732 20.9912 -51.7119zM219.648 348.16c-28.3307 0 -54.443 -6.9974 -78.3369 -20.9922
 c-23.8932 -13.9948 -42.6663 -32.9388 -56.3193 -56.832c-13.6536 -23.8932 -20.651 -49.8346 -20.9922 -77.8242c-0.341146 -27.9889 6.65625 -53.93 20.9922 -77.8232c14.3359 -23.8939 33.109 -42.8379 56.3193 -56.832
@@ -484,94 +515,94 @@ c23.2109 -13.9948 49.3232 -20.9922 78.3369 -20.9922c29.013 0 54.9541 6.9974 77.8
 c-13.3118 23.8932 -32.0853 42.8372 -56.3203 56.832c-24.2344 13.9948 -50.1755 20.9922 -77.8232 20.9922zM438.784 192.512c0 -39.9355 -9.72819 -76.6289 -29.1846 -110.08c-19.4557 -33.4505 -46.0798 -60.0745 -79.8721 -79.8721
 c-33.7917 -19.7969 -70.4847 -29.6953 -110.079 -29.6953c-39.5951 0 -76.4593 9.89844 -110.593 29.6953c-34.1328 19.7975 -60.5859 46.4215 -79.3594 79.8721c-18.7734 33.4512 -28.6722 70.1445 -29.6963 110.08c-1.02409 39.9362 8.87467 76.6296 29.6963 110.08
 c20.821 33.4505 47.2741 60.0745 79.3594 79.8721s68.9495 29.6963 110.593 29.6963c41.6426 0 78.3356 -9.89876 110.079 -29.6963c31.7441 -19.7975 58.3682 -46.4215 79.8721 -79.8721c21.5046 -33.4505 31.2327 -70.1439 29.1846 -110.08z" />
-    <glyph glyph-name="uniF167" unicode="&#xf167;" 
+    <glyph glyph-name="uniF174" unicode="&#xf174;" 
 d="M218.624 307.712c-1.70638 -3.75456 -4.43717 -5.63184 -8.19238 -5.63184h-64v-356.353c0 -2.73047 -0.85319 -4.94889 -2.55957 -6.65527c-1.70703 -1.70703 -3.92578 -2.56055 -6.65625 -2.56055h-54.7842c-2.73047 0 -4.94889 0.853516 -6.65527 2.56055
 c-1.70703 1.70638 -2.56055 3.9248 -2.56055 6.65527v356.353h-64c-4.0957 0 -6.82617 1.87728 -8.19141 5.63184c-1.36589 3.75456 -0.854167 6.9974 1.53516 9.72852l99.8408 110.079c1.70638 1.70703 3.9248 2.56055 6.65527 2.56055
 c2.38932 0 4.60807 -0.853516 6.65625 -2.56055l101.376 -110.079c2.38932 -3.07227 2.90137 -6.3151 1.53613 -9.72852z" />
-    <glyph glyph-name="uniF136" unicode="&#xf136;" 
+    <glyph glyph-name="uniF13D" unicode="&#xf13d;" 
 d="M0 192.512c0 70.6562 25.0879 131.072 75.2637 181.248c50.1764 50.1764 110.422 75.0938 180.736 74.752c70.3145 -0.341146 130.73 -25.2585 181.248 -74.752s75.4349 -109.91 74.752 -181.248c-0.682943 -71.3385 -25.6003 -131.755 -74.752 -181.248
 c-49.1523 -49.4928 -109.568 -74.4102 -181.248 -74.752c-71.6797 -0.341146 -131.925 24.5762 -180.736 74.752c-48.8105 50.1764 -73.8984 110.592 -75.2637 181.248zM109.056 150.528h293.889v83.9678h-293.889v-83.9678z" />
-    <glyph glyph-name="uniF15E" unicode="&#xf15e;" 
+    <glyph glyph-name="uniF166" unicode="&#xf166;" 
 d="M398.464 0h-284.944c-62.5918 0 -113.52 50.9443 -113.52 113.536v140.944c0 62.5918 50.9277 113.52 113.52 113.52h284.944c62.5918 0 113.536 -50.9277 113.536 -113.52v-140.944c0 -62.5918 -50.9443 -113.536 -113.536 -113.536zM113.52 336
 c-44.9434 0 -81.5195 -36.5762 -81.5195 -81.5195v-140.944c0 -44.96 36.5762 -81.5361 81.5195 -81.5361h284.944c44.96 0 81.5361 36.5762 81.5361 81.5361v140.944c0 44.9434 -36.5762 81.5195 -81.5361 81.5195h-284.944zM358.848 122.672
 c3.56836 -3.56836 5.34473 -7.87207 5.34473 -12.96s-1.77637 -9.3916 -5.34473 -12.96c-3.56738 -3.56836 -7.87207 -5.34375 -12.9434 -5.34375c-5.08789 0 -9.4082 1.77539 -12.9766 5.34375l-42.2881 42.6562c-13.1836 -7.87207 -26.9121 -11.792 -41.1357 -11.792
 c-21.5996 0 -40.1279 7.66406 -55.6318 23.0234c-15.4883 15.376 -23.2324 33.9844 -23.2324 55.8242c0 21.584 7.68066 40.0479 23.04 55.4238c15.3604 15.3604 33.9688 23.04 55.8086 23.04c21.8555 0 40.4473 -7.67969 55.8232 -23.04
 c15.3447 -15.376 23.0244 -33.8398 23.0244 -55.4238c0 -13.7119 -4.06348 -27.4238 -12.1924 -41.1357zM210.848 168c10.8008 -10.6562 23.6807 -16 38.6719 -16c14.9766 0 27.8242 5.34375 38.4805 16c10.6562 10.6719 16 23.4883 16 38.4805
 c0 14.9912 -5.34375 27.8076 -16 38.4795s-23.5039 16 -38.4805 16c-14.9912 0 -27.8711 -5.32812 -38.6719 -16c-10.7998 -10.6719 -16.1914 -23.4883 -16.1914 -38.4795c0.015625 -14.9922 5.3916 -27.8086 16.1914 -38.4805z" />
-    <glyph glyph-name="uniF116" unicode="&#xf116;" 
+    <glyph glyph-name="uniF118" unicode="&#xf118;" 
 d="M512 -6.65625c0 -30.208 -24.0645 -54.7842 -54.2725 -54.7842h-400.896c-30.208 0 -54.7842 24.5762 -54.7842 54.7842v400.384c0 30.208 24.5762 54.7842 54.7842 54.7842h400.896c30.208 0 54.2725 -24.5762 54.2725 -54.7842v-400.384zM464.384 398.848
 c0 1.02441 -0.511719 2.04883 -1.53613 2.04883h-411.136c-1.02344 0 -1.53613 -1.02441 -1.53613 -2.04883v-410.624c0 -1.02344 0.512695 -2.04785 1.53613 -2.04785h411.136c1.02441 0 1.53613 1.02441 1.53613 2.04785v410.624zM100.864 76.7998l-38.9121 27.6484
 l96.2559 134.655l61.4404 -61.4395l65.5352 114.688l65.0244 -80.8955l61.4404 98.8164l40.96 -25.0889l-97.792 -156.159l-62.9766 78.3359l-61.4395 -108.032l-66.0488 66.0479z" />
-    <glyph glyph-name="uniF150" unicode="&#xf150;" 
+    <glyph glyph-name="uniF158" unicode="&#xf158;" 
 d="M0 10.752l102.912 103.424l-75.7764 74.752h225.792v-225.792l-74.752 75.7764l-102.912 -102.912zM259.072 195.072v225.792l74.752 -75.7764l103.424 102.912l74.752 -74.752l-102.912 -103.424l75.7764 -74.752h-225.792z" />
-    <glyph glyph-name="uniF146" unicode="&#xf146;" 
+    <glyph glyph-name="uniF14E" unicode="&#xf14e;" 
 d="M365.568 174.08v36.8643c0 4.77865 -1.70671 9.04525 -5.12012 12.7998s-7.68001 5.46126 -12.7998 5.12012h-91.6484v91.6475c0 5.12044 -1.87728 9.38704 -5.63184 12.7998c-3.75456 3.41341 -8.02116 5.29102 -12.7998 5.63281h-36.3525
 c-5.11979 0 -9.38639 -1.8776 -12.7998 -5.63281c-3.41341 -3.75456 -5.29069 -8.02116 -5.63184 -12.7998v-91.6475h-91.1357c-5.12044 0 -9.55794 -1.70671 -13.3125 -5.12012s-5.46126 -7.68001 -5.12012 -12.7998v-36.8643
 c0 -4.77865 1.70671 -9.04525 5.12012 -12.7998s7.85091 -5.46126 13.3125 -5.12012h91.1357v-91.6484c0 -4.77865 1.87728 -9.04525 5.63184 -12.7998s8.02116 -5.63184 12.7998 -5.63184h36.3525c5.11979 0 9.38639 1.87728 12.7998 5.63184
 s5.29069 8.02116 5.63184 12.7998v91.6484h91.6484c4.77865 0 9.04525 1.70671 12.7998 5.12012s5.46126 7.68001 5.12012 12.7998zM438.784 329.728v-274.432c0 -22.528 -8.02148 -41.8132 -24.0645 -57.8555c-16.0423 -16.043 -35.4984 -24.235 -58.3682 -24.5762h-273.92
 c-22.8691 0 -42.3249 8.19206 -58.3672 24.5762c-16.043 16.3835 -24.0645 35.6686 -24.0645 57.8555v274.432c0 22.528 8.02148 41.8135 24.0645 57.8564c16.0423 16.043 35.498 24.235 58.3672 24.5762h273.92c22.8698 0 42.3258 -8.19206 58.3682 -24.5762
 c16.043 -16.3841 24.0645 -35.6696 24.0645 -57.8564z" />
-    <glyph glyph-name="uniF135" unicode="&#xf135;" 
+    <glyph glyph-name="uniF13C" unicode="&#xf13c;" 
 d="M0 120.32v144.384h512v-144.384h-512z" />
-    <glyph glyph-name="uniF156" unicode="&#xf156;" 
+    <glyph glyph-name="uniF15E" unicode="&#xf15e;" 
 d="M0 12.2881l180.224 180.224l-180.224 180.225l75.7764 75.7754l180.224 -179.712l75.7764 -76.2881l-256 -256z" />
-    <glyph glyph-name="uniF15A" unicode="&#xf15a;" 
+    <glyph glyph-name="uniF162" unicode="&#xf162;" 
 d="M252.384 244.576h-73.1357v-24.3838h48.7676v-24.3682h-48.7676v-48.7686h-48.752v121.904h121.904v-24.3838h-0.0166016zM398.672 244.576h-73.1357v-24.3838h48.7676v-24.3682h-48.7676v-48.7686h-48.7686v121.904h121.904v-24.3838zM398.464 16h-284.944
 c-62.5918 0 -113.52 50.9443 -113.52 113.536v140.944c0 62.5918 50.9277 113.52 113.52 113.52h284.944c62.5918 0 113.536 -50.9277 113.536 -113.52v-140.944c0 -62.5918 -50.9443 -113.536 -113.536 -113.536zM113.52 352
 c-44.9434 0 -81.5195 -36.5762 -81.5195 -81.5195v-140.944c0 -44.96 36.5762 -81.5361 81.5195 -81.5361h284.944c44.96 0 81.5361 36.5762 81.5361 81.5361v140.944c0 44.9434 -36.5762 81.5195 -81.5361 81.5195h-284.944z" />
-    <glyph glyph-name="uniF131" unicode="&#xf131;" 
+    <glyph glyph-name="uniF138" unicode="&#xf138;" 
 d="M91.6484 228.864h145.92v55.2959c0 20.1387 -7.16797 37.376 -21.5039 51.7119c-14.3366 14.3359 -31.5742 21.3333 -51.7129 20.9922c-20.1387 -0.341797 -37.376 -7.33919 -51.7119 -20.9922c-14.3359 -13.6536 -21.333 -30.891 -20.9912 -51.7119v-55.2959z
 M329.216 201.728v-164.863c0 -7.50977 -2.73047 -13.8245 -8.19141 -18.9443c-5.46159 -5.11979 -11.9469 -7.85059 -19.4561 -8.19238h-273.92c-7.85091 0 -14.3363 2.73079 -19.4561 8.19238c-5.12044 5.46159 -7.85124 11.7764 -8.19238 18.9443v164.863
 c0 7.50977 2.73079 13.9951 8.19238 19.4561c5.46094 5.46159 11.9463 8.02181 19.4561 7.68066h8.70312v55.2959c0 34.8158 12.6296 64.8532 37.8887 90.1123c25.2585 25.2585 55.2956 37.8877 90.1113 37.8877c34.8164 0 65.0244 -12.6292 90.624 -37.8877
 c25.6003 -25.2591 38.0589 -55.2965 37.376 -90.1123v-55.2959h9.2168c7.85026 0 14.3356 -2.56022 19.4561 -7.68066c5.11979 -5.11979 7.85026 -11.6051 8.19141 -19.4561z" />
-    <glyph glyph-name="uniF15F" unicode="&#xf15f;" 
+    <glyph glyph-name="uniF167" unicode="&#xf167;" 
 d="M252.384 228.576h-73.1357v-24.3838h73.1357v-73.1367h-121.888v24.3682h73.1357v24.3838h-73.1357v73.1523h121.904v-24.3838h-0.0166016zM398.672 228.576h-73.1357v-24.3838h48.7676v-24.3682h-48.7676v-48.7686h-48.7686v121.904h121.904v-24.3838zM398.464 0
 h-284.944c-62.5918 0 -113.52 50.9443 -113.52 113.536v140.944c0 62.5918 50.9277 113.52 113.52 113.52h284.944c62.5918 0 113.536 -50.9277 113.536 -113.52v-140.944c0 -62.5918 -50.9443 -113.536 -113.536 -113.536zM113.52 336
 c-44.9434 0 -81.5195 -36.5762 -81.5195 -81.5195v-140.944c0 -44.96 36.5762 -81.5361 81.5195 -81.5361h284.944c44.96 0 81.5361 36.5762 81.5361 81.5361v140.944c0 44.9434 -36.5762 81.5195 -81.5361 81.5195h-284.944z" />
-    <glyph glyph-name="uniF160" unicode="&#xf160;" 
+    <glyph glyph-name="uniF168" unicode="&#xf168;" 
 d="M243.248 131.04h-121.904v121.92h48.752v-97.5361h24.3848v97.5361h48.7676v-121.92zM389.536 228.576h-73.1357v-24.3838h48.7676v-24.3682h-48.7676v-48.7686h-48.752v121.904h121.903v-24.3838h-0.015625zM398.464 0h-284.944
 c-62.5918 0 -113.52 50.9443 -113.52 113.536v140.944c0 62.5918 50.9277 113.52 113.52 113.52h284.944c62.5918 0 113.536 -50.9277 113.536 -113.52v-140.944c0 -62.5918 -50.9443 -113.536 -113.536 -113.536zM113.52 336
 c-44.9434 0 -81.5195 -36.5762 -81.5195 -81.5195v-140.944c0 -44.96 36.5762 -81.5361 81.5195 -81.5361h284.944c44.96 0 81.5361 36.5762 81.5361 81.5361v140.944c0 44.9434 -36.5762 81.5195 -81.5361 81.5195h-284.944z" />
-    <glyph glyph-name="uniF14F" unicode="&#xf14f;" 
+    <glyph glyph-name="uniF157" unicode="&#xf157;" 
 d="M286.4 -64l75.1992 75.2002l-102.399 104l73.5996 73.5996l104 -102.399l75.2002 75.1992v-225.6h-225.6zM179.2 195.2l-104 104l-75.2002 -76.7998v225.6h225.6l-75.1992 -75.2002l102.399 -104z" />
-    <glyph glyph-name="uniF13B" unicode="&#xf13b;" 
+    <glyph glyph-name="uniF142" unicode="&#xf142;" 
 d="M25.5996 320v31.7441c0 52.7363 85.5039 95.2314 190.465 95.2314c104.96 0 190.976 -42.4951 190.976 -95.2314v-31.7441c0 -36.3516 -39.4238 -67.584 -98.3037 -83.4561c-2.04785 -0.511719 -4.09668 -1.02441 -6.14453 -1.53613
 c-25.5996 -6.65625 -55.2959 -10.752 -86.5273 -10.752c-104.961 0 -190.465 43.0078 -190.465 95.7441zM384 235.008c14.8477 11.7764 23.04 26.624 23.04 43.0078v-51.1992c-7.16797 3.58398 -14.8477 6.14355 -23.04 8.19141zM205.824 2.04785
 c14.3359 -25.5996 35.8398 -46.5918 61.4395 -60.416c-16.3838 -2.55957 -33.2793 -3.58398 -51.1992 -3.58398c-104.961 0 -190.465 42.4961 -190.465 95.2324v53.7598c0 -50.6885 79.8721 -82.9443 180.225 -84.9922zM191.488 34.3037
 c-93.6963 6.14453 -165.889 46.0801 -165.889 94.7207v53.7598c0 -47.6162 69.1201 -78.8486 159.744 -84.4805c-0.511719 -5.63184 -1.02344 -11.2637 -1.02344 -16.8955c0 -16.3838 2.55957 -32.2559 7.16797 -47.1045zM192 129.536
 c-93.6963 6.14355 -166.4 46.0801 -166.4 94.7197v53.7598c0 -52.7354 85.5039 -85.5039 190.465 -85.5039c5.11914 0 9.72754 0 14.3359 0.512695c-17.4082 -17.9209 -30.7207 -39.4248 -38.4004 -63.4883zM486.912 81.4082c0 -79.3604 -64.5117 -143.36 -143.36 -143.36
 c-78.8477 0 -143.359 64 -143.359 143.36c0 79.3594 64.5117 142.848 143.359 142.848c78.8486 0 143.36 -64 143.36 -142.848zM438.784 97.2803h-79.3604v79.3594h-31.7441v-79.3594h-79.3594v-31.7441h79.3594v-79.8721h31.7441v79.8721h79.3604v31.7441z" />
-    <glyph glyph-name="uniF11A" unicode="&#xf11a;" 
+    <glyph glyph-name="uniF11C" unicode="&#xf11c;" 
 d="M335.36 447.488l158.72 -158.721v-253.951h-95.2324v-95.2324h-380.928v412.672h95.2324v95.2324h222.208zM335.36 3.07227v31.7441h-222.208v253.951h-31.7441v-285.695h253.952zM430.592 98.3037v158.721h-126.976v126.976h-126.977v-285.696h253.952z" />
-    <glyph glyph-name="uniF105" unicode="&#xf105;" 
+    <glyph glyph-name="uniF106" unicode="&#xf106;" 
 d="M0 -63.4883v205.824h205.824l-81.9199 -81.9199c36.8639 -36.5228 80.8958 -54.7842 132.096 -54.7842c42.6667 0 80.5547 12.8001 113.664 38.4004c33.1094 25.5996 55.2959 58.3675 66.5596 98.3037h70.6562c-11.9466 -59.0508 -41.472 -108.203 -88.5762 -147.456
 c-47.1035 -39.2533 -101.205 -58.7093 -162.304 -58.3682c-70.6562 0 -130.902 24.9173 -180.736 74.752zM5.12012 242.688c11.9466 59.3919 41.472 108.544 88.5762 147.455c47.1035 38.9121 101.205 58.3682 162.304 58.3682c70.6562 0 131.072 -24.9173 181.248 -74.752
 l74.752 74.752v-205.823h-205.824l81.9199 81.9199c-36.8639 36.5221 -80.8958 54.7832 -132.096 54.7832c-42.6667 0 -80.5547 -12.7998 -113.664 -38.3994c-33.1094 -25.6003 -55.2959 -58.3682 -66.5596 -98.3037h-70.6562z" />
-    <glyph glyph-name="uniF159" unicode="&#xf159;" 
+    <glyph glyph-name="uniF161" unicode="&#xf161;" 
 d="M288 -64h-64v48h64v-48zM128 400v48h48v-48h-48zM176 -64h-48v48h48v-48zM224 448h64v-48h-64v48zM432 400v48h80v-80h-48v32h-32zM48 160h-48v64h48v-64zM0 272v48h48v-48h-48zM48 64h-48v48h48v-48zM384 -16v-48h-48v48h48zM80 -16v-48h-80v80h48v-32h32zM464 16h48
 v-80h-80v48h32v32zM464 320h48v-48h-48v48zM48 368h-48v80h80v-48h-32v-32zM336 448h48v-48h-48v48zM464 224h48v-64h-48v64zM512 112v-48h-48v48h48zM147.2 81.5996c-28.7998 30.4004 -44.7998 67.2002 -44.7998 108.801c0 43.1992 14.3994 78.3994 44.7998 108.8
 c30.3994 30.3994 67.2002 44.7998 108.8 44.7998s76.7998 -14.4004 108.8 -44.7998c30.4004 -30.4004 44.7998 -65.6006 44.7998 -108.8c0 -43.2002 -16 -80 -44.7998 -108.801c-30.3994 -30.3994 -65.5996 -44.7998 -108.8 -44.7998s-80 16 -108.8 44.7998zM190.4 204.8
 l-32 -32l64 -64l32 32l99.1992 99.2002l-32 32l-99.1992 -100.8z" />
-    <glyph glyph-name="uniF119" unicode="&#xf119;" 
+    <glyph glyph-name="uniF11B" unicode="&#xf11b;" 
 d="M287.744 447.488l159.231 -159.232v-350.72h-381.951v509.952h222.72zM128.512 1.53613h254.977v254.464h-127.488v127.488h-127.488v-381.952z" />
-    <glyph glyph-name="uniF145" unicode="&#xf145;" 
+    <glyph glyph-name="uniF14D" unicode="&#xf14d;" 
 d="M0 192c0 70.4004 25.5996 131.2 75.2002 180.8c49.5996 49.6006 110.399 76.7998 180.8 75.2002s131.2 -25.5996 180.8 -75.2002c51.2002 -48 75.2002 -108.8 75.2002 -180.8s-25.5996 -131.2 -75.2002 -180.8c-49.5996 -49.6006 -108.8 -73.6006 -180.8 -75.2002
 s-131.2 24 -180.8 75.2002c-49.6006 51.2002 -73.6006 110.399 -75.2002 180.8zM56 192c0 -56 19.2002 -102.4 59.2002 -140.8c40 -38.4004 86.3994 -59.2002 140.8 -59.2002s102.4 19.2002 140.8 59.2002c38.4004 40 59.2002 86.3994 59.2002 140.8
 s-19.2002 102.4 -59.2002 140.8c-40 38.4004 -86.3994 60.7998 -140.8 59.2002c-54.4004 0 -102.4 -19.2002 -140.8 -59.2002c-38.4004 -40 -59.2002 -84.7998 -59.2002 -140.8zM112 152v81.5996h104v102.4h81.5996v-104h102.4v-81.5996h-104v-102.4h-81.5996v104h-102.4z
 " />
-    <glyph glyph-name="uniF16B" unicode="&#xf16b;" 
+    <glyph glyph-name="uniF178" unicode="&#xf178;" 
 d="M0 102.4l256 256l256 -256l-75.7764 -75.7764l-180.224 179.712l-180.224 -179.712z" />
-    <glyph glyph-name="uniF14A" unicode="&#xf14a;" 
+    <glyph glyph-name="uniF152" unicode="&#xf152;" 
 d="M492.544 -62.4639h-4

<TRUNCATED>
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/332c7b53/assets/fonts/fauxtonicon.ttf
----------------------------------------------------------------------
diff --git a/assets/fonts/fauxtonicon.ttf b/assets/fonts/fauxtonicon.ttf
index 3b59a2f..b73c3a7 100644
Binary files a/assets/fonts/fauxtonicon.ttf and b/assets/fonts/fauxtonicon.ttf differ