@@ -25,6 +25,7 @@
{{ chart.name }}
diff --git a/app/assets/all.css b/app/assets/all.css
index ba197a2..f4c743c 100644
--- a/app/assets/all.css
+++ b/app/assets/all.css
@@ -14,7 +14,7 @@
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
- */@-ms-viewport{width:device-width}.hidden,.token-suggestions .token.disabled,.token-suggestions .token.btn.loading,.token-suggestions .token.loading.demo-button,.token-suggestions .token.loading.create-demo,.token-suggestions .token.loading.go-to-demo,.token-suggestions .welcome .token.loading.action,.welcome .token-suggestions .token.loading.action{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media (min-width: 768px) and (max-width: 979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media (max-width: 767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}.clearfix,.wizard,.slug-grid,.slug-grid-item,.welcome,.services .controls,.middlewares .thumbnails li .thumbnail .controls{*zoom:1}.clearfix:before,.wizard:before,.slug-grid:before,.slug-grid-item:before,.welcome:before,.services .controls:before,.middlewares .thumbnails li .thumbnail .controls:before,.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{display:table;content:"";line-height:0}.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span1{width:70px}.span2,.search-box .controls{width:170px}.span3{width:270px}.span4,.middleware-stack{width:370px}.span5{width:470px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:570px}.span7{width:670px}.span8,.pipeline-box{width:770px}.span9{width:870px}.span10,.search-box .search-tokens{width:970px}.span11{width:1070px}.span12{width:1170px}.offset1{margin-left:130px}.offset2{margin-left:230px}.offset3{margin-left:330px}.offset4{margin-left:430px}.offset5{margin-left:530px}.offset6{margin-left:630px}.offset7{margin-left:730px}.offset8{margin-left:830px}.offset9{margin-left:930px}.offset10{margin-left:1030px}.offset11{margin-left:1130px}.offset12{margin-left:1230px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.5641%;*margin-left:2.51091%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.5641%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.98291%;*width:5.92971%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.52991%;*width:14.47672%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:23.07692%;*width:23.02373%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.62393%;*width:31.57074%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.17094%;*width:40.11775%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.71795%;*width:48.66476%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.26496%;*width:57.21177%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.81197%;*width:65.75877%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.35897%;*width:74.30578%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.90598%;*width:82.85279%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.45299%;*width:91.3998%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.11111%;*margin-left:11.00473%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.54701%;*margin-left:8.44063%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.65812%;*margin-left:19.55174%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.09402%;*margin-left:16.98763%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.20513%;*margin-left:28.09875%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.64103%;*margin-left:25.53464%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:36.75214%;*margin-left:36.64575%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.18803%;*margin-left:34.08165%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.29915%;*margin-left:45.19276%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.73504%;*margin-left:42.62866%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:53.84615%;*margin-left:53.73977%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.28205%;*margin-left:51.17567%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.39316%;*margin-left:62.28678%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.82906%;*margin-left:59.72268%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:70.94017%;*margin-left:70.83379%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.37607%;*margin-left:68.26969%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.48718%;*margin-left:79.3808%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:76.92308%;*margin-left:76.81669%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.03419%;*margin-left:87.92781%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.47009%;*margin-left:85.3637%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.5812%;*margin-left:96.47481%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.01709%;*margin-left:93.91071%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.12821%;*margin-left:105.02182%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.5641%;*margin-left:102.45772%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:156px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:356px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:556px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:756px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:956px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails,.control-box .thumbnails,.welcome .description .thumbnails,.pipeline-container .thumbnails,.search-box .thumbnails{margin-left:0}}@media (min-width: 768px) and (max-width: 979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span1{width:42px}.span2,.search-box .controls{width:104px}.span3{width:166px}.span4,.middleware-stack{width:228px}.span5{width:290px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:352px}.span7{width:414px}.span8,.pipeline-box{width:476px}.span9{width:538px}.span10,.search-box .search-tokens{width:600px}.span11{width:662px}.span12{width:724px}.offset1{margin-left:82px}.offset2{margin-left:144px}.offset3{margin-left:206px}.offset4{margin-left:268px}.offset5{margin-left:330px}.offset6{margin-left:392px}.offset7{margin-left:454px}.offset8{margin-left:516px}.offset9{margin-left:578px}.offset10{margin-left:640px}.offset11{margin-left:702px}.offset12{margin-left:764px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.76243%;*margin-left:2.70924%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.76243%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.8011%;*width:5.74791%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.36464%;*width:14.31145%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:22.92818%;*width:22.87499%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.49171%;*width:31.43852%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.05525%;*width:40.00206%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.61878%;*width:48.56559%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.18232%;*width:57.12913%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.74586%;*width:65.69266%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.30939%;*width:74.2562%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.87293%;*width:82.81974%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.43646%;*width:91.38327%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.32597%;*margin-left:11.21958%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.56354%;*margin-left:8.45715%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.8895%;*margin-left:19.78312%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.12707%;*margin-left:17.02069%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.45304%;*margin-left:28.34666%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.69061%;*margin-left:25.58422%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:37.01657%;*margin-left:36.91019%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.25414%;*margin-left:34.14776%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.58011%;*margin-left:45.47373%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.81768%;*margin-left:42.7113%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:54.14365%;*margin-left:54.03726%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.38122%;*margin-left:51.27483%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.70718%;*margin-left:62.6008%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.94475%;*margin-left:59.83837%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:71.27072%;*margin-left:71.16434%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.50829%;*margin-left:68.4019%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.83425%;*margin-left:79.72787%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:77.07182%;*margin-left:76.96544%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.39779%;*margin-left:88.29141%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.63536%;*margin-left:85.52898%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.96133%;*margin-left:96.85494%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.1989%;*margin-left:94.09251%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.52486%;*margin-left:105.41848%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.76243%;*margin-left:102.65605%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:90px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:214px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:338px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:462px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:586px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}}@media (max-width: 767px){body{padding-left:20px;padding-right:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px}.container-fluid{padding:0}.dl-horizontal dt,.trace-response dt,.trace-request dt{float:none;clear:none;width:auto;text-align:left}.dl-horizontal dd,.trace-response dd,.trace-request dd{margin-left:0}.container{width:auto}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child,.control-box [class*="offset"]:first-child,.welcome .description [class*="offset"]:first-child,.pipeline-container [class*="offset"]:first-child,.search-box [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media (max-width: 480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0)}.page-header h1 small,.page-header .service-select small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-left:10px;padding-right:10px}.media .pull-left,.demo-services .demo-service .pull-left,.media .pull-right,.demo-services .demo-service .pull-right,.media .demo-button,.demo-services .demo-service .demo-button,.media .create-demo,.demo-services .demo-service .create-demo,.media .go-to-demo,.demo-services .demo-service .go-to-demo{float:none;display:block;margin-bottom:10px}.media-object,.demo-services .demo-service-logo,.demo-services .demo-service-body{margin-right:0;margin-left:0}.modal{top:10px;left:10px;right:10px}.modal-header .close,.modal-header .demo-block .demo-block-remove,.demo-block .modal-header .demo-block-remove{padding:10px;margin:-10px}.carousel-caption{position:static}}@media (max-width: 979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-top .main-menu-inner,.navbar-fixed-bottom .navbar-inner,.navbar-fixed-bottom .main-menu-inner{padding:5px}.navbar .container,.main-menu .container{width:auto;padding:0}.navbar .brand,.main-menu .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav,.nav-collapse .service-nav{float:none;margin:0 0 10px}.nav-collapse .nav>li,.nav-collapse .service-nav>li{float:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical,.nav-collapse .service-nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header,.nav-collapse .service-nav .nav-header{color:#fff;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn,.nav-collapse .demo-button,.nav-collapse .create-demo,.nav-collapse .go-to-demo,.nav-collapse .welcome .action,.welcome .nav-collapse .action{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .service-nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .service-nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#db3c4e}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .service-nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#fff}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .service-nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .service-nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#2e2c31}.nav-collapse.in .btn-group{margin-top:5px;padding:0}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .service-nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after,.nav-collapse .service-nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #db3c4e;border-bottom:1px solid #db3c4e;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#2e2c31;border-bottom-color:#2e2c31}.navbar .nav-collapse .nav.pull-right,.main-menu .nav-collapse .nav.pull-right,.navbar .nav-collapse .nav.demo-button,.main-menu .nav-collapse .nav.demo-button,.navbar .nav-collapse .nav.create-demo,.main-menu .nav-collapse .nav.create-demo,.navbar .nav-collapse .create-demo.service-nav,.main-menu .nav-collapse .create-demo.service-nav,.navbar .nav-collapse .nav.go-to-demo,.main-menu .nav-collapse .nav.go-to-demo,.navbar .nav-collapse .go-to-demo.service-nav,.main-menu .nav-collapse .go-to-demo.service-nav,.navbar .nav-collapse .demo-button.service-nav,.main-menu .nav-collapse .demo-button.service-nav,.navbar .nav-collapse .pull-right.service-nav,.main-menu .nav-collapse .pull-right.service-nav{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0}.navbar .btn-navbar,.main-menu .btn-navbar{display:block}.navbar-static .navbar-inner,.navbar-static .main-menu-inner{padding-left:10px;padding-right:10px}}@media (min-width: 980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.switch .slide-button{display:none}.switch{display:inline-block;cursor:pointer;vertical-align:middle;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center;position:relative;display:inline-block;padding-bottom:4px;padding-top:4px;font-size:14px;line-height:20px;vertical-align:middle}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch .slide-button{display:block;position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%;-webkit-transition:left 0.5s;-moz-transition:left 0.5s;-o-transition:left 0.5s;transition:left 0.5s}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.switch input:focus+label{outline:1px dotted #888}.switch{display:inline-block;cursor:pointer;border:1px solid;position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #bbbfc0;border-bottom-color:#a1a6a7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-image:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch:hover{background:auto}.switch label{text-shadow:none}.switch input:checked+label{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.switch .slide-button{border-width:1px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1bb0ae;background-image:-moz-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#1bb0ae), to(#1bb0ae));background-image:-webkit-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-o-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:linear-gradient(to bottom, #1bb0ae, #1bb0ae);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF1BB0AE', endColorstr='#FF1BB0AE', GradientType=0);border-color:#1bb0ae #1bb0ae #116e6c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#1bb0ae;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.switch .slide-button:hover,.switch .slide-button:focus,.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action,.switch .slide-button.disabled,.switch .slide-button.btn.loading,.switch .slide-button.loading.demo-button,.switch .slide-button.loading.create-demo,.switch .slide-button.loading.go-to-demo,.switch .welcome .slide-button.loading.action,.welcome .switch .slide-button.loading.action,.switch .slide-button[disabled]{color:#fff;background-color:#1bb0ae;*background-color:#189a98}.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action{background-color:#148482 \9}.switch .slide-button:hover,.switch .slide-button:focus{color:#333;text-decoration:none;background-position:0 -15px}html,body{height:100%}h1,.service-select{font-size:22px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}a:hover,a:focus{text-decoration:none}*{box-shadow:none !important;text-shadow:none !important;border-radius:0 !important}#wrap{min-height:100%;padding-bottom:20px;height:auto !important;height:100%;margin:0 auto -60px}.container{max-width:1200px;margin:0 auto}#header{margin:0}#content{max-width:1200px;margin:0 auto;padding-bottom:50px}#footer{color:#fff;padding:20px 0 10px 0;background-color:#2e2c31;text-align:center;font-size:11.9px}#footer .container-fluid{max-width:1200px;margin:0 auto}#footer .credit{margin:15px 0}.slug-confirm .slug-confirm-box{background:#f6a201;color:#fff;font-weight:bold;display:none;padding:2px 10px;text-align:center}.slug-confirm .slug-confirm-box a{color:#fff}.slug-confirm .slug-confirm-box .slug-confirmation{color:#932937;margin-right:2px}.slug-confirm.slug-confirm-active .slug-confirm-original,.slug-confirm.slug-confirm-active i{display:none}.slug-confirm.slug-confirm-active .slug-confirm-box{display:block}.help{display:inline-block;vertical-align:middle;margin:0 0 0 5px}.help-link{float:right;padding-left:10px}.help-link:hover{text-decoration:none}.help-link i{font-size:100px;opacity:0.1}.modal>form{margin:0}.control-box input[type=checkbox]{margin:0 10px}.slug-alert{position:relative;z-index:9000;height:0}.slug-alert.in{height:auto}.wizard{border:1px solid #fff;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#bbbfc0}.wizard ul{list-style:none outside none;padding:0;margin:0}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#999;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #f5f5f5;border-right:0;display:block;position:absolute;right:-14px;top:0}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.complete{background:#f3f4f5;color:#00974a}.wizard ul li.complete:hover{background:#e7eff8;cursor:pointer}.wizard ul li.complete:hover .chevron:before{border-left:14px solid #e7eff8}.wizard ul li.complete .chevron:before{border-left:14px solid #f3f4f5}.wizard ul li.active,.wizard ul .slug-item.highlighted li.btn[type=highlight],.slug-item.highlighted .wizard ul li.btn[type=highlight],.wizard ul .slug-item.highlighted li[type=highlight].demo-button,.slug-item.highlighted .wizard ul li[type=highlight].demo-button,.wizard ul .slug-item.highlighted li[type=highlight].create-demo,.slug-item.highlighted .wizard ul li[type=highlight].create-demo,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action,.wizard ul li.current{background:#f1f6fc;color:#11798c}.wizard ul li.active .chevron:before,.wizard ul .slug-item.highlighted li.btn[type=highlight] .chevron:before,.slug-item.highlighted .wizard ul li.btn[type=highlight] .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].demo-button .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].demo-button .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].create-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].create-demo .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo .chevron:before,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action .chevron:before,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action .chevron:before,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action .chevron:before,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action .chevron:before,.wizard ul li.current .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:nth-child(1){border-radius:4px 0 0 4px;padding-left:20px;z-index:10}.wizard ul li:nth-child(2){z-index:9}.wizard ul li:nth-child(3){z-index:8}.wizard ul li:nth-child(4){z-index:7}.wizard ul li:nth-child(5){z-index:6}.wizard ul li:nth-child(6){z-index:5}.wizard ul li:nth-child(7){z-index:4}.wizard ul li:nth-child(8){z-index:3}.wizard ul li:nth-child(9){z-index:2}.wizard ul li:nth-child(10){z-index:1}.wizard .actions{line-height:44px;float:right;padding-right:15px;vertical-align:middle}.wizard .actions a{line-height:45px;font-size:12px;margin-right:8px}.wizard .actions .btn-prev i{margin-right:5px}.wizard .actions .btn-next i{margin-left:5px}.step-content .step-pane{display:none}.step-content .active,.step-content .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action{display:block}.step-content .active .btn-group .active,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .active,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .active,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .active,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .active,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .active,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .active,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .active,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .active,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .active,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .active,.step-content .active .btn-group .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .active .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .btn[type=highlight],.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .btn[type=highlight],.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .active .btn-group .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content .active .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].demo-button,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].demo-button,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .active .btn-group .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].create-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].create-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .active .btn-group .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].go-to-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .active .btn-group .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .active .btn-group [type=highlight].action,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome .btn[type=highlight] .btn-group [type=highlight].action,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].demo-button .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].create-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].go-to-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].action,.step-content .active .btn-group .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content .active .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].action{display:inline-block}.popover{max-width:100%;min-width:450px}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.btn.loading i,.loading.demo-button i,.loading.create-demo i,.loading.go-to-demo i,.welcome .loading.action i{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.btn:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#bbbfc0}.btn.active,.active.demo-button,.active.create-demo,.active.go-to-demo,.welcome .active.action,.slug-item.highlighted .btn[type=highlight],.slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .welcome [type=highlight].action,.welcome .slug-item.highlighted [type=highlight].action,.btn:active,.demo-button:active,.create-demo:active,.go-to-demo:active,.welcome .action:active{background:#2e2c31;color:#fff}.btn-primary:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn-primary:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#189a98}.btn-success:hover,.btn-success:focus{background:#00974a}.btn-info:hover,.btn-info:focus{background:#138ca3}.btn-warning:hover,.confirm-delete:hover,.btn-warning:focus,.confirm-delete:focus{background:#dd9101}.btn-danger:hover,.btn-danger:focus{background:#7f2330}.btn.disabled,.btn.loading,.loading.demo-button,.loading.create-demo,.loading.go-to-demo,.welcome .loading.action,.disabled.demo-button,.disabled.create-demo,.disabled.go-to-demo,.welcome .disabled.action{cursor:not-allowed;border-color:#bbbfc0}.btn.disabled:hover,.btn.loading:hover,.loading.demo-button:hover,.loading.create-demo:hover,.loading.go-to-demo:hover,.welcome .loading.action:hover,.disabled.demo-button:hover,.disabled.create-demo:hover,.disabled.go-to-demo:hover,.welcome .disabled.action:hover,.btn.disabled:focus,.btn.loading:focus,.loading.demo-button:focus,.loading.create-demo:focus,.loading.go-to-demo:focus,.welcome .loading.action:focus,.disabled.demo-button:focus,.disabled.create-demo:focus,.disabled.go-to-demo:focus,.welcome .disabled.action:focus{background:transparent}.btn.disabled:active,.btn.loading:active,.loading.demo-button:active,.loading.create-demo:active,.loading.go-to-demo:active,.welcome .loading.action:active,.disabled.demo-button:active,.disabled.create-demo:active,.disabled.go-to-demo:active,.welcome .disabled.action:active{background:transparent;color:inherit}.btn-link:hover,.new-endpoint .copy-to-clipboard:hover,.demo-services .demo-service-action:hover,.service-demo button:hover,.demo-block .demo-block-remove:hover,.btn-link:focus,.new-endpoint .copy-to-clipboard:focus,.demo-services .demo-service-action:focus,.service-demo button:focus,.demo-block .demo-block-remove:focus{background:transparent}.btn-link:active,.new-endpoint .copy-to-clipboard:active,.demo-services .demo-service-action:active,.service-demo button:active,.demo-block .demo-block-remove:active{background:transparent;color:inherit}.cta{background:transparent;border:1px solid #1bb0ae;color:#1bb0ae;text-align:center;min-height:4em}.cta:hover,.cta:focus{background:#1bb0ae;color:#fff}.cta:active{background:#2e2c31;color:#fff}.label-debug,.label-log,.label-success,.service-status-ok,.label-warn,.label-info,.label-error,.label-client-error,.label-server-error{display:inline-block;padding:2px 10px;font-size:11px;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap}.label-debug,.label-log{background-color:#bbbfc0}.label-success,.service-status-ok{background-color:#00b056}.label-warn{background-color:#f6a201}.label-info{background-color:#16a0ba}.label-error,.label-client-error,.label-server-error{background-color:#932937}.alert,.slug-list .no-results{background-color:#f6a201;border:1px solid #f6a201}.alert .close,.slug-list .no-results .close,.alert .demo-block .demo-block-remove,.demo-block .alert .demo-block-remove,.slug-list .no-results .demo-block .demo-block-remove,.demo-block .slug-list .no-results .demo-block-remove{color:#fff;opacity:1}.alert a,.slug-list .no-results a,.alert button,.slug-list .no-results button{color:#c38101}.alert a:hover,.slug-list .no-results a:hover,.alert a:focus,.slug-list .no-results a:focus,.alert button:hover,.slug-list .no-results button:hover,.alert button:focus,.slug-list .no-results button:focus{color:#905f01}.alert,.slug-list .no-results,.alert h4,.slug-list .no-results h4{color:#fff}.alert-success{background-color:#00b056;border-color:#00b056;color:#fff}.alert-success h4{color:#fff}.alert-danger,.alert-error{background-color:#932937;border-color:#932937;color:#fff}.alert-danger h4,.alert-error h4{color:#fff}.alert-info{background-color:#16a0ba;border-color:#16a0ba;color:#fff}.alert-info h4{color:#fff}.slug-grid{width:960px;margin:0 auto;list-style:none}.slug-grid li{width:220px;height:220px;float:left;margin:0 0 20px 20px;transition-property:width;transition-duration:0.8s;transition-timing-function:ease}.slug-grid li.opened{width:940px}.slug-grid li.opened .slug-grid-item{border-color:#2fa4e7}.slug-grid li.opened .caption{width:690px;height:180px;padding:9px;-webkit-transition:all 1ms linear 0.8s;-moz-transition:all 1ms linear 0.8s;-o-transition:all 1ms linear 0.8s;transition:all 1ms linear 0.8s}.slug-grid-item{padding:4px;line-height:20px;border:1px solid #999;background:#fff;cursor:pointer;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-moz-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.slug-grid-item:hover{border-color:#2fa4e7;-webkit-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;-moz-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;box-shadow:rgba(0,105,214,0.25) 0 1px 4px}.slug-grid-item h3{margin:0}.slug-grid-item img{width:210px;float:left;background:#ccc}.exists .slug-grid-item img{background:#0670d6}.slug-grid-item .caption{width:0;height:0;padding:0;overflow:hidden;float:left;vertical-align:middle;transition-property:width, height, padding;transition-duration:1ms;transition-timing-function:linear;transition-delay:-1s}.exists .create-demo{display:none}.go-to-demo{display:none}.exists .go-to-demo{display:inline-block}.welcome .description{text-align:center;margin:20px 0}.welcome .description .icon-logo{font-size:135px;background:#bfbfbf;padding:35px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-bottom:20px;display:inline-block}.welcome .action{font-size:40px;float:right}.services .thumbnails li{height:365px}.services .new .thumbnail{display:block;text-align:center;line-height:20;font-size:17.5px;border-color:#1bb0ae}.services .new .thumbnail:hover{text-decoration:none;background:#1bb0ae;color:#fff}.services .thumbnail{height:100%}.services .controls{padding:10px 0;border-top:1px solid #f5f5f5}.services .plot{height:auto}.service-select{margin:0;height:auto;border:none;-webkit-appearance:none;width:auto;max-width:24%}.service-select:focus{border:none}.service-select option{font-size:14px}pre.endpoint{display:inline-block}.new-endpoint .copy-to-clipboard{padding:0 0 4px 4px}.service-nav{margin-left:25.64103%}.demo-services{list-style:none}.demo-services .demo-service-logo{width:85px}@media (min-width: 1200px){.services .thumbnails li{min-width:23%;margin-left:2%}}.main-menu{margin-bottom:0}.main-menu .brand{padding:4px 20px 3px;margin-left:0;width:26%}.main-menu-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:none}.services-menu{position:relative}.dropdown-menu.main-menu-dropdown{background:#2e2c31;color:#fff}.dropdown-menu.main-menu-dropdown a,.dropdown-menu.main-menu-dropdown button{color:#fff}.dropdown-menu.main-menu-dropdown a:hover,.dropdown-menu.main-menu-dropdown a:focus,.dropdown-menu.main-menu-dropdown button:hover,.dropdown-menu.main-menu-dropdown button:focus{background:transparent;color:#db3c4e}.dropdown-menu.main-menu-dropdown:after,.dropdown-menu.main-menu-dropdown:before{display:none !important}.subnav .subnav-inner{background:#2e2c31}.subnav .subnav-inner{height:auto;min-height:30px}.subnav .subnav-nav{margin:0 0 0 25.5%;padding:0}.subnav .subnav-nav li{display:inline-block}.subnav .subnav-nav .subnav-action{color:#fff;display:inline-block;padding:5px 15px}.subnav .subnav-nav .subnav-action:hover,.subnav .subnav-nav .subnav-action:focus{color:#db3c4e;text-decoration:none;background-color:transparent}.subnav .subnav-nav .subnav-action:active,.subnav .subnav-nav .subnav-action.active,.subnav .subnav-nav .slug-item.highlighted .subnav-action.btn[type=highlight],.slug-item.highlighted .subnav .subnav-nav .subnav-action.btn[type=highlight],.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].demo-button,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].demo-button,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].create-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].create-demo,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].go-to-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].go-to-demo,.subnav .subnav-nav .slug-item.highlighted .welcome .subnav-action[type=highlight].action,.slug-item.highlighted .welcome .subnav .subnav-nav .subnav-action[type=highlight].action,.subnav .subnav-nav .welcome .slug-item.highlighted .subnav-action[type=highlight].action,.welcome .slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].action{color:#db3c4e}#service-list a,.services-menu a{cursor:pointer}.trace-response dt,.trace-request dt{width:130px;margin-bottom:10px}.trace-response dt button,.trace-request dt button{padding-left:0}.trace-response dd,.trace-request dd{margin-bottom:10px;margin-left:140px}.trace-response dd .btn-link,.trace-response dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-response dd .copy-to-clipboard,.trace-response dd .demo-services .demo-service-action,.demo-services .trace-response dd .demo-service-action,.trace-response dd .service-demo button,.service-demo .trace-response dd button,.trace-response dd .demo-block .demo-block-remove,.demo-block .trace-response dd .demo-block-remove,.trace-request dd .btn-link,.trace-request dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-request dd .copy-to-clipboard,.trace-request dd .demo-services .demo-service-action,.demo-services .trace-request dd .demo-service-action,.trace-request dd .service-demo button,.service-demo .trace-request dd button,.trace-request dd .demo-block .demo-block-remove,.demo-block .trace-request dd .demo-block-remove{padding:0;border:0;margin-bottom:5px}.trace-response table,.trace-request table{padding:5px;border:1px solid #f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.trace-response table tr,.trace-request table tr{border-bottom:1px solid #f5f5f5}.trace-response table td,.trace-response table th,.trace-request table td,.trace-request table th{padding:5px}.trace-pipeline{counter-reset:li;list-style:none}.trace-pipeline li{position:relative;counter-increment:li;border:2px dashed #2fa4e7;padding:10px;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;margin:0 0 20px 0}.trace-pipeline li .counter::before{content:counter(li)}.trace-pipeline li .counter{position:absolute;left:-42px;top:50%;margin-top:-1.3em;height:2em;width:2em;line-height:2em;text-align:center;font-weight:bold;border-radius:2em;transition:all .3s ease-out;background:#f5f5f5;color:#555;border:3px solid #2fa4e7}.trace-pipeline li .counter:hover{background:#eee}.trace-pipeline li .counter:hover:before{transform:rotate(360deg)}.trace-pipeline li .trace-request{padding-bottom:20px;border-bottom:1px solid #f5f5f5}.middlewares .stack{padding:2px 10px}.middlewares .result{width:30%}.middlewares .result h3{line-height:20px;margin:0}.middlewares .result .author,.middlewares .result .version{font-size:11.9px;color:#555}.middlewares .result .badge{margin-right:5px}.middlewares .result .thumbnail{height:215px}.middlewares .result.new .thumbnail{display:block;height:100%;text-align:center;line-height:10;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .result.new .thumbnail:hover{text-decoration:none}.middlewares .thumbnails li{width:30%;height:260px;margin-left:2%}.middlewares .thumbnails li h3{line-height:23px;margin:0}.middlewares .thumbnails li .thumbnail{height:100%}.middlewares .thumbnails li .thumbnail .author,.middlewares .thumbnails li .thumbnail .version{font-size:11.9px;color:#555}.middlewares .thumbnails li .thumbnail .caption{position:relative;height:100%}.middlewares .thumbnails li .thumbnail .controls{position:absolute;bottom:30px;width:95%;padding:20px 0 0 0;border-top:1px solid #f5f5f5}.middlewares .thumbnails li.new .thumbnail{display:block;text-align:center;line-height:16;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .thumbnails li.new .thumbnail:hover{text-decoration:none}.middlewares .github{background-color:#f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;padding:2px 10px}.middlewares .github .result{background-color:#fff}.middlewares .config textarea{display:block;width:430px;height:70px;margin:20px 0 0 0}.middlewares .CodeMirror{border:3px dashed #f5f5f5;padding:11px 19px}.middleware-list .middleware{background-color:#fff;border:1px solid #2e2c31;color:#2e2c31;display:block;position:relative;padding:2px 10px;margin:10px 0;min-height:65px;overflow:hidden;cursor:move;margin-bottom:10px}.pipeline-container{margin:0 0 20px 0}.pipeline-container i{vertical-align:initial}.pipeline-box{float:left}.pipeline-wrap{border:1px solid #2e2c31;padding:40px 0;margin:20px 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.pipeline-wrap .pipeline{-webkit-box-flex:2;-moz-box-flex:2;-ms-flex:2;-webkit-flex:2;flex:2;margin:0 10px;position:relative}.pipeline-wrap .pipeline .middleware-list{min-height:100px;margin-bottom:10px}.pipeline-wrap .pipeline.changed{border-color:#f6a201;background:#fffcf7}.arrow{width:80px;align-self:center;text-align:center}.arrow [class*='arrow-']:before{font-family:FontAwesome;font-size:50px;font-style:normal;color:#bbbfc0}.arrow .arrow-up:before{content:"\f062"}.arrow .arrow-down:before{content:"\f063"}.service,.app{color:#fff;font-weight:normal;margin:0;text-align:center;padding:20px}.app{background:#2e2c31}.service{background:#db3c4e}.middleware-list{margin:0 20px;list-style:none;margin:0}.middleware-list .middleware.on{border-color:#2e2c31;color:#2e2c31}.middleware-list .middleware.on a,.middleware-list .middleware.on button{color:#2e2c31}.middleware-list .middleware.off{border-color:#bbbfc0;color:#bbbfc0}.middleware-list .middleware.off button{color:#bbbfc0}.middleware-list .middleware .header{position:relative}.middleware-list .middleware .controls{margin:0;position:absolute;right:0;top:0}.middleware-list .middleware .controls li{display:inline-block}.middleware-list .middleware .controls button{padding:0}.middleware-list .middleware .controls button:hover{text-decoration:none}.middleware-pipeline.ui-sortable-placeholder,.drag-middleware{text-align:center;border:1px dashed #bbbfc0;color:#bbbfc0;font-size:17.5px}.new-middleware{width:100%;min-height:65px}.middleware-pipeline.ui-sortable-placeholder{visibility:visible !important}.middleware-pipeline.ui-sortable-placeholder:before{content:"Drop Here";line-height:4;border:none}.drag-middleware{position:absolute;top:10%;left:0%;width:100%;line-height:4}.middleware-stack{float:right;border:1px solid #bbbfc0;padding:11px 19px}.middleware-stack .middleware-list{min-height:400px;position:relative}.middleware-stack .middleware{border:1px dashed #bbbfc0}.middleware-stack .middleware:before{font-family:FontAwesome;content:"\f047";float:right}.middleware-stack .middleware-controls{min-width:235px}.analytics .thumbnails li{margin-left:0;padding:0;width:100%}.analytics .thumbnails .new{border-width:3px;border-style:dashed}.analytics .thumbnails .new .caption{text-align:center;font-size:17.5px}.slug-list{list-style:none;margin:20px 0}.slug-list pre{margin:0}.slug-item{border:1px solid #2e2c31;margin-bottom:0.25em;position:relative}.slug-item.highlighted{border-color:#1bb0ae}.slug-item.highlighted .slug-item-title,.slug-item.highlighted .slug-item-title a,.slug-item.highlighted .action-button{color:#1bb0ae}.slug-item.opened{border-style:dashed}.slug-item-content .wrap{padding:20px}.slug-item-heading{padding:0.5em 4em 0.5em 2em;position:relative}.slug-item-heading .truncated .rest{position:absolute;background-color:white;white-space:nowrap;padding:0.5em 0;margin-top:-0.5em}.slug-item-heading .truncated:hover .rest{display:inline-block}.slug-item-heading .service-code{opacity:0.8;vertical-align:middle}.slug-item:hover .slug-item-heading .service-code{opacity:1}.slug-item-heading .slug-item-title{margin:0}.slug-item-heading .slug-item-title a{color:#5f5f5f}.slug-item-heading .slug-item-check{position:absolute;left:0.5em;top:0.5em}.slug-item-dropdown{background:#2e2c31;border:none;color:#fff}.slug-item-dropdown>li>a,.slug-item-dropdown>li>button{color:#fff}.slug-item-actions{position:absolute;right:1em;top:1em}.slug-item-actions .dropdown-menu{left:inherit;right:0}.action-button{background:none;border:none;font-size:17.5px;padding:0}.slug-item-toggle{width:100%;cursor:pointer}.slug-item-details .detail{margin-right:1em;font-size:10.5px}.notification .detail.log-level{display:inline-block;min-width:3em}.notification .detail.channel{display:inline-block;min-width:4em}.search-box{margin:0 0 20px 0}.search-box .search-input{width:98%;padding-left:1%;padding-right:1%;margin:0 0 20px 0}.search-box .search-tokens{float:left;margin-right:5px}.search-box .search-tokens ul{margin:0}.search-box .search-tokens .token-active{border:1px solid #bbbfc0;padding:0px 6px;margin:0 0 20px 0}.search-box .controls{float:right;text-align:right}.search-box .controls .switch{width:150px}.search-tokens{margin:0}.search-tokens .show-mode,.search-tokens .edit-mode{display:inline-block;vertical-align:middle}.search-tokens a{text-decoration:none}.search-tokens a,.search-tokens a .icon{vertical-align:middle}.token{display:inline-block;padding:5px;margin:2px;border:1px solid #bbbfc0;color:#bbbfc0}.token form{margin:0}.token a,.token button{padding:0;line-height:1;color:#bbbfc0}.token input{min-width:70px;border:none;box-shadow:none;padding:0}.token.new{border-color:#1bb0ae;color:#1bb0ae}.token.new input{font-weight:bold;width:70px}.token.new input:not(:invalid){color:#1bb0ae}.token.new input:focus{width:auto}.token.new a,.token.new button{color:#1bb0ae}.token.active,.slug-item.highlighted .token.btn[type=highlight],.slug-item.highlighted .token[type=highlight].demo-button,.slug-item.highlighted .token[type=highlight].create-demo,.slug-item.highlighted .token[type=highlight].go-to-demo,.slug-item.highlighted .welcome .token[type=highlight].action,.welcome .slug-item.highlighted .token[type=highlight].action{border-color:#2e2c31;color:#2e2c31}.token.active a,.slug-item.highlighted .token.btn[type=highlight] a,.slug-item.highlighted .token[type=highlight].demo-button a,.slug-item.highlighted .token[type=highlight].create-demo a,.slug-item.highlighted .token[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .token[type=highlight].action a,.welcome .slug-item.highlighted .token[type=highlight].action a{color:#2e2c31}.token.editing{border-style:dashed}.token-suggestions .token{border-color:#1bb0ae;color:#1bb0ae}.token-suggestions .token a,.token-suggestions .token button{color:#1bb0ae}.token-suggestions .token .toggle{display:none}.token-suggestions .token .show-mode{cursor:pointer}.side-menu{margin:0 0 20px 0;list-style:none}.side-menu a{color:#2e2c31}.side-menu a:hover,.side-menu a:focus{text-decoration:none}.side-menu li:not(.header){margin:0 0 5px 0;position:relative}.side-menu li:not(.header)>a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:8px 12px;margin:0;padding-right:0}.side-menu .header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.side-menu .header:hover,.side-menu .header:focus{background:none}.side-menu+.header{margin-top:9px}.side-menu li.divider{padding:0}.side-menu-filter{border:1px solid #2e2c31;color:#2e2c31}.side-menu-filter:hover,.side-menu-filter:focus{background-color:#db3c4e;border-color:#db3c4e;color:#fff}.side-menu-filter:hover a,.side-menu-filter:focus a{color:#fff}.side-menu-filter.active,.slug-item.highlighted .side-menu-filter.btn[type=highlight],.slug-item.highlighted .side-menu-filter[type=highlight].demo-button,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action,.side-menu-filter.active:hover,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover{color:#fff;background-color:#2e2c31}.side-menu-filter.active a,.slug-item.highlighted .side-menu-filter.btn[type=highlight] a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action a,.side-menu-filter.active:hover a,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover a{color:#fff;background-color:transparent}.side-menu-filter .edit-form{display:none;margin:0;padding:8px 12px}.side-menu-filter .edit-form input{margin:0;padding:0 2px;width:75%}.side-menu-filter .controls{display:none;position:absolute;top:7px;right:12px}.side-menu-filter .controls a{display:inline-block;width:20px;vertical-align:middle;text-align:center}.side-menu-filter.editable:hover .select-mode,.side-menu-filter.editable:focus .select-mode{display:block}.side-menu-filter.editable:hover:not(.active) .active-button,.side-menu-filter.editable:focus:not(.active) .active-button{display:none}.side-menu-filter.active .select-mode,.slug-item.highlighted .side-menu-filter.btn[type=highlight] .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo .select-mode,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action .select-mode,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action .select-mode{display:block}.side-menu-filter.editable.editing .edit-mode,.side-menu-filter.editable.editing .edit-form,.side-menu-filter.editable.editing:hover .edit-mode,.side-menu-filter.editable.editing:hover .edit-form{display:block}.side-menu-filter.editable.editing .select-mode,.side-menu-filter.editable.editing:hover .select-mode{display:none}.side-menu-filter .slug-confirm-box{background:#f6a201;position:absolute;right:0;top:0;width:80px}.side-menu-filter .slug-confirmation{color:#932937}.charts{list-style:none;margin:0}.charts .expanded{width:100%;margin-left:0}.charts .expanded .plot{min-height:400px}.charts .normal{width:49%;display:inline-block}.charts .normal:last-child{margin-left:2%}.charts .normal .chart.new a{line-height:15}.charts .normal .chart .plot{height:225px}.chart{border:1px solid #bbbfc0;padding:1em;margin-bottom:20px}.chart .caption{position:relative}.chart .caption h4{text-align:center}.chart .caption .edit-chart{display:block;position:absolute;right:0;bottom:0}.chart.new{border-width:2px;border-style:dashed;box-shadow:none;display:block;text-align:center;line-height:15;font-size:17.5px;border-width:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;cursor:pointer}.chart.new:hover{text-decoration:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.chart-edit{width:800px;left:40%}.chart-edit .modal-header h3,.chart-edit .modal-header a,.chart-edit .modal-header input{display:inline-block}.chart-edit ul{margin-left:0}.chart-edit fieldset{border-bottom:1px solid #f5f5f5;padding-top:20px}.chart-edit fieldset h4{margin-top:5px}.graph{overflow:hidden}.rickshaw_graph .detail .super-label{font-family:Arial, sans-serif;border-radius:3px;padding:6px;border:1px solid #e0e0e0;font-size:12px;position:absolute;white-space:nowrap;background-color:white;background-color:rgba(255,255,255,0.75)}.rickshaw_graph .detail .super-label.left{left:10px}.rickshaw_graph .detail .super-label.right{right:10px}.rickshaw_graph .detail .title,.rickshaw_graph .detail .value{font-weight:bold}.rickshaw_graph .detail .swatch{width:10px;height:10px;border:1px solid rgba(0,0,0,0.2);display:inline-block;margin-right:3px;border-radius:2px}.service-demo ul{list-style:none;margin:0}.service-demo ul li{margin:0 0 5px 0}.service-demo button{font-size:21px}.service-demo button:hover{text-decoration:none}.service-demo button:disabled{color:#555}.service-demo button:disabled:hover{color:#555}.service-demo .call{margin-left:45px;padding:0 0 5px 0}.service-demo .loading{font-size:15.4px}.service-demo .status-code{margin-left:-45px;width:40px;vertical-align:middle;visibility:hidden}.service-demo .visible{visibility:visible}.service-demo .demo-response{color:#555}.demo-block{border:1px solid #16a0ba;padding:11px 19px;margin-bottom:20px;position:relative}.demo-block .demo-block-remove{color:#16a0ba}.demo-block h4{color:#16a0ba;border-bottom:1px solid #16a0ba;padding-bottom:10px;padding-left:20px;margin-top:0;margin-left:-20px;margin-right:-20px}.demo-block i{font-size:17.5px}.demo-block ul{list-style:none}#setup-modal{position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff}#setup-form{padding:60px}.dashboard-box{padding:1em;border:1px solid #bbbfc0;display:block;margin-bottom:20px}.dashboard-box:hover,.dashboard-box:focus{text-decoration:none}.dashboard-box ul,.dashboard-box ol{list-style:none;margin:0}.dashboard-box ul li,.dashboard-box ol li{padding:2px 10px;padding-left:0}.dashboard-box ul li:nth-child(odd),.dashboard-box ol li:nth-child(odd){background:#f5f5f5}.dashboard-box ul .cell,.dashboard-box ol .cell{padding:2px 10px}.dashboard-box a:hover,.dashboard-box a:focus{text-decoration:none}.dashboard-box{height:22em}.dashboard-box .no-records{margin-top:80px;margin-bottom:80px}.dashboard-box .no-records,.dashboard-box .new-service{display:block;text-align:center;vertical-align:middle}.dashboard-box-title{margin:0 -14px 7px -14px;padding:0 14px 7px 14px;border-bottom:1px solid #bbbfc0}.small-dashboard-boxes{text-align:center}.small-dashboard-boxes .number,.small-dashboard-boxes .box-label{display:block;line-height:1}.small-dashboard-boxes .number{font-size:4em;font-weight:bold;color:#2e2c31}.small-dashboard-boxes .number.error{color:#932937}.small-dashboard-boxes .number.ok{color:#00b056}.selected-dashboard{height:250px}.dashboard-box-mini{height:5em}.dashboard-box-small{height:16.5em}.notification-link,.trace-link{color:#2e2c31}#service-middlewares h3{line-height:2em}#service-middlewares label{font:inherit;display:inline-block}#service-middlewares input[type='checkbox']{margin-right:1em}.drag-handle{top:0;bottom:0;left:0;width:1em;position:absolute;cursor:move;background:#696969}.service-middleware{position:relative;list-style:none;border:1px solid black;margin-bottom:1em;padding-left:2em;padding-right:0;background-color:rgba(255,255,255,0.8)}.service-middleware.disabled,.service-middleware.btn.loading,.service-middleware.loading.demo-button,.service-middleware.loading.create-demo,.service-middleware.loading.go-to-demo,.welcome .service-middleware.loading.action{background-color:rgba(105,105,105,0.4);opacity:0.9}.CodeMirror-autoresize .CodeMirror{border:1px solid #eee;height:auto}.CodeMirror-autoresize .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.animated.leave{position:absolute}.endpoint-example{position:relative}.endpoint-example .copy-to-clipboard{position:absolute;right:0;top:0}a.destroy{float:right;padding-top:9.5px;padding-right:9.5px}.tab-content{overflow:visible}.middleware-spec-list{list-style-type:none}.middleware-spec{height:100px}.edit-middleware label input,.edit-middleware label textarea{display:block}html{overflow-y:scroll}a.help:hover{text-decoration:none;cursor:pointer}a.help+div{font-size:14px}.icon-help{font-size:17px}.icon-help:after{content:"\f059"}.filter-list .filter.selected a{background-color:blue}.truncated .rest{display:none}.truncated:hover .rest{display:inline}.truncated:hover .dots{display:none}.action[type=delete].confirm-delete .icon-trash{margin-right:.5em;vertical-align:text-top}.tabbable .nav-tabs a{cursor:pointer;border-radius:0}.tabbable .nav-tabs .invalid a{background-color:red}.analytics-list{list-style:none}.analytics-list li{margin-bottom:5px}.analytics-list li input,.analytics-list li select{margin-bottom:0}.collapse{min-height:0 !important}.side-menu li a{cursor:pointer}.tooltip{z-index:10000}/*!
+ */@-ms-viewport{width:device-width}.hidden,.token-suggestions .token.disabled,.token-suggestions .token.btn.loading,.token-suggestions .token.loading.demo-button,.token-suggestions .token.loading.create-demo,.token-suggestions .token.loading.go-to-demo,.token-suggestions .welcome .token.loading.action,.welcome .token-suggestions .token.loading.action{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media (min-width: 768px) and (max-width: 979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media (max-width: 767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}.clearfix,.wizard,.slug-grid,.slug-grid-item,.welcome,.services .controls,.middlewares .thumbnails li .thumbnail .controls{*zoom:1}.clearfix:before,.wizard:before,.slug-grid:before,.slug-grid-item:before,.welcome:before,.services .controls:before,.middlewares .thumbnails li .thumbnail .controls:before,.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{display:table;content:"";line-height:0}.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span1{width:70px}.span2,.search-box .controls{width:170px}.span3{width:270px}.span4,.middleware-stack{width:370px}.span5{width:470px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:570px}.span7{width:670px}.span8,.pipeline-box{width:770px}.span9{width:870px}.span10,.search-box .search-tokens{width:970px}.span11{width:1070px}.span12{width:1170px}.offset1{margin-left:130px}.offset2{margin-left:230px}.offset3{margin-left:330px}.offset4{margin-left:430px}.offset5{margin-left:530px}.offset6{margin-left:630px}.offset7{margin-left:730px}.offset8{margin-left:830px}.offset9{margin-left:930px}.offset10{margin-left:1030px}.offset11{margin-left:1130px}.offset12{margin-left:1230px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.5641%;*margin-left:2.51091%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.5641%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.98291%;*width:5.92971%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.52991%;*width:14.47672%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:23.07692%;*width:23.02373%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.62393%;*width:31.57074%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.17094%;*width:40.11775%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.71795%;*width:48.66476%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.26496%;*width:57.21177%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.81197%;*width:65.75877%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.35897%;*width:74.30578%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.90598%;*width:82.85279%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.45299%;*width:91.3998%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.11111%;*margin-left:11.00473%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.54701%;*margin-left:8.44063%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.65812%;*margin-left:19.55174%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.09402%;*margin-left:16.98763%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.20513%;*margin-left:28.09875%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.64103%;*margin-left:25.53464%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:36.75214%;*margin-left:36.64575%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.18803%;*margin-left:34.08165%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.29915%;*margin-left:45.19276%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.73504%;*margin-left:42.62866%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:53.84615%;*margin-left:53.73977%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.28205%;*margin-left:51.17567%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.39316%;*margin-left:62.28678%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.82906%;*margin-left:59.72268%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:70.94017%;*margin-left:70.83379%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.37607%;*margin-left:68.26969%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.48718%;*margin-left:79.3808%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:76.92308%;*margin-left:76.81669%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.03419%;*margin-left:87.92781%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.47009%;*margin-left:85.3637%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.5812%;*margin-left:96.47481%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.01709%;*margin-left:93.91071%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.12821%;*margin-left:105.02182%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.5641%;*margin-left:102.45772%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:156px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:356px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:556px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:756px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:956px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails,.control-box .thumbnails,.welcome .description .thumbnails,.pipeline-container .thumbnails,.search-box .thumbnails{margin-left:0}}@media (min-width: 768px) and (max-width: 979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span1{width:42px}.span2,.search-box .controls{width:104px}.span3{width:166px}.span4,.middleware-stack{width:228px}.span5{width:290px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:352px}.span7{width:414px}.span8,.pipeline-box{width:476px}.span9{width:538px}.span10,.search-box .search-tokens{width:600px}.span11{width:662px}.span12{width:724px}.offset1{margin-left:82px}.offset2{margin-left:144px}.offset3{margin-left:206px}.offset4{margin-left:268px}.offset5{margin-left:330px}.offset6{margin-left:392px}.offset7{margin-left:454px}.offset8{margin-left:516px}.offset9{margin-left:578px}.offset10{margin-left:640px}.offset11{margin-left:702px}.offset12{margin-left:764px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.76243%;*margin-left:2.70924%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.76243%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.8011%;*width:5.74791%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.36464%;*width:14.31145%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:22.92818%;*width:22.87499%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.49171%;*width:31.43852%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.05525%;*width:40.00206%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.61878%;*width:48.56559%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.18232%;*width:57.12913%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.74586%;*width:65.69266%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.30939%;*width:74.2562%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.87293%;*width:82.81974%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.43646%;*width:91.38327%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.32597%;*margin-left:11.21958%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.56354%;*margin-left:8.45715%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.8895%;*margin-left:19.78312%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.12707%;*margin-left:17.02069%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.45304%;*margin-left:28.34666%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.69061%;*margin-left:25.58422%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:37.01657%;*margin-left:36.91019%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.25414%;*margin-left:34.14776%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.58011%;*margin-left:45.47373%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.81768%;*margin-left:42.7113%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:54.14365%;*margin-left:54.03726%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.38122%;*margin-left:51.27483%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.70718%;*margin-left:62.6008%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.94475%;*margin-left:59.83837%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:71.27072%;*margin-left:71.16434%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.50829%;*margin-left:68.4019%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.83425%;*margin-left:79.72787%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:77.07182%;*margin-left:76.96544%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.39779%;*margin-left:88.29141%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.63536%;*margin-left:85.52898%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.96133%;*margin-left:96.85494%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.1989%;*margin-left:94.09251%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.52486%;*margin-left:105.41848%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.76243%;*margin-left:102.65605%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:90px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:214px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:338px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:462px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:586px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}}@media (max-width: 767px){body{padding-left:20px;padding-right:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px}.container-fluid{padding:0}.dl-horizontal dt,.trace-response dt,.trace-request dt{float:none;clear:none;width:auto;text-align:left}.dl-horizontal dd,.trace-response dd,.trace-request dd{margin-left:0}.container{width:auto}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child,.control-box [class*="offset"]:first-child,.welcome .description [class*="offset"]:first-child,.pipeline-container [class*="offset"]:first-child,.search-box [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media (max-width: 480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0)}.page-header h1 small,.page-header .service-select small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-left:10px;padding-right:10px}.media .pull-left,.demo-services .demo-service .pull-left,.media .pull-right,.demo-services .demo-service .pull-right,.media .demo-button,.demo-services .demo-service .demo-button,.media .create-demo,.demo-services .demo-service .create-demo,.media .go-to-demo,.demo-services .demo-service .go-to-demo{float:none;display:block;margin-bottom:10px}.media-object,.demo-services .demo-service-logo,.demo-services .demo-service-body{margin-right:0;margin-left:0}.modal{top:10px;left:10px;right:10px}.modal-header .close,.modal-header .demo-block .demo-block-remove,.demo-block .modal-header .demo-block-remove{padding:10px;margin:-10px}.carousel-caption{position:static}}@media (max-width: 979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-top .main-menu-inner,.navbar-fixed-bottom .navbar-inner,.navbar-fixed-bottom .main-menu-inner{padding:5px}.navbar .container,.main-menu .container{width:auto;padding:0}.navbar .brand,.main-menu .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav,.nav-collapse .service-nav{float:none;margin:0 0 10px}.nav-collapse .nav>li,.nav-collapse .service-nav>li{float:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical,.nav-collapse .service-nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header,.nav-collapse .service-nav .nav-header{color:#fff;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn,.nav-collapse .demo-button,.nav-collapse .create-demo,.nav-collapse .go-to-demo,.nav-collapse .welcome .action,.welcome .nav-collapse .action{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .service-nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .service-nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#db3c4e}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .service-nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#fff}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .service-nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .service-nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#2e2c31}.nav-collapse.in .btn-group{margin-top:5px;padding:0}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .service-nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after,.nav-collapse .service-nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #db3c4e;border-bottom:1px solid #db3c4e;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#2e2c31;border-bottom-color:#2e2c31}.navbar .nav-collapse .nav.pull-right,.main-menu .nav-collapse .nav.pull-right,.navbar .nav-collapse .nav.demo-button,.main-menu .nav-collapse .nav.demo-button,.navbar .nav-collapse .nav.create-demo,.main-menu .nav-collapse .nav.create-demo,.navbar .nav-collapse .create-demo.service-nav,.main-menu .nav-collapse .create-demo.service-nav,.navbar .nav-collapse .nav.go-to-demo,.main-menu .nav-collapse .nav.go-to-demo,.navbar .nav-collapse .go-to-demo.service-nav,.main-menu .nav-collapse .go-to-demo.service-nav,.navbar .nav-collapse .demo-button.service-nav,.main-menu .nav-collapse .demo-button.service-nav,.navbar .nav-collapse .pull-right.service-nav,.main-menu .nav-collapse .pull-right.service-nav{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0}.navbar .btn-navbar,.main-menu .btn-navbar{display:block}.navbar-static .navbar-inner,.navbar-static .main-menu-inner{padding-left:10px;padding-right:10px}}@media (min-width: 980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.switch .slide-button{display:none}.switch{display:inline-block;cursor:pointer;vertical-align:middle;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center;position:relative;display:inline-block;padding-bottom:4px;padding-top:4px;font-size:14px;line-height:20px;vertical-align:middle}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch .slide-button{display:block;position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%;-webkit-transition:left 0.5s;-moz-transition:left 0.5s;-o-transition:left 0.5s;transition:left 0.5s}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.switch input:focus+label{outline:1px dotted #888}.switch{display:inline-block;cursor:pointer;border:1px solid;position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #bbbfc0;border-bottom-color:#a1a6a7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-image:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch:hover{background:auto}.switch label{text-shadow:none}.switch input:checked+label{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.switch .slide-button{border-width:1px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1bb0ae;background-image:-moz-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#1bb0ae), to(#1bb0ae));background-image:-webkit-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-o-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:linear-gradient(to bottom, #1bb0ae, #1bb0ae);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF1BB0AE', endColorstr='#FF1BB0AE', GradientType=0);border-color:#1bb0ae #1bb0ae #116e6c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#1bb0ae;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.switch .slide-button:hover,.switch .slide-button:focus,.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action,.switch .slide-button.disabled,.switch .slide-button.btn.loading,.switch .slide-button.loading.demo-button,.switch .slide-button.loading.create-demo,.switch .slide-button.loading.go-to-demo,.switch .welcome .slide-button.loading.action,.welcome .switch .slide-button.loading.action,.switch .slide-button[disabled]{color:#fff;background-color:#1bb0ae;*background-color:#189a98}.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action{background-color:#148482 \9}.switch .slide-button:hover,.switch .slide-button:focus{color:#333;text-decoration:none;background-position:0 -15px}html,body{height:100%}h1,.service-select{font-size:22px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}a:hover,a:focus{text-decoration:none}*{box-shadow:none !important;text-shadow:none !important;border-radius:0 !important}#wrap{min-height:100%;padding-bottom:20px;height:auto !important;height:100%;margin:0 auto -60px}.container{max-width:1200px;margin:0 auto}#header{margin:0}#content{max-width:1200px;margin:0 auto;padding-bottom:50px}#footer{color:#fff;padding:20px 0 10px 0;background-color:#2e2c31;text-align:center;font-size:11.9px}#footer .container-fluid{max-width:1200px;margin:0 auto}#footer .credit{margin:15px 0}.slug-confirm .slug-confirm-box{background:#f6a201;color:#fff;font-weight:bold;display:none;padding:2px 10px;text-align:center}.slug-confirm .slug-confirm-box a{color:#fff}.slug-confirm .slug-confirm-box .slug-confirmation{color:#932937;margin-right:2px}.slug-confirm.slug-confirm-active .slug-confirm-original,.slug-confirm.slug-confirm-active i{display:none}.slug-confirm.slug-confirm-active .slug-confirm-box{display:block}.help{display:inline-block;vertical-align:middle;margin:0 0 0 5px}.help-link{float:right;padding-left:10px}.help-link:hover{text-decoration:none}.help-link i{font-size:100px;opacity:0.1}.modal>form{margin:0}.control-box input[type=checkbox]{margin:0 10px}.slug-alert{position:relative;z-index:9000;height:0}.slug-alert.in{height:auto}.wizard{border:1px solid #fff;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#bbbfc0}.wizard ul{list-style:none outside none;padding:0;margin:0}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#999;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #f5f5f5;border-right:0;display:block;position:absolute;right:-14px;top:0}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.complete{background:#f3f4f5;color:#00974a}.wizard ul li.complete:hover{background:#e7eff8;cursor:pointer}.wizard ul li.complete:hover .chevron:before{border-left:14px solid #e7eff8}.wizard ul li.complete .chevron:before{border-left:14px solid #f3f4f5}.wizard ul li.active,.wizard ul .slug-item.highlighted li.btn[type=highlight],.slug-item.highlighted .wizard ul li.btn[type=highlight],.wizard ul .slug-item.highlighted li[type=highlight].demo-button,.slug-item.highlighted .wizard ul li[type=highlight].demo-button,.wizard ul .slug-item.highlighted li[type=highlight].create-demo,.slug-item.highlighted .wizard ul li[type=highlight].create-demo,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action,.wizard ul li.current{background:#f1f6fc;color:#11798c}.wizard ul li.active .chevron:before,.wizard ul .slug-item.highlighted li.btn[type=highlight] .chevron:before,.slug-item.highlighted .wizard ul li.btn[type=highlight] .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].demo-button .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].demo-button .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].create-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].create-demo .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo .chevron:before,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action .chevron:before,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action .chevron:before,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action .chevron:before,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action .chevron:before,.wizard ul li.current .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:nth-child(1){border-radius:4px 0 0 4px;padding-left:20px;z-index:10}.wizard ul li:nth-child(2){z-index:9}.wizard ul li:nth-child(3){z-index:8}.wizard ul li:nth-child(4){z-index:7}.wizard ul li:nth-child(5){z-index:6}.wizard ul li:nth-child(6){z-index:5}.wizard ul li:nth-child(7){z-index:4}.wizard ul li:nth-child(8){z-index:3}.wizard ul li:nth-child(9){z-index:2}.wizard ul li:nth-child(10){z-index:1}.wizard .actions{line-height:44px;float:right;padding-right:15px;vertical-align:middle}.wizard .actions a{line-height:45px;font-size:12px;margin-right:8px}.wizard .actions .btn-prev i{margin-right:5px}.wizard .actions .btn-next i{margin-left:5px}.step-content .step-pane{display:none}.step-content .active,.step-content .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action{display:block}.step-content .active .btn-group .active,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .active,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .active,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .active,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .active,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .active,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .active,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .active,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .active,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .active,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .active,.step-content .active .btn-group .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .active .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .btn[type=highlight],.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .btn[type=highlight],.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .active .btn-group .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content .active .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].demo-button,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].demo-button,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .active .btn-group .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].create-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].create-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .active .btn-group .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].go-to-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .active .btn-group .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .active .btn-group [type=highlight].action,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome .btn[type=highlight] .btn-group [type=highlight].action,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].demo-button .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].create-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].go-to-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].action,.step-content .active .btn-group .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content .active .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].action{display:inline-block}.popover{max-width:100%;min-width:450px}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.btn.loading i,.loading.demo-button i,.loading.create-demo i,.loading.go-to-demo i,.welcome .loading.action i{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.btn:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#bbbfc0}.btn.active,.active.demo-button,.active.create-demo,.active.go-to-demo,.welcome .active.action,.slug-item.highlighted .btn[type=highlight],.slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .welcome [type=highlight].action,.welcome .slug-item.highlighted [type=highlight].action,.btn:active,.demo-button:active,.create-demo:active,.go-to-demo:active,.welcome .action:active{background:#2e2c31;color:#fff}.btn-primary:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn-primary:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#189a98}.btn-success:hover,.btn-success:focus{background:#00974a}.btn-info:hover,.btn-info:focus{background:#138ca3}.btn-warning:hover,.confirm-delete:hover,.btn-warning:focus,.confirm-delete:focus{background:#dd9101}.btn-danger:hover,.btn-danger:focus{background:#7f2330}.btn.disabled,.btn.loading,.loading.demo-button,.loading.create-demo,.loading.go-to-demo,.welcome .loading.action,.disabled.demo-button,.disabled.create-demo,.disabled.go-to-demo,.welcome .disabled.action{cursor:not-allowed;border-color:#bbbfc0}.btn.disabled:hover,.btn.loading:hover,.loading.demo-button:hover,.loading.create-demo:hover,.loading.go-to-demo:hover,.welcome .loading.action:hover,.disabled.demo-button:hover,.disabled.create-demo:hover,.disabled.go-to-demo:hover,.welcome .disabled.action:hover,.btn.disabled:focus,.btn.loading:focus,.loading.demo-button:focus,.loading.create-demo:focus,.loading.go-to-demo:focus,.welcome .loading.action:focus,.disabled.demo-button:focus,.disabled.create-demo:focus,.disabled.go-to-demo:focus,.welcome .disabled.action:focus{background:transparent}.btn.disabled:active,.btn.loading:active,.loading.demo-button:active,.loading.create-demo:active,.loading.go-to-demo:active,.welcome .loading.action:active,.disabled.demo-button:active,.disabled.create-demo:active,.disabled.go-to-demo:active,.welcome .disabled.action:active{background:transparent;color:inherit}.btn-link:hover,.new-endpoint .copy-to-clipboard:hover,.demo-services .demo-service-action:hover,.service-demo button:hover,.demo-block .demo-block-remove:hover,.btn-link:focus,.new-endpoint .copy-to-clipboard:focus,.demo-services .demo-service-action:focus,.service-demo button:focus,.demo-block .demo-block-remove:focus{background:transparent}.btn-link:active,.new-endpoint .copy-to-clipboard:active,.demo-services .demo-service-action:active,.service-demo button:active,.demo-block .demo-block-remove:active{background:transparent;color:inherit}.cta{background:transparent;border:1px solid #1bb0ae;color:#1bb0ae;text-align:center;min-height:4em}.cta:hover,.cta:focus{background:#1bb0ae;color:#fff}.cta:active{background:#2e2c31;color:#fff}.label-debug,.label-log,.label-success,.service-status-ok,.label-warn,.label-redirect,.label-info,.label-information,.label-error,.label-client-error,.label-server-error{display:inline-block;padding:2px 10px;font-size:11px;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap}.label-debug,.label-log{background-color:#bbbfc0}.label-success,.service-status-ok{background-color:#00b056}.label-warn,.label-redirect{background-color:#f6a201}.label-info,.label-information{background-color:#16a0ba}.label-error,.label-client-error,.label-server-error{background-color:#932937}.alert,.slug-list .no-results{background-color:#f6a201;border:1px solid #f6a201}.alert .close,.slug-list .no-results .close,.alert .demo-block .demo-block-remove,.demo-block .alert .demo-block-remove,.slug-list .no-results .demo-block .demo-block-remove,.demo-block .slug-list .no-results .demo-block-remove{color:#fff;opacity:1}.alert a,.slug-list .no-results a,.alert button,.slug-list .no-results button{color:#c38101}.alert a:hover,.slug-list .no-results a:hover,.alert a:focus,.slug-list .no-results a:focus,.alert button:hover,.slug-list .no-results button:hover,.alert button:focus,.slug-list .no-results button:focus{color:#905f01}.alert,.slug-list .no-results,.alert h4,.slug-list .no-results h4{color:#fff}.alert-success{background-color:#00b056;border-color:#00b056;color:#fff}.alert-success h4{color:#fff}.alert-danger,.alert-error{background-color:#932937;border-color:#932937;color:#fff}.alert-danger h4,.alert-error h4{color:#fff}.alert-info{background-color:#16a0ba;border-color:#16a0ba;color:#fff}.alert-info h4{color:#fff}.slug-grid{width:960px;margin:0 auto;list-style:none}.slug-grid li{width:220px;height:220px;float:left;margin:0 0 20px 20px;transition-property:width;transition-duration:0.8s;transition-timing-function:ease}.slug-grid li.opened{width:940px}.slug-grid li.opened .slug-grid-item{border-color:#2fa4e7}.slug-grid li.opened .caption{width:690px;height:180px;padding:9px;-webkit-transition:all 1ms linear 0.8s;-moz-transition:all 1ms linear 0.8s;-o-transition:all 1ms linear 0.8s;transition:all 1ms linear 0.8s}.slug-grid-item{padding:4px;line-height:20px;border:1px solid #999;background:#fff;cursor:pointer;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-moz-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.slug-grid-item:hover{border-color:#2fa4e7;-webkit-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;-moz-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;box-shadow:rgba(0,105,214,0.25) 0 1px 4px}.slug-grid-item h3{margin:0}.slug-grid-item img{width:210px;float:left;background:#ccc}.exists .slug-grid-item img{background:#0670d6}.slug-grid-item .caption{width:0;height:0;padding:0;overflow:hidden;float:left;vertical-align:middle;transition-property:width, height, padding;transition-duration:1ms;transition-timing-function:linear;transition-delay:-1s}.exists .create-demo{display:none}.go-to-demo{display:none}.exists .go-to-demo{display:inline-block}.welcome .description{text-align:center;margin:20px 0}.welcome .description .icon-logo{font-size:135px;background:#bfbfbf;padding:35px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-bottom:20px;display:inline-block}.welcome .action{font-size:40px;float:right}.services .thumbnails li{height:365px}.services .new .thumbnail{display:block;text-align:center;line-height:20;font-size:17.5px;border-color:#1bb0ae}.services .new .thumbnail:hover{text-decoration:none;background:#1bb0ae;color:#fff}.services .thumbnail{height:100%}.services .controls{padding:10px 0;border-top:1px solid #f5f5f5}.services .plot{height:auto}.service-select{margin:0;height:auto;border:none;-webkit-appearance:none;width:auto;max-width:24%}.service-select:focus{border:none}.service-select option{font-size:14px}pre.endpoint{display:inline-block}.new-endpoint .copy-to-clipboard{padding:0 0 4px 4px}.service-nav{margin-left:25.64103%}.demo-services{list-style:none}.demo-services .demo-service-logo{width:85px}@media (min-width: 1200px){.services .thumbnails li{min-width:23%;margin-left:2%}}.main-menu{margin-bottom:0}.main-menu .brand{padding:4px 20px 3px;margin-left:0;width:26%}.main-menu-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:none}.services-menu{position:relative}.dropdown-menu.main-menu-dropdown{background:#2e2c31;color:#fff}.dropdown-menu.main-menu-dropdown a,.dropdown-menu.main-menu-dropdown button{color:#fff}.dropdown-menu.main-menu-dropdown a:hover,.dropdown-menu.main-menu-dropdown a:focus,.dropdown-menu.main-menu-dropdown button:hover,.dropdown-menu.main-menu-dropdown button:focus{background:transparent;color:#db3c4e}.dropdown-menu.main-menu-dropdown:after,.dropdown-menu.main-menu-dropdown:before{display:none !important}.subnav .subnav-inner{background:#2e2c31}.subnav .subnav-inner{height:auto;min-height:30px}.subnav .subnav-nav{margin:0 0 0 25.5%;padding:0}.subnav .subnav-nav li{display:inline-block}.subnav .subnav-nav .subnav-action{color:#fff;display:inline-block;padding:5px 15px}.subnav .subnav-nav .subnav-action:hover,.subnav .subnav-nav .subnav-action:focus{color:#db3c4e;text-decoration:none;background-color:transparent}.subnav .subnav-nav .subnav-action:active,.subnav .subnav-nav .subnav-action.active,.subnav .subnav-nav .slug-item.highlighted .subnav-action.btn[type=highlight],.slug-item.highlighted .subnav .subnav-nav .subnav-action.btn[type=highlight],.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].demo-button,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].demo-button,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].create-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].create-demo,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].go-to-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].go-to-demo,.subnav .subnav-nav .slug-item.highlighted .welcome .subnav-action[type=highlight].action,.slug-item.highlighted .welcome .subnav .subnav-nav .subnav-action[type=highlight].action,.subnav .subnav-nav .welcome .slug-item.highlighted .subnav-action[type=highlight].action,.welcome .slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].action{color:#db3c4e}#service-list a,.services-menu a{cursor:pointer}.trace-response dt,.trace-request dt{width:130px;margin-bottom:10px}.trace-response dt button,.trace-request dt button{padding-left:0}.trace-response dd,.trace-request dd{margin-bottom:10px;margin-left:140px}.trace-response dd .btn-link,.trace-response dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-response dd .copy-to-clipboard,.trace-response dd .demo-services .demo-service-action,.demo-services .trace-response dd .demo-service-action,.trace-response dd .service-demo button,.service-demo .trace-response dd button,.trace-response dd .demo-block .demo-block-remove,.demo-block .trace-response dd .demo-block-remove,.trace-request dd .btn-link,.trace-request dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-request dd .copy-to-clipboard,.trace-request dd .demo-services .demo-service-action,.demo-services .trace-request dd .demo-service-action,.trace-request dd .service-demo button,.service-demo .trace-request dd button,.trace-request dd .demo-block .demo-block-remove,.demo-block .trace-request dd .demo-block-remove{padding:0;border:0;margin-bottom:5px}.trace-response table,.trace-request table{padding:5px;border:1px solid #f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.trace-response table tr,.trace-request table tr{border-bottom:1px solid #f5f5f5}.trace-response table td,.trace-response table th,.trace-request table td,.trace-request table th{padding:5px}.trace-pipeline{counter-reset:li;list-style:none}.trace-pipeline li{position:relative;counter-increment:li;border:2px dashed #2fa4e7;padding:10px;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;margin:0 0 20px 0}.trace-pipeline li .counter::before{content:counter(li)}.trace-pipeline li .counter{position:absolute;left:-42px;top:50%;margin-top:-1.3em;height:2em;width:2em;line-height:2em;text-align:center;font-weight:bold;border-radius:2em;transition:all .3s ease-out;background:#f5f5f5;color:#555;border:3px solid #2fa4e7}.trace-pipeline li .counter:hover{background:#eee}.trace-pipeline li .counter:hover:before{transform:rotate(360deg)}.trace-pipeline li .trace-request{padding-bottom:20px;border-bottom:1px solid #f5f5f5}.middlewares .stack{padding:2px 10px}.middlewares .result{width:30%}.middlewares .result h3{line-height:20px;margin:0}.middlewares .result .author,.middlewares .result .version{font-size:11.9px;color:#555}.middlewares .result .badge{margin-right:5px}.middlewares .result .thumbnail{height:215px}.middlewares .result.new .thumbnail{display:block;height:100%;text-align:center;line-height:10;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .result.new .thumbnail:hover{text-decoration:none}.middlewares .thumbnails li{width:30%;height:260px;margin-left:2%}.middlewares .thumbnails li h3{line-height:23px;margin:0}.middlewares .thumbnails li .thumbnail{height:100%}.middlewares .thumbnails li .thumbnail .author,.middlewares .thumbnails li .thumbnail .version{font-size:11.9px;color:#555}.middlewares .thumbnails li .thumbnail .caption{position:relative;height:100%}.middlewares .thumbnails li .thumbnail .controls{position:absolute;bottom:30px;width:95%;padding:20px 0 0 0;border-top:1px solid #f5f5f5}.middlewares .thumbnails li.new .thumbnail{display:block;text-align:center;line-height:16;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .thumbnails li.new .thumbnail:hover{text-decoration:none}.middlewares .github{background-color:#f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;padding:2px 10px}.middlewares .github .result{background-color:#fff}.middlewares .config textarea{display:block;width:430px;height:70px;margin:20px 0 0 0}.middlewares .CodeMirror{border:3px dashed #f5f5f5;padding:11px 19px}.middleware-list .middleware{background-color:#fff;border:1px solid #2e2c31;color:#2e2c31;display:block;position:relative;padding:2px 10px;margin:10px 0;min-height:65px;overflow:hidden;cursor:move;margin-bottom:10px}.pipeline-container{margin:0 0 20px 0}.pipeline-container i{vertical-align:initial}.pipeline-box{float:left}.pipeline-wrap{border:1px solid #2e2c31;padding:40px 0;margin:20px 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.pipeline-wrap .pipeline{-webkit-box-flex:2;-moz-box-flex:2;-ms-flex:2;-webkit-flex:2;flex:2;margin:0 10px;position:relative}.pipeline-wrap .pipeline .middleware-list{min-height:100px;margin-bottom:10px}.pipeline-wrap .pipeline.changed{border-color:#f6a201;background:#fffcf7}.arrow{width:80px;align-self:center;text-align:center}.arrow [class*='arrow-']:before{font-family:FontAwesome;font-size:50px;font-style:normal;color:#bbbfc0}.arrow .arrow-up:before{content:"\f062"}.arrow .arrow-down:before{content:"\f063"}.service,.app{color:#fff;font-weight:normal;margin:0;text-align:center;padding:20px}.app{background:#2e2c31}.service{background:#db3c4e}.middleware-list{margin:0 20px;list-style:none;margin:0}.middleware-list .middleware.on{border-color:#2e2c31;color:#2e2c31}.middleware-list .middleware.on a,.middleware-list .middleware.on button{color:#2e2c31}.middleware-list .middleware.off{border-color:#bbbfc0;color:#bbbfc0}.middleware-list .middleware.off button{color:#bbbfc0}.middleware-list .middleware .header{position:relative}.middleware-list .middleware .controls{margin:0;position:absolute;right:0;top:0}.middleware-list .middleware .controls li{display:inline-block}.middleware-list .middleware .controls button{padding:0}.middleware-list .middleware .controls button:hover{text-decoration:none}.middleware-pipeline.ui-sortable-placeholder,.drag-middleware{text-align:center;border:1px dashed #bbbfc0;color:#bbbfc0;font-size:17.5px}.new-middleware{width:100%;min-height:65px}.middleware-pipeline.ui-sortable-placeholder{visibility:visible !important}.middleware-pipeline.ui-sortable-placeholder:before{content:"Drop Here";line-height:4;border:none}.drag-middleware{position:absolute;top:10%;left:0%;width:100%;line-height:4}.middleware-stack{float:right;border:1px solid #bbbfc0;padding:11px 19px}.middleware-stack .middleware-list{min-height:400px;position:relative}.middleware-stack .middleware{border:1px dashed #bbbfc0}.middleware-stack .middleware:before{font-family:FontAwesome;content:"\f047";float:right}.middleware-stack .middleware-controls{min-width:235px}.analytics .thumbnails li{margin-left:0;padding:0;width:100%}.analytics .thumbnails .new{border-width:3px;border-style:dashed}.analytics .thumbnails .new .caption{text-align:center;font-size:17.5px}.slug-list{list-style:none;margin:20px 0}.slug-list pre{margin:0}.slug-item{border:1px solid #2e2c31;margin-bottom:0.25em;position:relative}.slug-item.highlighted{border-color:#1bb0ae}.slug-item.highlighted .slug-item-title,.slug-item.highlighted .slug-item-title a,.slug-item.highlighted .action-button{color:#1bb0ae}.slug-item.opened{border-style:dashed}.slug-item-content .wrap{padding:20px}.slug-item-heading{padding:0.5em 4em 0.5em 2em;position:relative}.slug-item-heading .truncated .rest{position:absolute;background-color:white;white-space:nowrap;padding:0.5em 0;margin-top:-0.5em}.slug-item-heading .truncated:hover .rest{display:inline-block}.slug-item-heading .service-code{opacity:0.8;vertical-align:middle}.slug-item:hover .slug-item-heading .service-code{opacity:1}.slug-item-heading .slug-item-title{margin:0}.slug-item-heading .slug-item-title a{color:#5f5f5f}.slug-item-heading .slug-item-check{position:absolute;left:0.5em;top:0.5em}.slug-item-dropdown{background:#2e2c31;border:none;color:#fff}.slug-item-dropdown>li>a,.slug-item-dropdown>li>button{color:#fff}.slug-item-actions{position:absolute;right:1em;top:1em}.slug-item-actions .dropdown-menu{left:inherit;right:0}.action-button{background:none;border:none;font-size:17.5px;padding:0}.slug-item-toggle{width:100%;cursor:pointer}.slug-item-details .detail{margin-right:1em;font-size:10.5px}.notification .detail.log-level{display:inline-block;min-width:3em}.notification .detail.channel{display:inline-block;min-width:4em}.search-box{margin:0 0 20px 0}.search-box .search-input{width:98%;padding-left:1%;padding-right:1%;margin:0 0 20px 0}.search-box .search-tokens{float:left;margin-right:5px}.search-box .search-tokens ul{margin:0}.search-box .search-tokens .token-active{border:1px solid #bbbfc0;padding:0px 6px;margin:0 0 20px 0}.search-box .controls{float:right;text-align:right}.search-box .controls .switch{width:150px}.search-tokens{margin:0}.search-tokens .show-mode,.search-tokens .edit-mode{display:inline-block;vertical-align:middle}.search-tokens a{text-decoration:none}.search-tokens a,.search-tokens a .icon{vertical-align:middle}.token{display:inline-block;padding:5px;margin:2px;border:1px solid #bbbfc0;color:#bbbfc0}.token form{margin:0}.token a,.token button{padding:0;line-height:1;color:#bbbfc0}.token input{min-width:70px;border:none;box-shadow:none;padding:0}.token.new{border-color:#1bb0ae;color:#1bb0ae}.token.new input{font-weight:bold;width:70px}.token.new input:not(:invalid){color:#1bb0ae}.token.new input:focus{width:auto}.token.new a,.token.new button{color:#1bb0ae}.token.active,.slug-item.highlighted .token.btn[type=highlight],.slug-item.highlighted .token[type=highlight].demo-button,.slug-item.highlighted .token[type=highlight].create-demo,.slug-item.highlighted .token[type=highlight].go-to-demo,.slug-item.highlighted .welcome .token[type=highlight].action,.welcome .slug-item.highlighted .token[type=highlight].action{border-color:#2e2c31;color:#2e2c31}.token.active a,.slug-item.highlighted .token.btn[type=highlight] a,.slug-item.highlighted .token[type=highlight].demo-button a,.slug-item.highlighted .token[type=highlight].create-demo a,.slug-item.highlighted .token[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .token[type=highlight].action a,.welcome .slug-item.highlighted .token[type=highlight].action a{color:#2e2c31}.token.editing{border-style:dashed}.token-suggestions .token{border-color:#1bb0ae;color:#1bb0ae}.token-suggestions .token a,.token-suggestions .token button{color:#1bb0ae}.token-suggestions .token .toggle{display:none}.token-suggestions .token .show-mode{cursor:pointer}.side-menu{margin:0 0 20px 0;list-style:none}.side-menu a{color:#2e2c31}.side-menu a:hover,.side-menu a:focus{text-decoration:none}.side-menu li:not(.header){margin:0 0 5px 0;position:relative}.side-menu li:not(.header)>a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:8px 12px;margin:0;padding-right:0}.side-menu .header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.side-menu .header:hover,.side-menu .header:focus{background:none}.side-menu+.header{margin-top:9px}.side-menu li.divider{padding:0}.side-menu-filter{border:1px solid #2e2c31;color:#2e2c31}.side-menu-filter:hover,.side-menu-filter:focus{background-color:#db3c4e;border-color:#db3c4e;color:#fff}.side-menu-filter:hover a,.side-menu-filter:focus a{color:#fff}.side-menu-filter.active,.slug-item.highlighted .side-menu-filter.btn[type=highlight],.slug-item.highlighted .side-menu-filter[type=highlight].demo-button,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action,.side-menu-filter.active:hover,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover{color:#fff;background-color:#2e2c31}.side-menu-filter.active a,.slug-item.highlighted .side-menu-filter.btn[type=highlight] a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action a,.side-menu-filter.active:hover a,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover a{color:#fff;background-color:transparent}.side-menu-filter .edit-form{display:none;margin:0;padding:8px 12px}.side-menu-filter .edit-form input{margin:0;padding:0 2px;width:75%}.side-menu-filter .controls{display:none;position:absolute;top:7px;right:12px}.side-menu-filter .controls a{display:inline-block;width:20px;vertical-align:middle;text-align:center}.side-menu-filter.editable:hover .select-mode,.side-menu-filter.editable:focus .select-mode{display:block}.side-menu-filter.editable:hover:not(.active) .active-button,.side-menu-filter.editable:focus:not(.active) .active-button{display:none}.side-menu-filter.active .select-mode,.slug-item.highlighted .side-menu-filter.btn[type=highlight] .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo .select-mode,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action .select-mode,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action .select-mode{display:block}.side-menu-filter.editable.editing .edit-mode,.side-menu-filter.editable.editing .edit-form,.side-menu-filter.editable.editing:hover .edit-mode,.side-menu-filter.editable.editing:hover .edit-form{display:block}.side-menu-filter.editable.editing .select-mode,.side-menu-filter.editable.editing:hover .select-mode{display:none}.side-menu-filter .slug-confirm-box{background:#f6a201;position:absolute;right:0;top:0;width:80px}.side-menu-filter .slug-confirmation{color:#932937}.charts{list-style:none;margin:0}.charts .expanded{width:100%;margin-left:0}.charts .expanded .plot{min-height:400px}.charts .normal{width:49%;display:inline-block}.charts .normal:last-child{margin-left:2%}.charts .normal .chart.new a{line-height:15}.charts .normal .chart .plot{height:225px}.chart{border:1px solid #bbbfc0;padding:1em;margin-bottom:20px}.chart .caption{position:relative}.chart .caption h4{text-align:center}.chart .caption .edit-chart{display:block;position:absolute;right:0;bottom:0}.chart.new{border-width:2px;border-style:dashed;box-shadow:none;display:block;text-align:center;line-height:15;font-size:17.5px;border-width:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;cursor:pointer}.chart.new:hover{text-decoration:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.chart-edit{width:800px;left:40%}.chart-edit .modal-header h3,.chart-edit .modal-header a,.chart-edit .modal-header input{display:inline-block}.chart-edit ul{margin-left:0}.chart-edit fieldset{border-bottom:1px solid #f5f5f5;padding-top:20px}.chart-edit fieldset h4{margin-top:5px}.graph{overflow:hidden}.plot{position:relative;display:block}.plot.maximized{height:100%}.rickshaw-maximizer,.rickshaw-minimizer{position:absolute;bottom:5px;right:5px;display:block;text-align:center;border:1px solid #f5f5f5;height:20px;width:20px;background-color:#fff}.rickshaw-maximizer:hover,.rickshaw-minimizer:hover{border-color:#555}.rickshaw-maximizer i,.rickshaw-minimizer i{cursor:pointer}.rickshaw_graph .detail .super-label{font-family:Arial, sans-serif;border-radius:3px;padding:6px;border:1px solid #e0e0e0;font-size:12px;position:absolute;white-space:nowrap;background-color:white;background-color:rgba(255,255,255,0.75)}.rickshaw_graph .detail .super-label.left{left:10px}.rickshaw_graph .detail .super-label.right{right:10px}.rickshaw_graph .detail .title,.rickshaw_graph .detail .value{font-weight:bold}.rickshaw_graph .detail .swatch{width:10px;height:10px;border:1px solid rgba(0,0,0,0.2);display:inline-block;margin-right:3px;border-radius:2px}.service-demo ul{list-style:none;margin:0}.service-demo ul li{margin:0 0 5px 0}.service-demo button{font-size:21px}.service-demo button:hover{text-decoration:none}.service-demo button:disabled{color:#555}.service-demo button:disabled:hover{color:#555}.service-demo .call{margin-left:45px;padding:0 0 5px 0}.service-demo .loading{font-size:15.4px}.service-demo .status-code{margin-left:-45px;width:40px;vertical-align:middle;visibility:hidden}.service-demo .visible{visibility:visible}.service-demo .demo-response{color:#555}.demo-block{border:1px solid #16a0ba;padding:11px 19px;margin-bottom:20px;position:relative}.demo-block .demo-block-remove{color:#16a0ba}.demo-block h4{color:#16a0ba;border-bottom:1px solid #16a0ba;padding-bottom:10px;padding-left:20px;margin-top:0;margin-left:-20px;margin-right:-20px}.demo-block i{font-size:17.5px}.demo-block ul{list-style:none}#setup-modal{position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff}#setup-form{padding:60px}.dashboard-box{padding:1em;border:1px solid #bbbfc0;display:block;margin-bottom:20px}.dashboard-box:hover,.dashboard-box:focus{text-decoration:none}.dashboard-box ul,.dashboard-box ol{list-style:none;margin:0}.dashboard-box ul li,.dashboard-box ol li{padding:2px 10px;padding-left:0}.dashboard-box ul li:nth-child(odd),.dashboard-box ol li:nth-child(odd){background:#f5f5f5}.dashboard-box ul .cell,.dashboard-box ol .cell{padding:2px 10px}.dashboard-box a:hover,.dashboard-box a:focus{text-decoration:none}.dashboard-box{height:22em}.dashboard-box .no-records{margin-top:80px;margin-bottom:80px}.dashboard-box .no-records,.dashboard-box .new-service{display:block;text-align:center;vertical-align:middle}.dashboard-box-title{margin:0 -14px 7px -14px;padding:0 14px 7px 14px;border-bottom:1px solid #bbbfc0}.small-dashboard-boxes{text-align:center}.small-dashboard-boxes .number,.small-dashboard-boxes .box-label{display:block;line-height:1}.small-dashboard-boxes .number{font-size:4em;font-weight:bold;color:#2e2c31}.small-dashboard-boxes .number.error{color:#932937}.small-dashboard-boxes .number.ok{color:#00b056}.selected-dashboard{height:250px}.dashboard-box-mini{height:5em}.dashboard-box-small{height:16.5em}.notification-link,.trace-link{color:#2e2c31}#service-middlewares h3{line-height:2em}#service-middlewares label{font:inherit;display:inline-block}#service-middlewares input[type='checkbox']{margin-right:1em}.drag-handle{top:0;bottom:0;left:0;width:1em;position:absolute;cursor:move;background:#696969}.service-middleware{position:relative;list-style:none;border:1px solid black;margin-bottom:1em;padding-left:2em;padding-right:0;background-color:rgba(255,255,255,0.8)}.service-middleware.disabled,.service-middleware.btn.loading,.service-middleware.loading.demo-button,.service-middleware.loading.create-demo,.service-middleware.loading.go-to-demo,.welcome .service-middleware.loading.action{background-color:rgba(105,105,105,0.4);opacity:0.9}.CodeMirror-autoresize .CodeMirror{border:1px solid #eee;height:auto}.CodeMirror-autoresize .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.animated.leave{position:absolute}.endpoint-example{position:relative}.endpoint-example .copy-to-clipboard{position:absolute;right:0;top:0}a.destroy{float:right;padding-top:9.5px;padding-right:9.5px}.tab-content{overflow:visible}.middleware-spec-list{list-style-type:none}.middleware-spec{height:100px}.edit-middleware label input,.edit-middleware label textarea{display:block}html{overflow-y:scroll}a.help:hover{text-decoration:none;cursor:pointer}a.help+div{font-size:14px}.icon-help{font-size:17px}.icon-help:after{content:"\f059"}.filter-list .filter.selected a{background-color:blue}.truncated .rest{display:none}.truncated:hover .rest{display:inline}.truncated:hover .dots{display:none}.action[type=delete].confirm-delete .icon-trash{margin-right:.5em;vertical-align:text-top}.tabbable .nav-tabs a{cursor:pointer;border-radius:0}.tabbable .nav-tabs .invalid a{background-color:red}.analytics-list{list-style:none}.analytics-list li{margin-bottom:5px}.analytics-list li input,.analytics-list li select{margin-bottom:0}.collapse{min-height:0 !important}.side-menu li a{cursor:pointer}.tooltip{z-index:10000}/*!
* Font Awesome 3.2.1
* the iconic font designed for Bootstrap
* ------------------------------------------------------------------------------
diff --git a/app/assets/app.css b/app/assets/app.css
index ea88a19..cf33929 100644
--- a/app/assets/app.css
+++ b/app/assets/app.css
@@ -14,4 +14,4 @@
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
- */@-ms-viewport{width:device-width}.hidden,.token-suggestions .token.disabled,.token-suggestions .token.btn.loading,.token-suggestions .token.loading.demo-button,.token-suggestions .token.loading.create-demo,.token-suggestions .token.loading.go-to-demo,.token-suggestions .welcome .token.loading.action,.welcome .token-suggestions .token.loading.action{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media (min-width: 768px) and (max-width: 979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media (max-width: 767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}.clearfix,.wizard,.slug-grid,.slug-grid-item,.welcome,.services .controls,.middlewares .thumbnails li .thumbnail .controls{*zoom:1}.clearfix:before,.wizard:before,.slug-grid:before,.slug-grid-item:before,.welcome:before,.services .controls:before,.middlewares .thumbnails li .thumbnail .controls:before,.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{display:table;content:"";line-height:0}.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span1{width:70px}.span2,.search-box .controls{width:170px}.span3{width:270px}.span4,.middleware-stack{width:370px}.span5{width:470px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:570px}.span7{width:670px}.span8,.pipeline-box{width:770px}.span9{width:870px}.span10,.search-box .search-tokens{width:970px}.span11{width:1070px}.span12{width:1170px}.offset1{margin-left:130px}.offset2{margin-left:230px}.offset3{margin-left:330px}.offset4{margin-left:430px}.offset5{margin-left:530px}.offset6{margin-left:630px}.offset7{margin-left:730px}.offset8{margin-left:830px}.offset9{margin-left:930px}.offset10{margin-left:1030px}.offset11{margin-left:1130px}.offset12{margin-left:1230px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.5641%;*margin-left:2.51091%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.5641%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.98291%;*width:5.92971%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.52991%;*width:14.47672%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:23.07692%;*width:23.02373%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.62393%;*width:31.57074%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.17094%;*width:40.11775%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.71795%;*width:48.66476%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.26496%;*width:57.21177%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.81197%;*width:65.75877%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.35897%;*width:74.30578%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.90598%;*width:82.85279%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.45299%;*width:91.3998%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.11111%;*margin-left:11.00473%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.54701%;*margin-left:8.44063%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.65812%;*margin-left:19.55174%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.09402%;*margin-left:16.98763%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.20513%;*margin-left:28.09875%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.64103%;*margin-left:25.53464%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:36.75214%;*margin-left:36.64575%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.18803%;*margin-left:34.08165%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.29915%;*margin-left:45.19276%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.73504%;*margin-left:42.62866%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:53.84615%;*margin-left:53.73977%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.28205%;*margin-left:51.17567%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.39316%;*margin-left:62.28678%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.82906%;*margin-left:59.72268%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:70.94017%;*margin-left:70.83379%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.37607%;*margin-left:68.26969%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.48718%;*margin-left:79.3808%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:76.92308%;*margin-left:76.81669%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.03419%;*margin-left:87.92781%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.47009%;*margin-left:85.3637%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.5812%;*margin-left:96.47481%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.01709%;*margin-left:93.91071%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.12821%;*margin-left:105.02182%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.5641%;*margin-left:102.45772%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:156px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:356px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:556px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:756px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:956px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails,.control-box .thumbnails,.welcome .description .thumbnails,.pipeline-container .thumbnails,.search-box .thumbnails{margin-left:0}}@media (min-width: 768px) and (max-width: 979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span1{width:42px}.span2,.search-box .controls{width:104px}.span3{width:166px}.span4,.middleware-stack{width:228px}.span5{width:290px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:352px}.span7{width:414px}.span8,.pipeline-box{width:476px}.span9{width:538px}.span10,.search-box .search-tokens{width:600px}.span11{width:662px}.span12{width:724px}.offset1{margin-left:82px}.offset2{margin-left:144px}.offset3{margin-left:206px}.offset4{margin-left:268px}.offset5{margin-left:330px}.offset6{margin-left:392px}.offset7{margin-left:454px}.offset8{margin-left:516px}.offset9{margin-left:578px}.offset10{margin-left:640px}.offset11{margin-left:702px}.offset12{margin-left:764px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.76243%;*margin-left:2.70924%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.76243%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.8011%;*width:5.74791%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.36464%;*width:14.31145%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:22.92818%;*width:22.87499%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.49171%;*width:31.43852%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.05525%;*width:40.00206%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.61878%;*width:48.56559%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.18232%;*width:57.12913%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.74586%;*width:65.69266%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.30939%;*width:74.2562%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.87293%;*width:82.81974%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.43646%;*width:91.38327%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.32597%;*margin-left:11.21958%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.56354%;*margin-left:8.45715%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.8895%;*margin-left:19.78312%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.12707%;*margin-left:17.02069%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.45304%;*margin-left:28.34666%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.69061%;*margin-left:25.58422%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:37.01657%;*margin-left:36.91019%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.25414%;*margin-left:34.14776%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.58011%;*margin-left:45.47373%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.81768%;*margin-left:42.7113%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:54.14365%;*margin-left:54.03726%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.38122%;*margin-left:51.27483%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.70718%;*margin-left:62.6008%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.94475%;*margin-left:59.83837%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:71.27072%;*margin-left:71.16434%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.50829%;*margin-left:68.4019%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.83425%;*margin-left:79.72787%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:77.07182%;*margin-left:76.96544%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.39779%;*margin-left:88.29141%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.63536%;*margin-left:85.52898%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.96133%;*margin-left:96.85494%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.1989%;*margin-left:94.09251%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.52486%;*margin-left:105.41848%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.76243%;*margin-left:102.65605%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:90px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:214px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:338px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:462px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:586px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}}@media (max-width: 767px){body{padding-left:20px;padding-right:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px}.container-fluid{padding:0}.dl-horizontal dt,.trace-response dt,.trace-request dt{float:none;clear:none;width:auto;text-align:left}.dl-horizontal dd,.trace-response dd,.trace-request dd{margin-left:0}.container{width:auto}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child,.control-box [class*="offset"]:first-child,.welcome .description [class*="offset"]:first-child,.pipeline-container [class*="offset"]:first-child,.search-box [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media (max-width: 480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0)}.page-header h1 small,.page-header .service-select small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-left:10px;padding-right:10px}.media .pull-left,.demo-services .demo-service .pull-left,.media .pull-right,.demo-services .demo-service .pull-right,.media .demo-button,.demo-services .demo-service .demo-button,.media .create-demo,.demo-services .demo-service .create-demo,.media .go-to-demo,.demo-services .demo-service .go-to-demo{float:none;display:block;margin-bottom:10px}.media-object,.demo-services .demo-service-logo,.demo-services .demo-service-body{margin-right:0;margin-left:0}.modal{top:10px;left:10px;right:10px}.modal-header .close,.modal-header .demo-block .demo-block-remove,.demo-block .modal-header .demo-block-remove{padding:10px;margin:-10px}.carousel-caption{position:static}}@media (max-width: 979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-top .main-menu-inner,.navbar-fixed-bottom .navbar-inner,.navbar-fixed-bottom .main-menu-inner{padding:5px}.navbar .container,.main-menu .container{width:auto;padding:0}.navbar .brand,.main-menu .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav,.nav-collapse .service-nav{float:none;margin:0 0 10px}.nav-collapse .nav>li,.nav-collapse .service-nav>li{float:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical,.nav-collapse .service-nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header,.nav-collapse .service-nav .nav-header{color:#fff;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn,.nav-collapse .demo-button,.nav-collapse .create-demo,.nav-collapse .go-to-demo,.nav-collapse .welcome .action,.welcome .nav-collapse .action{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .service-nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .service-nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#db3c4e}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .service-nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#fff}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .service-nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .service-nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#2e2c31}.nav-collapse.in .btn-group{margin-top:5px;padding:0}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .service-nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after,.nav-collapse .service-nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #db3c4e;border-bottom:1px solid #db3c4e;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#2e2c31;border-bottom-color:#2e2c31}.navbar .nav-collapse .nav.pull-right,.main-menu .nav-collapse .nav.pull-right,.navbar .nav-collapse .nav.demo-button,.main-menu .nav-collapse .nav.demo-button,.navbar .nav-collapse .nav.create-demo,.main-menu .nav-collapse .nav.create-demo,.navbar .nav-collapse .create-demo.service-nav,.main-menu .nav-collapse .create-demo.service-nav,.navbar .nav-collapse .nav.go-to-demo,.main-menu .nav-collapse .nav.go-to-demo,.navbar .nav-collapse .go-to-demo.service-nav,.main-menu .nav-collapse .go-to-demo.service-nav,.navbar .nav-collapse .demo-button.service-nav,.main-menu .nav-collapse .demo-button.service-nav,.navbar .nav-collapse .pull-right.service-nav,.main-menu .nav-collapse .pull-right.service-nav{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0}.navbar .btn-navbar,.main-menu .btn-navbar{display:block}.navbar-static .navbar-inner,.navbar-static .main-menu-inner{padding-left:10px;padding-right:10px}}@media (min-width: 980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.switch .slide-button{display:none}.switch{display:inline-block;cursor:pointer;vertical-align:middle;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center;position:relative;display:inline-block;padding-bottom:4px;padding-top:4px;font-size:14px;line-height:20px;vertical-align:middle}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch .slide-button{display:block;position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%;-webkit-transition:left 0.5s;-moz-transition:left 0.5s;-o-transition:left 0.5s;transition:left 0.5s}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.switch input:focus+label{outline:1px dotted #888}.switch{display:inline-block;cursor:pointer;border:1px solid;position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #bbbfc0;border-bottom-color:#a1a6a7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-image:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch:hover{background:auto}.switch label{text-shadow:none}.switch input:checked+label{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.switch .slide-button{border-width:1px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1bb0ae;background-image:-moz-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#1bb0ae), to(#1bb0ae));background-image:-webkit-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-o-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:linear-gradient(to bottom, #1bb0ae, #1bb0ae);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF1BB0AE', endColorstr='#FF1BB0AE', GradientType=0);border-color:#1bb0ae #1bb0ae #116e6c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#1bb0ae;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.switch .slide-button:hover,.switch .slide-button:focus,.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action,.switch .slide-button.disabled,.switch .slide-button.btn.loading,.switch .slide-button.loading.demo-button,.switch .slide-button.loading.create-demo,.switch .slide-button.loading.go-to-demo,.switch .welcome .slide-button.loading.action,.welcome .switch .slide-button.loading.action,.switch .slide-button[disabled]{color:#fff;background-color:#1bb0ae;*background-color:#189a98}.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action{background-color:#148482 \9}.switch .slide-button:hover,.switch .slide-button:focus{color:#333;text-decoration:none;background-position:0 -15px}html,body{height:100%}h1,.service-select{font-size:22px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}a:hover,a:focus{text-decoration:none}*{box-shadow:none !important;text-shadow:none !important;border-radius:0 !important}#wrap{min-height:100%;padding-bottom:20px;height:auto !important;height:100%;margin:0 auto -60px}.container{max-width:1200px;margin:0 auto}#header{margin:0}#content{max-width:1200px;margin:0 auto;padding-bottom:50px}#footer{color:#fff;padding:20px 0 10px 0;background-color:#2e2c31;text-align:center;font-size:11.9px}#footer .container-fluid{max-width:1200px;margin:0 auto}#footer .credit{margin:15px 0}.slug-confirm .slug-confirm-box{background:#f6a201;color:#fff;font-weight:bold;display:none;padding:2px 10px;text-align:center}.slug-confirm .slug-confirm-box a{color:#fff}.slug-confirm .slug-confirm-box .slug-confirmation{color:#932937;margin-right:2px}.slug-confirm.slug-confirm-active .slug-confirm-original,.slug-confirm.slug-confirm-active i{display:none}.slug-confirm.slug-confirm-active .slug-confirm-box{display:block}.help{display:inline-block;vertical-align:middle;margin:0 0 0 5px}.help-link{float:right;padding-left:10px}.help-link:hover{text-decoration:none}.help-link i{font-size:100px;opacity:0.1}.modal>form{margin:0}.control-box input[type=checkbox]{margin:0 10px}.slug-alert{position:relative;z-index:9000;height:0}.slug-alert.in{height:auto}.wizard{border:1px solid #fff;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#bbbfc0}.wizard ul{list-style:none outside none;padding:0;margin:0}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#999;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #f5f5f5;border-right:0;display:block;position:absolute;right:-14px;top:0}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.complete{background:#f3f4f5;color:#00974a}.wizard ul li.complete:hover{background:#e7eff8;cursor:pointer}.wizard ul li.complete:hover .chevron:before{border-left:14px solid #e7eff8}.wizard ul li.complete .chevron:before{border-left:14px solid #f3f4f5}.wizard ul li.active,.wizard ul .slug-item.highlighted li.btn[type=highlight],.slug-item.highlighted .wizard ul li.btn[type=highlight],.wizard ul .slug-item.highlighted li[type=highlight].demo-button,.slug-item.highlighted .wizard ul li[type=highlight].demo-button,.wizard ul .slug-item.highlighted li[type=highlight].create-demo,.slug-item.highlighted .wizard ul li[type=highlight].create-demo,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action,.wizard ul li.current{background:#f1f6fc;color:#11798c}.wizard ul li.active .chevron:before,.wizard ul .slug-item.highlighted li.btn[type=highlight] .chevron:before,.slug-item.highlighted .wizard ul li.btn[type=highlight] .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].demo-button .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].demo-button .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].create-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].create-demo .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo .chevron:before,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action .chevron:before,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action .chevron:before,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action .chevron:before,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action .chevron:before,.wizard ul li.current .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:nth-child(1){border-radius:4px 0 0 4px;padding-left:20px;z-index:10}.wizard ul li:nth-child(2){z-index:9}.wizard ul li:nth-child(3){z-index:8}.wizard ul li:nth-child(4){z-index:7}.wizard ul li:nth-child(5){z-index:6}.wizard ul li:nth-child(6){z-index:5}.wizard ul li:nth-child(7){z-index:4}.wizard ul li:nth-child(8){z-index:3}.wizard ul li:nth-child(9){z-index:2}.wizard ul li:nth-child(10){z-index:1}.wizard .actions{line-height:44px;float:right;padding-right:15px;vertical-align:middle}.wizard .actions a{line-height:45px;font-size:12px;margin-right:8px}.wizard .actions .btn-prev i{margin-right:5px}.wizard .actions .btn-next i{margin-left:5px}.step-content .step-pane{display:none}.step-content .active,.step-content .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action{display:block}.step-content .active .btn-group .active,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .active,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .active,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .active,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .active,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .active,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .active,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .active,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .active,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .active,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .active,.step-content .active .btn-group .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .active .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .btn[type=highlight],.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .btn[type=highlight],.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .active .btn-group .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content .active .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].demo-button,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].demo-button,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .active .btn-group .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].create-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].create-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .active .btn-group .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].go-to-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .active .btn-group .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .active .btn-group [type=highlight].action,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome .btn[type=highlight] .btn-group [type=highlight].action,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].demo-button .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].create-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].go-to-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].action,.step-content .active .btn-group .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content .active .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].action{display:inline-block}.popover{max-width:100%;min-width:450px}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.btn.loading i,.loading.demo-button i,.loading.create-demo i,.loading.go-to-demo i,.welcome .loading.action i{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.btn:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#bbbfc0}.btn.active,.active.demo-button,.active.create-demo,.active.go-to-demo,.welcome .active.action,.slug-item.highlighted .btn[type=highlight],.slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .welcome [type=highlight].action,.welcome .slug-item.highlighted [type=highlight].action,.btn:active,.demo-button:active,.create-demo:active,.go-to-demo:active,.welcome .action:active{background:#2e2c31;color:#fff}.btn-primary:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn-primary:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#189a98}.btn-success:hover,.btn-success:focus{background:#00974a}.btn-info:hover,.btn-info:focus{background:#138ca3}.btn-warning:hover,.confirm-delete:hover,.btn-warning:focus,.confirm-delete:focus{background:#dd9101}.btn-danger:hover,.btn-danger:focus{background:#7f2330}.btn.disabled,.btn.loading,.loading.demo-button,.loading.create-demo,.loading.go-to-demo,.welcome .loading.action,.disabled.demo-button,.disabled.create-demo,.disabled.go-to-demo,.welcome .disabled.action{cursor:not-allowed;border-color:#bbbfc0}.btn.disabled:hover,.btn.loading:hover,.loading.demo-button:hover,.loading.create-demo:hover,.loading.go-to-demo:hover,.welcome .loading.action:hover,.disabled.demo-button:hover,.disabled.create-demo:hover,.disabled.go-to-demo:hover,.welcome .disabled.action:hover,.btn.disabled:focus,.btn.loading:focus,.loading.demo-button:focus,.loading.create-demo:focus,.loading.go-to-demo:focus,.welcome .loading.action:focus,.disabled.demo-button:focus,.disabled.create-demo:focus,.disabled.go-to-demo:focus,.welcome .disabled.action:focus{background:transparent}.btn.disabled:active,.btn.loading:active,.loading.demo-button:active,.loading.create-demo:active,.loading.go-to-demo:active,.welcome .loading.action:active,.disabled.demo-button:active,.disabled.create-demo:active,.disabled.go-to-demo:active,.welcome .disabled.action:active{background:transparent;color:inherit}.btn-link:hover,.new-endpoint .copy-to-clipboard:hover,.demo-services .demo-service-action:hover,.service-demo button:hover,.demo-block .demo-block-remove:hover,.btn-link:focus,.new-endpoint .copy-to-clipboard:focus,.demo-services .demo-service-action:focus,.service-demo button:focus,.demo-block .demo-block-remove:focus{background:transparent}.btn-link:active,.new-endpoint .copy-to-clipboard:active,.demo-services .demo-service-action:active,.service-demo button:active,.demo-block .demo-block-remove:active{background:transparent;color:inherit}.cta{background:transparent;border:1px solid #1bb0ae;color:#1bb0ae;text-align:center;min-height:4em}.cta:hover,.cta:focus{background:#1bb0ae;color:#fff}.cta:active{background:#2e2c31;color:#fff}.label-debug,.label-log,.label-success,.service-status-ok,.label-warn,.label-info,.label-error,.label-client-error,.label-server-error{display:inline-block;padding:2px 10px;font-size:11px;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap}.label-debug,.label-log{background-color:#bbbfc0}.label-success,.service-status-ok{background-color:#00b056}.label-warn{background-color:#f6a201}.label-info{background-color:#16a0ba}.label-error,.label-client-error,.label-server-error{background-color:#932937}.alert,.slug-list .no-results{background-color:#f6a201;border:1px solid #f6a201}.alert .close,.slug-list .no-results .close,.alert .demo-block .demo-block-remove,.demo-block .alert .demo-block-remove,.slug-list .no-results .demo-block .demo-block-remove,.demo-block .slug-list .no-results .demo-block-remove{color:#fff;opacity:1}.alert a,.slug-list .no-results a,.alert button,.slug-list .no-results button{color:#c38101}.alert a:hover,.slug-list .no-results a:hover,.alert a:focus,.slug-list .no-results a:focus,.alert button:hover,.slug-list .no-results button:hover,.alert button:focus,.slug-list .no-results button:focus{color:#905f01}.alert,.slug-list .no-results,.alert h4,.slug-list .no-results h4{color:#fff}.alert-success{background-color:#00b056;border-color:#00b056;color:#fff}.alert-success h4{color:#fff}.alert-danger,.alert-error{background-color:#932937;border-color:#932937;color:#fff}.alert-danger h4,.alert-error h4{color:#fff}.alert-info{background-color:#16a0ba;border-color:#16a0ba;color:#fff}.alert-info h4{color:#fff}.slug-grid{width:960px;margin:0 auto;list-style:none}.slug-grid li{width:220px;height:220px;float:left;margin:0 0 20px 20px;transition-property:width;transition-duration:0.8s;transition-timing-function:ease}.slug-grid li.opened{width:940px}.slug-grid li.opened .slug-grid-item{border-color:#2fa4e7}.slug-grid li.opened .caption{width:690px;height:180px;padding:9px;-webkit-transition:all 1ms linear 0.8s;-moz-transition:all 1ms linear 0.8s;-o-transition:all 1ms linear 0.8s;transition:all 1ms linear 0.8s}.slug-grid-item{padding:4px;line-height:20px;border:1px solid #999;background:#fff;cursor:pointer;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-moz-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.slug-grid-item:hover{border-color:#2fa4e7;-webkit-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;-moz-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;box-shadow:rgba(0,105,214,0.25) 0 1px 4px}.slug-grid-item h3{margin:0}.slug-grid-item img{width:210px;float:left;background:#ccc}.exists .slug-grid-item img{background:#0670d6}.slug-grid-item .caption{width:0;height:0;padding:0;overflow:hidden;float:left;vertical-align:middle;transition-property:width, height, padding;transition-duration:1ms;transition-timing-function:linear;transition-delay:-1s}.exists .create-demo{display:none}.go-to-demo{display:none}.exists .go-to-demo{display:inline-block}.welcome .description{text-align:center;margin:20px 0}.welcome .description .icon-logo{font-size:135px;background:#bfbfbf;padding:35px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-bottom:20px;display:inline-block}.welcome .action{font-size:40px;float:right}.services .thumbnails li{height:365px}.services .new .thumbnail{display:block;text-align:center;line-height:20;font-size:17.5px;border-color:#1bb0ae}.services .new .thumbnail:hover{text-decoration:none;background:#1bb0ae;color:#fff}.services .thumbnail{height:100%}.services .controls{padding:10px 0;border-top:1px solid #f5f5f5}.services .plot{height:auto}.service-select{margin:0;height:auto;border:none;-webkit-appearance:none;width:auto;max-width:24%}.service-select:focus{border:none}.service-select option{font-size:14px}pre.endpoint{display:inline-block}.new-endpoint .copy-to-clipboard{padding:0 0 4px 4px}.service-nav{margin-left:25.64103%}.demo-services{list-style:none}.demo-services .demo-service-logo{width:85px}@media (min-width: 1200px){.services .thumbnails li{min-width:23%;margin-left:2%}}.main-menu{margin-bottom:0}.main-menu .brand{padding:4px 20px 3px;margin-left:0;width:26%}.main-menu-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:none}.services-menu{position:relative}.dropdown-menu.main-menu-dropdown{background:#2e2c31;color:#fff}.dropdown-menu.main-menu-dropdown a,.dropdown-menu.main-menu-dropdown button{color:#fff}.dropdown-menu.main-menu-dropdown a:hover,.dropdown-menu.main-menu-dropdown a:focus,.dropdown-menu.main-menu-dropdown button:hover,.dropdown-menu.main-menu-dropdown button:focus{background:transparent;color:#db3c4e}.dropdown-menu.main-menu-dropdown:after,.dropdown-menu.main-menu-dropdown:before{display:none !important}.subnav .subnav-inner{background:#2e2c31}.subnav .subnav-inner{height:auto;min-height:30px}.subnav .subnav-nav{margin:0 0 0 25.5%;padding:0}.subnav .subnav-nav li{display:inline-block}.subnav .subnav-nav .subnav-action{color:#fff;display:inline-block;padding:5px 15px}.subnav .subnav-nav .subnav-action:hover,.subnav .subnav-nav .subnav-action:focus{color:#db3c4e;text-decoration:none;background-color:transparent}.subnav .subnav-nav .subnav-action:active,.subnav .subnav-nav .subnav-action.active,.subnav .subnav-nav .slug-item.highlighted .subnav-action.btn[type=highlight],.slug-item.highlighted .subnav .subnav-nav .subnav-action.btn[type=highlight],.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].demo-button,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].demo-button,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].create-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].create-demo,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].go-to-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].go-to-demo,.subnav .subnav-nav .slug-item.highlighted .welcome .subnav-action[type=highlight].action,.slug-item.highlighted .welcome .subnav .subnav-nav .subnav-action[type=highlight].action,.subnav .subnav-nav .welcome .slug-item.highlighted .subnav-action[type=highlight].action,.welcome .slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].action{color:#db3c4e}#service-list a,.services-menu a{cursor:pointer}.trace-response dt,.trace-request dt{width:130px;margin-bottom:10px}.trace-response dt button,.trace-request dt button{padding-left:0}.trace-response dd,.trace-request dd{margin-bottom:10px;margin-left:140px}.trace-response dd .btn-link,.trace-response dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-response dd .copy-to-clipboard,.trace-response dd .demo-services .demo-service-action,.demo-services .trace-response dd .demo-service-action,.trace-response dd .service-demo button,.service-demo .trace-response dd button,.trace-response dd .demo-block .demo-block-remove,.demo-block .trace-response dd .demo-block-remove,.trace-request dd .btn-link,.trace-request dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-request dd .copy-to-clipboard,.trace-request dd .demo-services .demo-service-action,.demo-services .trace-request dd .demo-service-action,.trace-request dd .service-demo button,.service-demo .trace-request dd button,.trace-request dd .demo-block .demo-block-remove,.demo-block .trace-request dd .demo-block-remove{padding:0;border:0;margin-bottom:5px}.trace-response table,.trace-request table{padding:5px;border:1px solid #f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.trace-response table tr,.trace-request table tr{border-bottom:1px solid #f5f5f5}.trace-response table td,.trace-response table th,.trace-request table td,.trace-request table th{padding:5px}.trace-pipeline{counter-reset:li;list-style:none}.trace-pipeline li{position:relative;counter-increment:li;border:2px dashed #2fa4e7;padding:10px;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;margin:0 0 20px 0}.trace-pipeline li .counter::before{content:counter(li)}.trace-pipeline li .counter{position:absolute;left:-42px;top:50%;margin-top:-1.3em;height:2em;width:2em;line-height:2em;text-align:center;font-weight:bold;border-radius:2em;transition:all .3s ease-out;background:#f5f5f5;color:#555;border:3px solid #2fa4e7}.trace-pipeline li .counter:hover{background:#eee}.trace-pipeline li .counter:hover:before{transform:rotate(360deg)}.trace-pipeline li .trace-request{padding-bottom:20px;border-bottom:1px solid #f5f5f5}.middlewares .stack{padding:2px 10px}.middlewares .result{width:30%}.middlewares .result h3{line-height:20px;margin:0}.middlewares .result .author,.middlewares .result .version{font-size:11.9px;color:#555}.middlewares .result .badge{margin-right:5px}.middlewares .result .thumbnail{height:215px}.middlewares .result.new .thumbnail{display:block;height:100%;text-align:center;line-height:10;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .result.new .thumbnail:hover{text-decoration:none}.middlewares .thumbnails li{width:30%;height:260px;margin-left:2%}.middlewares .thumbnails li h3{line-height:23px;margin:0}.middlewares .thumbnails li .thumbnail{height:100%}.middlewares .thumbnails li .thumbnail .author,.middlewares .thumbnails li .thumbnail .version{font-size:11.9px;color:#555}.middlewares .thumbnails li .thumbnail .caption{position:relative;height:100%}.middlewares .thumbnails li .thumbnail .controls{position:absolute;bottom:30px;width:95%;padding:20px 0 0 0;border-top:1px solid #f5f5f5}.middlewares .thumbnails li.new .thumbnail{display:block;text-align:center;line-height:16;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .thumbnails li.new .thumbnail:hover{text-decoration:none}.middlewares .github{background-color:#f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;padding:2px 10px}.middlewares .github .result{background-color:#fff}.middlewares .config textarea{display:block;width:430px;height:70px;margin:20px 0 0 0}.middlewares .CodeMirror{border:3px dashed #f5f5f5;padding:11px 19px}.middleware-list .middleware{background-color:#fff;border:1px solid #2e2c31;color:#2e2c31;display:block;position:relative;padding:2px 10px;margin:10px 0;min-height:65px;overflow:hidden;cursor:move;margin-bottom:10px}.pipeline-container{margin:0 0 20px 0}.pipeline-container i{vertical-align:initial}.pipeline-box{float:left}.pipeline-wrap{border:1px solid #2e2c31;padding:40px 0;margin:20px 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.pipeline-wrap .pipeline{-webkit-box-flex:2;-moz-box-flex:2;-ms-flex:2;-webkit-flex:2;flex:2;margin:0 10px;position:relative}.pipeline-wrap .pipeline .middleware-list{min-height:100px;margin-bottom:10px}.pipeline-wrap .pipeline.changed{border-color:#f6a201;background:#fffcf7}.arrow{width:80px;align-self:center;text-align:center}.arrow [class*='arrow-']:before{font-family:FontAwesome;font-size:50px;font-style:normal;color:#bbbfc0}.arrow .arrow-up:before{content:"\f062"}.arrow .arrow-down:before{content:"\f063"}.service,.app{color:#fff;font-weight:normal;margin:0;text-align:center;padding:20px}.app{background:#2e2c31}.service{background:#db3c4e}.middleware-list{margin:0 20px;list-style:none;margin:0}.middleware-list .middleware.on{border-color:#2e2c31;color:#2e2c31}.middleware-list .middleware.on a,.middleware-list .middleware.on button{color:#2e2c31}.middleware-list .middleware.off{border-color:#bbbfc0;color:#bbbfc0}.middleware-list .middleware.off button{color:#bbbfc0}.middleware-list .middleware .header{position:relative}.middleware-list .middleware .controls{margin:0;position:absolute;right:0;top:0}.middleware-list .middleware .controls li{display:inline-block}.middleware-list .middleware .controls button{padding:0}.middleware-list .middleware .controls button:hover{text-decoration:none}.middleware-pipeline.ui-sortable-placeholder,.drag-middleware{text-align:center;border:1px dashed #bbbfc0;color:#bbbfc0;font-size:17.5px}.new-middleware{width:100%;min-height:65px}.middleware-pipeline.ui-sortable-placeholder{visibility:visible !important}.middleware-pipeline.ui-sortable-placeholder:before{content:"Drop Here";line-height:4;border:none}.drag-middleware{position:absolute;top:10%;left:0%;width:100%;line-height:4}.middleware-stack{float:right;border:1px solid #bbbfc0;padding:11px 19px}.middleware-stack .middleware-list{min-height:400px;position:relative}.middleware-stack .middleware{border:1px dashed #bbbfc0}.middleware-stack .middleware:before{font-family:FontAwesome;content:"\f047";float:right}.middleware-stack .middleware-controls{min-width:235px}.analytics .thumbnails li{margin-left:0;padding:0;width:100%}.analytics .thumbnails .new{border-width:3px;border-style:dashed}.analytics .thumbnails .new .caption{text-align:center;font-size:17.5px}.slug-list{list-style:none;margin:20px 0}.slug-list pre{margin:0}.slug-item{border:1px solid #2e2c31;margin-bottom:0.25em;position:relative}.slug-item.highlighted{border-color:#1bb0ae}.slug-item.highlighted .slug-item-title,.slug-item.highlighted .slug-item-title a,.slug-item.highlighted .action-button{color:#1bb0ae}.slug-item.opened{border-style:dashed}.slug-item-content .wrap{padding:20px}.slug-item-heading{padding:0.5em 4em 0.5em 2em;position:relative}.slug-item-heading .truncated .rest{position:absolute;background-color:white;white-space:nowrap;padding:0.5em 0;margin-top:-0.5em}.slug-item-heading .truncated:hover .rest{display:inline-block}.slug-item-heading .service-code{opacity:0.8;vertical-align:middle}.slug-item:hover .slug-item-heading .service-code{opacity:1}.slug-item-heading .slug-item-title{margin:0}.slug-item-heading .slug-item-title a{color:#5f5f5f}.slug-item-heading .slug-item-check{position:absolute;left:0.5em;top:0.5em}.slug-item-dropdown{background:#2e2c31;border:none;color:#fff}.slug-item-dropdown>li>a,.slug-item-dropdown>li>button{color:#fff}.slug-item-actions{position:absolute;right:1em;top:1em}.slug-item-actions .dropdown-menu{left:inherit;right:0}.action-button{background:none;border:none;font-size:17.5px;padding:0}.slug-item-toggle{width:100%;cursor:pointer}.slug-item-details .detail{margin-right:1em;font-size:10.5px}.notification .detail.log-level{display:inline-block;min-width:3em}.notification .detail.channel{display:inline-block;min-width:4em}.search-box{margin:0 0 20px 0}.search-box .search-input{width:98%;padding-left:1%;padding-right:1%;margin:0 0 20px 0}.search-box .search-tokens{float:left;margin-right:5px}.search-box .search-tokens ul{margin:0}.search-box .search-tokens .token-active{border:1px solid #bbbfc0;padding:0px 6px;margin:0 0 20px 0}.search-box .controls{float:right;text-align:right}.search-box .controls .switch{width:150px}.search-tokens{margin:0}.search-tokens .show-mode,.search-tokens .edit-mode{display:inline-block;vertical-align:middle}.search-tokens a{text-decoration:none}.search-tokens a,.search-tokens a .icon{vertical-align:middle}.token{display:inline-block;padding:5px;margin:2px;border:1px solid #bbbfc0;color:#bbbfc0}.token form{margin:0}.token a,.token button{padding:0;line-height:1;color:#bbbfc0}.token input{min-width:70px;border:none;box-shadow:none;padding:0}.token.new{border-color:#1bb0ae;color:#1bb0ae}.token.new input{font-weight:bold;width:70px}.token.new input:not(:invalid){color:#1bb0ae}.token.new input:focus{width:auto}.token.new a,.token.new button{color:#1bb0ae}.token.active,.slug-item.highlighted .token.btn[type=highlight],.slug-item.highlighted .token[type=highlight].demo-button,.slug-item.highlighted .token[type=highlight].create-demo,.slug-item.highlighted .token[type=highlight].go-to-demo,.slug-item.highlighted .welcome .token[type=highlight].action,.welcome .slug-item.highlighted .token[type=highlight].action{border-color:#2e2c31;color:#2e2c31}.token.active a,.slug-item.highlighted .token.btn[type=highlight] a,.slug-item.highlighted .token[type=highlight].demo-button a,.slug-item.highlighted .token[type=highlight].create-demo a,.slug-item.highlighted .token[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .token[type=highlight].action a,.welcome .slug-item.highlighted .token[type=highlight].action a{color:#2e2c31}.token.editing{border-style:dashed}.token-suggestions .token{border-color:#1bb0ae;color:#1bb0ae}.token-suggestions .token a,.token-suggestions .token button{color:#1bb0ae}.token-suggestions .token .toggle{display:none}.token-suggestions .token .show-mode{cursor:pointer}.side-menu{margin:0 0 20px 0;list-style:none}.side-menu a{color:#2e2c31}.side-menu a:hover,.side-menu a:focus{text-decoration:none}.side-menu li:not(.header){margin:0 0 5px 0;position:relative}.side-menu li:not(.header)>a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:8px 12px;margin:0;padding-right:0}.side-menu .header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.side-menu .header:hover,.side-menu .header:focus{background:none}.side-menu+.header{margin-top:9px}.side-menu li.divider{padding:0}.side-menu-filter{border:1px solid #2e2c31;color:#2e2c31}.side-menu-filter:hover,.side-menu-filter:focus{background-color:#db3c4e;border-color:#db3c4e;color:#fff}.side-menu-filter:hover a,.side-menu-filter:focus a{color:#fff}.side-menu-filter.active,.slug-item.highlighted .side-menu-filter.btn[type=highlight],.slug-item.highlighted .side-menu-filter[type=highlight].demo-button,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action,.side-menu-filter.active:hover,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover{color:#fff;background-color:#2e2c31}.side-menu-filter.active a,.slug-item.highlighted .side-menu-filter.btn[type=highlight] a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action a,.side-menu-filter.active:hover a,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover a{color:#fff;background-color:transparent}.side-menu-filter .edit-form{display:none;margin:0;padding:8px 12px}.side-menu-filter .edit-form input{margin:0;padding:0 2px;width:75%}.side-menu-filter .controls{display:none;position:absolute;top:7px;right:12px}.side-menu-filter .controls a{display:inline-block;width:20px;vertical-align:middle;text-align:center}.side-menu-filter.editable:hover .select-mode,.side-menu-filter.editable:focus .select-mode{display:block}.side-menu-filter.editable:hover:not(.active) .active-button,.side-menu-filter.editable:focus:not(.active) .active-button{display:none}.side-menu-filter.active .select-mode,.slug-item.highlighted .side-menu-filter.btn[type=highlight] .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo .select-mode,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action .select-mode,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action .select-mode{display:block}.side-menu-filter.editable.editing .edit-mode,.side-menu-filter.editable.editing .edit-form,.side-menu-filter.editable.editing:hover .edit-mode,.side-menu-filter.editable.editing:hover .edit-form{display:block}.side-menu-filter.editable.editing .select-mode,.side-menu-filter.editable.editing:hover .select-mode{display:none}.side-menu-filter .slug-confirm-box{background:#f6a201;position:absolute;right:0;top:0;width:80px}.side-menu-filter .slug-confirmation{color:#932937}.charts{list-style:none;margin:0}.charts .expanded{width:100%;margin-left:0}.charts .expanded .plot{min-height:400px}.charts .normal{width:49%;display:inline-block}.charts .normal:last-child{margin-left:2%}.charts .normal .chart.new a{line-height:15}.charts .normal .chart .plot{height:225px}.chart{border:1px solid #bbbfc0;padding:1em;margin-bottom:20px}.chart .caption{position:relative}.chart .caption h4{text-align:center}.chart .caption .edit-chart{display:block;position:absolute;right:0;bottom:0}.chart.new{border-width:2px;border-style:dashed;box-shadow:none;display:block;text-align:center;line-height:15;font-size:17.5px;border-width:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;cursor:pointer}.chart.new:hover{text-decoration:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.chart-edit{width:800px;left:40%}.chart-edit .modal-header h3,.chart-edit .modal-header a,.chart-edit .modal-header input{display:inline-block}.chart-edit ul{margin-left:0}.chart-edit fieldset{border-bottom:1px solid #f5f5f5;padding-top:20px}.chart-edit fieldset h4{margin-top:5px}.graph{overflow:hidden}.rickshaw_graph .detail .super-label{font-family:Arial, sans-serif;border-radius:3px;padding:6px;border:1px solid #e0e0e0;font-size:12px;position:absolute;white-space:nowrap;background-color:white;background-color:rgba(255,255,255,0.75)}.rickshaw_graph .detail .super-label.left{left:10px}.rickshaw_graph .detail .super-label.right{right:10px}.rickshaw_graph .detail .title,.rickshaw_graph .detail .value{font-weight:bold}.rickshaw_graph .detail .swatch{width:10px;height:10px;border:1px solid rgba(0,0,0,0.2);display:inline-block;margin-right:3px;border-radius:2px}.service-demo ul{list-style:none;margin:0}.service-demo ul li{margin:0 0 5px 0}.service-demo button{font-size:21px}.service-demo button:hover{text-decoration:none}.service-demo button:disabled{color:#555}.service-demo button:disabled:hover{color:#555}.service-demo .call{margin-left:45px;padding:0 0 5px 0}.service-demo .loading{font-size:15.4px}.service-demo .status-code{margin-left:-45px;width:40px;vertical-align:middle;visibility:hidden}.service-demo .visible{visibility:visible}.service-demo .demo-response{color:#555}.demo-block{border:1px solid #16a0ba;padding:11px 19px;margin-bottom:20px;position:relative}.demo-block .demo-block-remove{color:#16a0ba}.demo-block h4{color:#16a0ba;border-bottom:1px solid #16a0ba;padding-bottom:10px;padding-left:20px;margin-top:0;margin-left:-20px;margin-right:-20px}.demo-block i{font-size:17.5px}.demo-block ul{list-style:none}#setup-modal{position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff}#setup-form{padding:60px}.dashboard-box{padding:1em;border:1px solid #bbbfc0;display:block;margin-bottom:20px}.dashboard-box:hover,.dashboard-box:focus{text-decoration:none}.dashboard-box ul,.dashboard-box ol{list-style:none;margin:0}.dashboard-box ul li,.dashboard-box ol li{padding:2px 10px;padding-left:0}.dashboard-box ul li:nth-child(odd),.dashboard-box ol li:nth-child(odd){background:#f5f5f5}.dashboard-box ul .cell,.dashboard-box ol .cell{padding:2px 10px}.dashboard-box a:hover,.dashboard-box a:focus{text-decoration:none}.dashboard-box{height:22em}.dashboard-box .no-records{margin-top:80px;margin-bottom:80px}.dashboard-box .no-records,.dashboard-box .new-service{display:block;text-align:center;vertical-align:middle}.dashboard-box-title{margin:0 -14px 7px -14px;padding:0 14px 7px 14px;border-bottom:1px solid #bbbfc0}.small-dashboard-boxes{text-align:center}.small-dashboard-boxes .number,.small-dashboard-boxes .box-label{display:block;line-height:1}.small-dashboard-boxes .number{font-size:4em;font-weight:bold;color:#2e2c31}.small-dashboard-boxes .number.error{color:#932937}.small-dashboard-boxes .number.ok{color:#00b056}.selected-dashboard{height:250px}.dashboard-box-mini{height:5em}.dashboard-box-small{height:16.5em}.notification-link,.trace-link{color:#2e2c31}#service-middlewares h3{line-height:2em}#service-middlewares label{font:inherit;display:inline-block}#service-middlewares input[type='checkbox']{margin-right:1em}.drag-handle{top:0;bottom:0;left:0;width:1em;position:absolute;cursor:move;background:#696969}.service-middleware{position:relative;list-style:none;border:1px solid black;margin-bottom:1em;padding-left:2em;padding-right:0;background-color:rgba(255,255,255,0.8)}.service-middleware.disabled,.service-middleware.btn.loading,.service-middleware.loading.demo-button,.service-middleware.loading.create-demo,.service-middleware.loading.go-to-demo,.welcome .service-middleware.loading.action{background-color:rgba(105,105,105,0.4);opacity:0.9}.CodeMirror-autoresize .CodeMirror{border:1px solid #eee;height:auto}.CodeMirror-autoresize .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.animated.leave{position:absolute}.endpoint-example{position:relative}.endpoint-example .copy-to-clipboard{position:absolute;right:0;top:0}a.destroy{float:right;padding-top:9.5px;padding-right:9.5px}.tab-content{overflow:visible}.middleware-spec-list{list-style-type:none}.middleware-spec{height:100px}.edit-middleware label input,.edit-middleware label textarea{display:block}html{overflow-y:scroll}a.help:hover{text-decoration:none;cursor:pointer}a.help+div{font-size:14px}.icon-help{font-size:17px}.icon-help:after{content:"\f059"}.filter-list .filter.selected a{background-color:blue}.truncated .rest{display:none}.truncated:hover .rest{display:inline}.truncated:hover .dots{display:none}.action[type=delete].confirm-delete .icon-trash{margin-right:.5em;vertical-align:text-top}.tabbable .nav-tabs a{cursor:pointer;border-radius:0}.tabbable .nav-tabs .invalid a{background-color:red}.analytics-list{list-style:none}.analytics-list li{margin-bottom:5px}.analytics-list li input,.analytics-list li select{margin-bottom:0}.collapse{min-height:0 !important}.side-menu li a{cursor:pointer}.tooltip{z-index:10000}
+ */@-ms-viewport{width:device-width}.hidden,.token-suggestions .token.disabled,.token-suggestions .token.btn.loading,.token-suggestions .token.loading.demo-button,.token-suggestions .token.loading.create-demo,.token-suggestions .token.loading.go-to-demo,.token-suggestions .welcome .token.loading.action,.welcome .token-suggestions .token.loading.action{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media (min-width: 768px) and (max-width: 979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media (max-width: 767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}.clearfix,.wizard,.slug-grid,.slug-grid-item,.welcome,.services .controls,.middlewares .thumbnails li .thumbnail .controls{*zoom:1}.clearfix:before,.wizard:before,.slug-grid:before,.slug-grid-item:before,.welcome:before,.services .controls:before,.middlewares .thumbnails li .thumbnail .controls:before,.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{display:table;content:"";line-height:0}.clearfix:after,.wizard:after,.slug-grid:after,.slug-grid-item:after,.welcome:after,.services .controls:after,.middlewares .thumbnails li .thumbnail .controls:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span1{width:70px}.span2,.search-box .controls{width:170px}.span3{width:270px}.span4,.middleware-stack{width:370px}.span5{width:470px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:570px}.span7{width:670px}.span8,.pipeline-box{width:770px}.span9{width:870px}.span10,.search-box .search-tokens{width:970px}.span11{width:1070px}.span12{width:1170px}.offset1{margin-left:130px}.offset2{margin-left:230px}.offset3{margin-left:330px}.offset4{margin-left:430px}.offset5{margin-left:530px}.offset6{margin-left:630px}.offset7{margin-left:730px}.offset8{margin-left:830px}.offset9{margin-left:930px}.offset10{margin-left:1030px}.offset11{margin-left:1130px}.offset12{margin-left:1230px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.5641%;*margin-left:2.51091%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.5641%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.98291%;*width:5.92971%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.52991%;*width:14.47672%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:23.07692%;*width:23.02373%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.62393%;*width:31.57074%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.17094%;*width:40.11775%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.71795%;*width:48.66476%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.26496%;*width:57.21177%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.81197%;*width:65.75877%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.35897%;*width:74.30578%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.90598%;*width:82.85279%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.45299%;*width:91.3998%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.11111%;*margin-left:11.00473%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.54701%;*margin-left:8.44063%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.65812%;*margin-left:19.55174%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.09402%;*margin-left:16.98763%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.20513%;*margin-left:28.09875%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.64103%;*margin-left:25.53464%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:36.75214%;*margin-left:36.64575%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.18803%;*margin-left:34.08165%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.29915%;*margin-left:45.19276%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.73504%;*margin-left:42.62866%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:53.84615%;*margin-left:53.73977%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.28205%;*margin-left:51.17567%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.39316%;*margin-left:62.28678%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.82906%;*margin-left:59.72268%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:70.94017%;*margin-left:70.83379%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.37607%;*margin-left:68.26969%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.48718%;*margin-left:79.3808%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:76.92308%;*margin-left:76.81669%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.03419%;*margin-left:87.92781%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.47009%;*margin-left:85.3637%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.5812%;*margin-left:96.47481%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.01709%;*margin-left:93.91071%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.12821%;*margin-left:105.02182%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.5641%;*margin-left:102.45772%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:156px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:356px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:556px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:756px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:956px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails,.control-box .thumbnails,.welcome .description .thumbnails,.pipeline-container .thumbnails,.search-box .thumbnails{margin-left:0}}@media (min-width: 768px) and (max-width: 979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span1{width:42px}.span2,.search-box .controls{width:104px}.span3{width:166px}.span4,.middleware-stack{width:228px}.span5{width:290px}.span6,.middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .action,.welcome .middleware-stack .middleware-controls .action{width:352px}.span7{width:414px}.span8,.pipeline-box{width:476px}.span9{width:538px}.span10,.search-box .search-tokens{width:600px}.span11{width:662px}.span12{width:724px}.offset1{margin-left:82px}.offset2{margin-left:144px}.offset3{margin-left:206px}.offset4{margin-left:268px}.offset5{margin-left:330px}.offset6{margin-left:392px}.offset7{margin-left:454px}.offset8{margin-left:516px}.offset9{margin-left:578px}.offset10{margin-left:640px}.offset11{margin-left:702px}.offset12{margin-left:764px}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%;*zoom:1}.row-fluid:before,.control-box:before,.welcome .description:before,.pipeline-container:before,.search-box:before,.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{display:table;content:"";line-height:0}.row-fluid:after,.control-box:after,.welcome .description:after,.pipeline-container:after,.search-box:after{clear:both}.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.76243%;*margin-left:2.70924%}.row-fluid [class*="span"]:first-child,.control-box [class*="span"]:first-child,.welcome .description [class*="span"]:first-child,.pipeline-container [class*="span"]:first-child,.search-box [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"],.control-box .controls-row [class*="span"]+[class*="span"],.welcome .description .controls-row [class*="span"]+[class*="span"],.pipeline-container .controls-row [class*="span"]+[class*="span"],.search-box .controls-row [class*="span"]+[class*="span"]{margin-left:2.76243%}.row-fluid .span1,.control-box .span1,.welcome .description .span1,.pipeline-container .span1,.search-box .span1{width:5.8011%;*width:5.74791%}.row-fluid .span2,.control-box .span2,.welcome .description .span2,.pipeline-container .span2,.search-box .span2,.search-box .controls{width:14.36464%;*width:14.31145%}.row-fluid .span3,.control-box .span3,.welcome .description .span3,.pipeline-container .span3,.search-box .span3{width:22.92818%;*width:22.87499%}.row-fluid .span4,.control-box .span4,.welcome .description .span4,.pipeline-container .span4,.search-box .span4,.row-fluid .middleware-stack,.control-box .middleware-stack,.welcome .description .middleware-stack,.pipeline-container .middleware-stack,.search-box .middleware-stack{width:31.49171%;*width:31.43852%}.row-fluid .span5,.control-box .span5,.welcome .description .span5,.pipeline-container .span5,.search-box .span5{width:40.05525%;*width:40.00206%}.row-fluid .span6,.control-box .span6,.welcome .description .span6,.pipeline-container .span6,.search-box .span6,.row-fluid .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .row-fluid .btn,.control-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .control-box .btn,.welcome .description .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .welcome .description .btn,.pipeline-container .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .pipeline-container .btn,.search-box .middleware-stack .middleware-controls .btn,.middleware-stack .middleware-controls .search-box .btn,.row-fluid .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .row-fluid .demo-button,.control-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .control-box .demo-button,.welcome .description .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .welcome .description .demo-button,.pipeline-container .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .pipeline-container .demo-button,.search-box .middleware-stack .middleware-controls .demo-button,.middleware-stack .middleware-controls .search-box .demo-button,.row-fluid .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .row-fluid .create-demo,.control-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .control-box .create-demo,.welcome .description .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .welcome .description .create-demo,.pipeline-container .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .pipeline-container .create-demo,.search-box .middleware-stack .middleware-controls .create-demo,.middleware-stack .middleware-controls .search-box .create-demo,.row-fluid .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .row-fluid .go-to-demo,.control-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .control-box .go-to-demo,.welcome .description .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .welcome .description .go-to-demo,.pipeline-container .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .pipeline-container .go-to-demo,.search-box .middleware-stack .middleware-controls .go-to-demo,.middleware-stack .middleware-controls .search-box .go-to-demo,.row-fluid .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .row-fluid .action,.control-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .control-box .action,.middleware-stack .middleware-controls .welcome .description .action,.pipeline-container .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .pipeline-container .action,.search-box .middleware-stack .middleware-controls .welcome .action,.middleware-stack .middleware-controls .welcome .search-box .action,.row-fluid .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .row-fluid .action,.control-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .control-box .action,.welcome .description .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .description .action,.pipeline-container .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .pipeline-container .action,.search-box .welcome .middleware-stack .middleware-controls .action,.welcome .middleware-stack .middleware-controls .search-box .action{width:48.61878%;*width:48.56559%}.row-fluid .span7,.control-box .span7,.welcome .description .span7,.pipeline-container .span7,.search-box .span7{width:57.18232%;*width:57.12913%}.row-fluid .span8,.control-box .span8,.welcome .description .span8,.pipeline-container .span8,.search-box .span8,.row-fluid .pipeline-box,.control-box .pipeline-box,.welcome .description .pipeline-box,.pipeline-container .pipeline-box,.search-box .pipeline-box{width:65.74586%;*width:65.69266%}.row-fluid .span9,.control-box .span9,.welcome .description .span9,.pipeline-container .span9,.search-box .span9{width:74.30939%;*width:74.2562%}.row-fluid .span10,.control-box .span10,.welcome .description .span10,.pipeline-container .span10,.search-box .span10,.search-box .search-tokens{width:82.87293%;*width:82.81974%}.row-fluid .span11,.control-box .span11,.welcome .description .span11,.pipeline-container .span11,.search-box .span11{width:91.43646%;*width:91.38327%}.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;*width:99.94681%}.row-fluid .offset1,.control-box .offset1,.welcome .description .offset1,.pipeline-container .offset1,.search-box .offset1{margin-left:11.32597%;*margin-left:11.21958%}.row-fluid .offset1:first-child,.control-box .offset1:first-child,.welcome .description .offset1:first-child,.pipeline-container .offset1:first-child,.search-box .offset1:first-child{margin-left:8.56354%;*margin-left:8.45715%}.row-fluid .offset2,.control-box .offset2,.welcome .description .offset2,.pipeline-container .offset2,.search-box .offset2{margin-left:19.8895%;*margin-left:19.78312%}.row-fluid .offset2:first-child,.control-box .offset2:first-child,.welcome .description .offset2:first-child,.pipeline-container .offset2:first-child,.search-box .offset2:first-child{margin-left:17.12707%;*margin-left:17.02069%}.row-fluid .offset3,.control-box .offset3,.welcome .description .offset3,.pipeline-container .offset3,.search-box .offset3{margin-left:28.45304%;*margin-left:28.34666%}.row-fluid .offset3:first-child,.control-box .offset3:first-child,.welcome .description .offset3:first-child,.pipeline-container .offset3:first-child,.search-box .offset3:first-child{margin-left:25.69061%;*margin-left:25.58422%}.row-fluid .offset4,.control-box .offset4,.welcome .description .offset4,.pipeline-container .offset4,.search-box .offset4{margin-left:37.01657%;*margin-left:36.91019%}.row-fluid .offset4:first-child,.control-box .offset4:first-child,.welcome .description .offset4:first-child,.pipeline-container .offset4:first-child,.search-box .offset4:first-child{margin-left:34.25414%;*margin-left:34.14776%}.row-fluid .offset5,.control-box .offset5,.welcome .description .offset5,.pipeline-container .offset5,.search-box .offset5{margin-left:45.58011%;*margin-left:45.47373%}.row-fluid .offset5:first-child,.control-box .offset5:first-child,.welcome .description .offset5:first-child,.pipeline-container .offset5:first-child,.search-box .offset5:first-child{margin-left:42.81768%;*margin-left:42.7113%}.row-fluid .offset6,.control-box .offset6,.welcome .description .offset6,.pipeline-container .offset6,.search-box .offset6{margin-left:54.14365%;*margin-left:54.03726%}.row-fluid .offset6:first-child,.control-box .offset6:first-child,.welcome .description .offset6:first-child,.pipeline-container .offset6:first-child,.search-box .offset6:first-child{margin-left:51.38122%;*margin-left:51.27483%}.row-fluid .offset7,.control-box .offset7,.welcome .description .offset7,.pipeline-container .offset7,.search-box .offset7{margin-left:62.70718%;*margin-left:62.6008%}.row-fluid .offset7:first-child,.control-box .offset7:first-child,.welcome .description .offset7:first-child,.pipeline-container .offset7:first-child,.search-box .offset7:first-child{margin-left:59.94475%;*margin-left:59.83837%}.row-fluid .offset8,.control-box .offset8,.welcome .description .offset8,.pipeline-container .offset8,.search-box .offset8{margin-left:71.27072%;*margin-left:71.16434%}.row-fluid .offset8:first-child,.control-box .offset8:first-child,.welcome .description .offset8:first-child,.pipeline-container .offset8:first-child,.search-box .offset8:first-child{margin-left:68.50829%;*margin-left:68.4019%}.row-fluid .offset9,.control-box .offset9,.welcome .description .offset9,.pipeline-container .offset9,.search-box .offset9{margin-left:79.83425%;*margin-left:79.72787%}.row-fluid .offset9:first-child,.control-box .offset9:first-child,.welcome .description .offset9:first-child,.pipeline-container .offset9:first-child,.search-box .offset9:first-child{margin-left:77.07182%;*margin-left:76.96544%}.row-fluid .offset10,.control-box .offset10,.welcome .description .offset10,.pipeline-container .offset10,.search-box .offset10{margin-left:88.39779%;*margin-left:88.29141%}.row-fluid .offset10:first-child,.control-box .offset10:first-child,.welcome .description .offset10:first-child,.pipeline-container .offset10:first-child,.search-box .offset10:first-child{margin-left:85.63536%;*margin-left:85.52898%}.row-fluid .offset11,.control-box .offset11,.welcome .description .offset11,.pipeline-container .offset11,.search-box .offset11{margin-left:96.96133%;*margin-left:96.85494%}.row-fluid .offset11:first-child,.control-box .offset11:first-child,.welcome .description .offset11:first-child,.pipeline-container .offset11:first-child,.search-box .offset11:first-child{margin-left:94.1989%;*margin-left:94.09251%}.row-fluid .offset12,.control-box .offset12,.welcome .description .offset12,.pipeline-container .offset12,.search-box .offset12{margin-left:105.52486%;*margin-left:105.41848%}.row-fluid .offset12:first-child,.control-box .offset12:first-child,.welcome .description .offset12:first-child,.pipeline-container .offset12:first-child,.search-box .offset12:first-child{margin-left:102.76243%;*margin-left:102.65605%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}input.span2,.search-box input.controls,textarea.span2,.search-box textarea.controls,.uneditable-input.span2,.search-box .uneditable-input.controls{width:90px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span4,input.middleware-stack,textarea.span4,textarea.middleware-stack,.uneditable-input.span4,.uneditable-input.middleware-stack{width:214px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span6,.middleware-stack .middleware-controls input.btn,.middleware-stack .middleware-controls input.demo-button,.middleware-stack .middleware-controls input.create-demo,.middleware-stack .middleware-controls input.go-to-demo,.middleware-stack .middleware-controls .welcome input.action,.welcome .middleware-stack .middleware-controls input.action,textarea.span6,.middleware-stack .middleware-controls textarea.btn,.middleware-stack .middleware-controls textarea.demo-button,.middleware-stack .middleware-controls textarea.create-demo,.middleware-stack .middleware-controls textarea.go-to-demo,.middleware-stack .middleware-controls .welcome textarea.action,.welcome .middleware-stack .middleware-controls textarea.action,.uneditable-input.span6,.middleware-stack .middleware-controls .uneditable-input.btn,.middleware-stack .middleware-controls .uneditable-input.demo-button,.middleware-stack .middleware-controls .uneditable-input.create-demo,.middleware-stack .middleware-controls .uneditable-input.go-to-demo,.middleware-stack .middleware-controls .welcome .uneditable-input.action,.welcome .middleware-stack .middleware-controls .uneditable-input.action{width:338px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span8,input.pipeline-box,textarea.span8,textarea.pipeline-box,.uneditable-input.span8,.uneditable-input.pipeline-box{width:462px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span10,.search-box input.search-tokens,textarea.span10,.search-box textarea.search-tokens,.uneditable-input.span10,.search-box .uneditable-input.search-tokens{width:586px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}}@media (max-width: 767px){body{padding-left:20px;padding-right:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px}.container-fluid{padding:0}.dl-horizontal dt,.trace-response dt,.trace-request dt{float:none;clear:none;width:auto;text-align:left}.dl-horizontal dd,.trace-response dd,.trace-request dd{margin-left:0}.container{width:auto}.row-fluid,.control-box,.welcome .description,.pipeline-container,.search-box{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"],.control-box [class*="span"],.welcome .description [class*="span"],.pipeline-container [class*="span"],.search-box [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12,.control-box .span12,.welcome .description .span12,.pipeline-container .span12,.search-box .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child,.control-box [class*="offset"]:first-child,.welcome .description [class*="offset"]:first-child,.pipeline-container [class*="offset"]:first-child,.search-box [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media (max-width: 480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0)}.page-header h1 small,.page-header .service-select small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-left:10px;padding-right:10px}.media .pull-left,.demo-services .demo-service .pull-left,.media .pull-right,.demo-services .demo-service .pull-right,.media .demo-button,.demo-services .demo-service .demo-button,.media .create-demo,.demo-services .demo-service .create-demo,.media .go-to-demo,.demo-services .demo-service .go-to-demo{float:none;display:block;margin-bottom:10px}.media-object,.demo-services .demo-service-logo,.demo-services .demo-service-body{margin-right:0;margin-left:0}.modal{top:10px;left:10px;right:10px}.modal-header .close,.modal-header .demo-block .demo-block-remove,.demo-block .modal-header .demo-block-remove{padding:10px;margin:-10px}.carousel-caption{position:static}}@media (max-width: 979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-top .main-menu-inner,.navbar-fixed-bottom .navbar-inner,.navbar-fixed-bottom .main-menu-inner{padding:5px}.navbar .container,.main-menu .container{width:auto;padding:0}.navbar .brand,.main-menu .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav,.nav-collapse .service-nav{float:none;margin:0 0 10px}.nav-collapse .nav>li,.nav-collapse .service-nav>li{float:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical,.nav-collapse .service-nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header,.nav-collapse .service-nav .nav-header{color:#fff;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .service-nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn,.nav-collapse .demo-button,.nav-collapse .create-demo,.nav-collapse .go-to-demo,.nav-collapse .welcome .action,.welcome .nav-collapse .action{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .service-nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .service-nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#db3c4e}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .service-nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#fff}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .service-nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .service-nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#2e2c31}.nav-collapse.in .btn-group{margin-top:5px;padding:0}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .service-nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after,.nav-collapse .service-nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #db3c4e;border-bottom:1px solid #db3c4e;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#2e2c31;border-bottom-color:#2e2c31}.navbar .nav-collapse .nav.pull-right,.main-menu .nav-collapse .nav.pull-right,.navbar .nav-collapse .nav.demo-button,.main-menu .nav-collapse .nav.demo-button,.navbar .nav-collapse .nav.create-demo,.main-menu .nav-collapse .nav.create-demo,.navbar .nav-collapse .create-demo.service-nav,.main-menu .nav-collapse .create-demo.service-nav,.navbar .nav-collapse .nav.go-to-demo,.main-menu .nav-collapse .nav.go-to-demo,.navbar .nav-collapse .go-to-demo.service-nav,.main-menu .nav-collapse .go-to-demo.service-nav,.navbar .nav-collapse .demo-button.service-nav,.main-menu .nav-collapse .demo-button.service-nav,.navbar .nav-collapse .pull-right.service-nav,.main-menu .nav-collapse .pull-right.service-nav{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0}.navbar .btn-navbar,.main-menu .btn-navbar{display:block}.navbar-static .navbar-inner,.navbar-static .main-menu-inner{padding-left:10px;padding-right:10px}}@media (min-width: 980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.switch .slide-button{display:none}.switch{display:inline-block;cursor:pointer;vertical-align:middle;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center;position:relative;display:inline-block;padding-bottom:4px;padding-top:4px;font-size:14px;line-height:20px;vertical-align:middle}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch .slide-button{display:block;position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%;-webkit-transition:left 0.5s;-moz-transition:left 0.5s;-o-transition:left 0.5s;transition:left 0.5s}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.switch input:focus+label{outline:1px dotted #888}.switch{display:inline-block;cursor:pointer;border:1px solid;position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#fff;background-image:-moz-linear-gradient(top, #fff, #fff);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#fff));background-image:-webkit-linear-gradient(top, #fff, #fff);background-image:-o-linear-gradient(top, #fff, #fff);background-image:linear-gradient(to bottom, #fff, #fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFFFFFFF', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #bbbfc0;border-bottom-color:#a1a6a7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-image:none;min-width:100px}.switch:hover,.switch:focus,.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action,.switch.disabled,.switch.btn.loading,.switch.loading.demo-button,.switch.loading.create-demo,.switch.loading.go-to-demo,.welcome .switch.loading.action,.switch[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.switch:active,.switch.active,.slug-item.highlighted .switch.btn[type=highlight],.slug-item.highlighted .switch[type=highlight].demo-button,.slug-item.highlighted .switch[type=highlight].create-demo,.slug-item.highlighted .switch[type=highlight].go-to-demo,.slug-item.highlighted .welcome .switch[type=highlight].action,.welcome .slug-item.highlighted .switch[type=highlight].action{background-color:#e6e6e6 \9}.switch.switch-mini{min-width:72px}.switch.switch-mini label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.switch.switch-small{min-width:80px}.switch.switch-small label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.switch.switch-large{min-width:120px}.switch.switch-large label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.switch.deactivate{opacity:0.5;filter:alpha(opacity=50);cursor:default !important}.switch.deactivate label,.switch.deactivate span{cursor:default !important}.switch:hover{background:auto}.switch label{text-shadow:none}.switch input:checked+label{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.switch .slide-button{border-width:1px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1bb0ae;background-image:-moz-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#1bb0ae), to(#1bb0ae));background-image:-webkit-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:-o-linear-gradient(top, #1bb0ae, #1bb0ae);background-image:linear-gradient(to bottom, #1bb0ae, #1bb0ae);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF1BB0AE', endColorstr='#FF1BB0AE', GradientType=0);border-color:#1bb0ae #1bb0ae #116e6c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#1bb0ae;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.switch .slide-button:hover,.switch .slide-button:focus,.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action,.switch .slide-button.disabled,.switch .slide-button.btn.loading,.switch .slide-button.loading.demo-button,.switch .slide-button.loading.create-demo,.switch .slide-button.loading.go-to-demo,.switch .welcome .slide-button.loading.action,.welcome .switch .slide-button.loading.action,.switch .slide-button[disabled]{color:#fff;background-color:#1bb0ae;*background-color:#189a98}.switch .slide-button:active,.switch .slide-button.active,.switch .slug-item.highlighted .slide-button.btn[type=highlight],.slug-item.highlighted .switch .slide-button.btn[type=highlight],.switch .slug-item.highlighted .slide-button[type=highlight].demo-button,.slug-item.highlighted .switch .slide-button[type=highlight].demo-button,.switch .slug-item.highlighted .slide-button[type=highlight].create-demo,.slug-item.highlighted .switch .slide-button[type=highlight].create-demo,.switch .slug-item.highlighted .slide-button[type=highlight].go-to-demo,.slug-item.highlighted .switch .slide-button[type=highlight].go-to-demo,.switch .slug-item.highlighted .welcome .slide-button[type=highlight].action,.slug-item.highlighted .welcome .switch .slide-button[type=highlight].action,.switch .welcome .slug-item.highlighted .slide-button[type=highlight].action,.welcome .slug-item.highlighted .switch .slide-button[type=highlight].action{background-color:#148482 \9}.switch .slide-button:hover,.switch .slide-button:focus{color:#333;text-decoration:none;background-position:0 -15px}html,body{height:100%}h1,.service-select{font-size:22px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}a:hover,a:focus{text-decoration:none}*{box-shadow:none !important;text-shadow:none !important;border-radius:0 !important}#wrap{min-height:100%;padding-bottom:20px;height:auto !important;height:100%;margin:0 auto -60px}.container{max-width:1200px;margin:0 auto}#header{margin:0}#content{max-width:1200px;margin:0 auto;padding-bottom:50px}#footer{color:#fff;padding:20px 0 10px 0;background-color:#2e2c31;text-align:center;font-size:11.9px}#footer .container-fluid{max-width:1200px;margin:0 auto}#footer .credit{margin:15px 0}.slug-confirm .slug-confirm-box{background:#f6a201;color:#fff;font-weight:bold;display:none;padding:2px 10px;text-align:center}.slug-confirm .slug-confirm-box a{color:#fff}.slug-confirm .slug-confirm-box .slug-confirmation{color:#932937;margin-right:2px}.slug-confirm.slug-confirm-active .slug-confirm-original,.slug-confirm.slug-confirm-active i{display:none}.slug-confirm.slug-confirm-active .slug-confirm-box{display:block}.help{display:inline-block;vertical-align:middle;margin:0 0 0 5px}.help-link{float:right;padding-left:10px}.help-link:hover{text-decoration:none}.help-link i{font-size:100px;opacity:0.1}.modal>form{margin:0}.control-box input[type=checkbox]{margin:0 10px}.slug-alert{position:relative;z-index:9000;height:0}.slug-alert.in{height:auto}.wizard{border:1px solid #fff;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#bbbfc0}.wizard ul{list-style:none outside none;padding:0;margin:0}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#999;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #f5f5f5;border-right:0;display:block;position:absolute;right:-14px;top:0}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.complete{background:#f3f4f5;color:#00974a}.wizard ul li.complete:hover{background:#e7eff8;cursor:pointer}.wizard ul li.complete:hover .chevron:before{border-left:14px solid #e7eff8}.wizard ul li.complete .chevron:before{border-left:14px solid #f3f4f5}.wizard ul li.active,.wizard ul .slug-item.highlighted li.btn[type=highlight],.slug-item.highlighted .wizard ul li.btn[type=highlight],.wizard ul .slug-item.highlighted li[type=highlight].demo-button,.slug-item.highlighted .wizard ul li[type=highlight].demo-button,.wizard ul .slug-item.highlighted li[type=highlight].create-demo,.slug-item.highlighted .wizard ul li[type=highlight].create-demo,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action,.wizard ul li.current{background:#f1f6fc;color:#11798c}.wizard ul li.active .chevron:before,.wizard ul .slug-item.highlighted li.btn[type=highlight] .chevron:before,.slug-item.highlighted .wizard ul li.btn[type=highlight] .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].demo-button .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].demo-button .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].create-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].create-demo .chevron:before,.wizard ul .slug-item.highlighted li[type=highlight].go-to-demo .chevron:before,.slug-item.highlighted .wizard ul li[type=highlight].go-to-demo .chevron:before,.wizard ul .slug-item.highlighted .welcome li[type=highlight].action .chevron:before,.slug-item.highlighted .welcome .wizard ul li[type=highlight].action .chevron:before,.wizard ul .welcome .slug-item.highlighted li[type=highlight].action .chevron:before,.welcome .slug-item.highlighted .wizard ul li[type=highlight].action .chevron:before,.wizard ul li.current .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:nth-child(1){border-radius:4px 0 0 4px;padding-left:20px;z-index:10}.wizard ul li:nth-child(2){z-index:9}.wizard ul li:nth-child(3){z-index:8}.wizard ul li:nth-child(4){z-index:7}.wizard ul li:nth-child(5){z-index:6}.wizard ul li:nth-child(6){z-index:5}.wizard ul li:nth-child(7){z-index:4}.wizard ul li:nth-child(8){z-index:3}.wizard ul li:nth-child(9){z-index:2}.wizard ul li:nth-child(10){z-index:1}.wizard .actions{line-height:44px;float:right;padding-right:15px;vertical-align:middle}.wizard .actions a{line-height:45px;font-size:12px;margin-right:8px}.wizard .actions .btn-prev i{margin-right:5px}.wizard .actions .btn-next i{margin-left:5px}.step-content .step-pane{display:none}.step-content .active,.step-content .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action{display:block}.step-content .active .btn-group .active,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .active,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .active,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .active,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .active,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .active,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .active,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .active,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .active,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .active,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .active,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .active,.step-content .active .btn-group .slug-item.highlighted .btn[type=highlight],.slug-item.highlighted .step-content .active .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .btn[type=highlight],.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .btn[type=highlight],.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .btn[type=highlight],.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group .btn[type=highlight],.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group .btn[type=highlight],.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group .btn[type=highlight],.step-content .active .btn-group .slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted .step-content .active .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].demo-button,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].demo-button,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].demo-button,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].demo-button,.step-content .active .btn-group .slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].create-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].create-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].create-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].create-demo,.step-content .active .btn-group .slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .step-content .active .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].go-to-demo,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].go-to-demo,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].go-to-demo,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].go-to-demo,.step-content .active .btn-group .slug-item.highlighted .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .active .btn-group [type=highlight].action,.step-content .slug-item.highlighted .btn[type=highlight] .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome .btn[type=highlight] .btn-group [type=highlight].action,.slug-item.highlighted .step-content .btn[type=highlight] .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].demo-button .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].demo-button .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].create-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].create-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].go-to-demo .btn-group [type=highlight].action,.slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group .welcome [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .slug-item.highlighted .welcome [type=highlight].action .btn-group [type=highlight].action,.slug-item.highlighted .welcome .step-content [type=highlight].action .btn-group [type=highlight].action,.step-content .active .btn-group .welcome .slug-item.highlighted [type=highlight].action,.welcome .slug-item.highlighted .step-content .active .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted .btn[type=highlight] .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content .btn[type=highlight] .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].demo-button .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].demo-button .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].create-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].create-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .step-content .slug-item.highlighted [type=highlight].go-to-demo .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].go-to-demo .btn-group [type=highlight].action,.step-content .welcome .slug-item.highlighted [type=highlight].action .btn-group [type=highlight].action,.welcome .slug-item.highlighted .step-content [type=highlight].action .btn-group [type=highlight].action{display:inline-block}.popover{max-width:100%;min-width:450px}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.btn.loading i,.loading.demo-button i,.loading.create-demo i,.loading.go-to-demo i,.welcome .loading.action i{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.btn:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#bbbfc0}.btn.active,.active.demo-button,.active.create-demo,.active.go-to-demo,.welcome .active.action,.slug-item.highlighted .btn[type=highlight],.slug-item.highlighted [type=highlight].demo-button,.slug-item.highlighted [type=highlight].create-demo,.slug-item.highlighted [type=highlight].go-to-demo,.slug-item.highlighted .welcome [type=highlight].action,.welcome .slug-item.highlighted [type=highlight].action,.btn:active,.demo-button:active,.create-demo:active,.go-to-demo:active,.welcome .action:active{background:#2e2c31;color:#fff}.btn-primary:hover,.demo-button:hover,.create-demo:hover,.go-to-demo:hover,.welcome .action:hover,.btn-primary:focus,.demo-button:focus,.create-demo:focus,.go-to-demo:focus,.welcome .action:focus{background:#189a98}.btn-success:hover,.btn-success:focus{background:#00974a}.btn-info:hover,.btn-info:focus{background:#138ca3}.btn-warning:hover,.confirm-delete:hover,.btn-warning:focus,.confirm-delete:focus{background:#dd9101}.btn-danger:hover,.btn-danger:focus{background:#7f2330}.btn.disabled,.btn.loading,.loading.demo-button,.loading.create-demo,.loading.go-to-demo,.welcome .loading.action,.disabled.demo-button,.disabled.create-demo,.disabled.go-to-demo,.welcome .disabled.action{cursor:not-allowed;border-color:#bbbfc0}.btn.disabled:hover,.btn.loading:hover,.loading.demo-button:hover,.loading.create-demo:hover,.loading.go-to-demo:hover,.welcome .loading.action:hover,.disabled.demo-button:hover,.disabled.create-demo:hover,.disabled.go-to-demo:hover,.welcome .disabled.action:hover,.btn.disabled:focus,.btn.loading:focus,.loading.demo-button:focus,.loading.create-demo:focus,.loading.go-to-demo:focus,.welcome .loading.action:focus,.disabled.demo-button:focus,.disabled.create-demo:focus,.disabled.go-to-demo:focus,.welcome .disabled.action:focus{background:transparent}.btn.disabled:active,.btn.loading:active,.loading.demo-button:active,.loading.create-demo:active,.loading.go-to-demo:active,.welcome .loading.action:active,.disabled.demo-button:active,.disabled.create-demo:active,.disabled.go-to-demo:active,.welcome .disabled.action:active{background:transparent;color:inherit}.btn-link:hover,.new-endpoint .copy-to-clipboard:hover,.demo-services .demo-service-action:hover,.service-demo button:hover,.demo-block .demo-block-remove:hover,.btn-link:focus,.new-endpoint .copy-to-clipboard:focus,.demo-services .demo-service-action:focus,.service-demo button:focus,.demo-block .demo-block-remove:focus{background:transparent}.btn-link:active,.new-endpoint .copy-to-clipboard:active,.demo-services .demo-service-action:active,.service-demo button:active,.demo-block .demo-block-remove:active{background:transparent;color:inherit}.cta{background:transparent;border:1px solid #1bb0ae;color:#1bb0ae;text-align:center;min-height:4em}.cta:hover,.cta:focus{background:#1bb0ae;color:#fff}.cta:active{background:#2e2c31;color:#fff}.label-debug,.label-log,.label-success,.service-status-ok,.label-warn,.label-redirect,.label-info,.label-information,.label-error,.label-client-error,.label-server-error{display:inline-block;padding:2px 10px;font-size:11px;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap}.label-debug,.label-log{background-color:#bbbfc0}.label-success,.service-status-ok{background-color:#00b056}.label-warn,.label-redirect{background-color:#f6a201}.label-info,.label-information{background-color:#16a0ba}.label-error,.label-client-error,.label-server-error{background-color:#932937}.alert,.slug-list .no-results{background-color:#f6a201;border:1px solid #f6a201}.alert .close,.slug-list .no-results .close,.alert .demo-block .demo-block-remove,.demo-block .alert .demo-block-remove,.slug-list .no-results .demo-block .demo-block-remove,.demo-block .slug-list .no-results .demo-block-remove{color:#fff;opacity:1}.alert a,.slug-list .no-results a,.alert button,.slug-list .no-results button{color:#c38101}.alert a:hover,.slug-list .no-results a:hover,.alert a:focus,.slug-list .no-results a:focus,.alert button:hover,.slug-list .no-results button:hover,.alert button:focus,.slug-list .no-results button:focus{color:#905f01}.alert,.slug-list .no-results,.alert h4,.slug-list .no-results h4{color:#fff}.alert-success{background-color:#00b056;border-color:#00b056;color:#fff}.alert-success h4{color:#fff}.alert-danger,.alert-error{background-color:#932937;border-color:#932937;color:#fff}.alert-danger h4,.alert-error h4{color:#fff}.alert-info{background-color:#16a0ba;border-color:#16a0ba;color:#fff}.alert-info h4{color:#fff}.slug-grid{width:960px;margin:0 auto;list-style:none}.slug-grid li{width:220px;height:220px;float:left;margin:0 0 20px 20px;transition-property:width;transition-duration:0.8s;transition-timing-function:ease}.slug-grid li.opened{width:940px}.slug-grid li.opened .slug-grid-item{border-color:#2fa4e7}.slug-grid li.opened .caption{width:690px;height:180px;padding:9px;-webkit-transition:all 1ms linear 0.8s;-moz-transition:all 1ms linear 0.8s;-o-transition:all 1ms linear 0.8s;transition:all 1ms linear 0.8s}.slug-grid-item{padding:4px;line-height:20px;border:1px solid #999;background:#fff;cursor:pointer;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;-webkit-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-moz-box-shadow:rgba(0,0,0,0.055) 0 1px 3px;box-shadow:rgba(0,0,0,0.055) 0 1px 3px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.slug-grid-item:hover{border-color:#2fa4e7;-webkit-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;-moz-box-shadow:rgba(0,105,214,0.25) 0 1px 4px;box-shadow:rgba(0,105,214,0.25) 0 1px 4px}.slug-grid-item h3{margin:0}.slug-grid-item img{width:210px;float:left;background:#ccc}.exists .slug-grid-item img{background:#0670d6}.slug-grid-item .caption{width:0;height:0;padding:0;overflow:hidden;float:left;vertical-align:middle;transition-property:width, height, padding;transition-duration:1ms;transition-timing-function:linear;transition-delay:-1s}.exists .create-demo{display:none}.go-to-demo{display:none}.exists .go-to-demo{display:inline-block}.welcome .description{text-align:center;margin:20px 0}.welcome .description .icon-logo{font-size:135px;background:#bfbfbf;padding:35px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-bottom:20px;display:inline-block}.welcome .action{font-size:40px;float:right}.services .thumbnails li{height:365px}.services .new .thumbnail{display:block;text-align:center;line-height:20;font-size:17.5px;border-color:#1bb0ae}.services .new .thumbnail:hover{text-decoration:none;background:#1bb0ae;color:#fff}.services .thumbnail{height:100%}.services .controls{padding:10px 0;border-top:1px solid #f5f5f5}.services .plot{height:auto}.service-select{margin:0;height:auto;border:none;-webkit-appearance:none;width:auto;max-width:24%}.service-select:focus{border:none}.service-select option{font-size:14px}pre.endpoint{display:inline-block}.new-endpoint .copy-to-clipboard{padding:0 0 4px 4px}.service-nav{margin-left:25.64103%}.demo-services{list-style:none}.demo-services .demo-service-logo{width:85px}@media (min-width: 1200px){.services .thumbnails li{min-width:23%;margin-left:2%}}.main-menu{margin-bottom:0}.main-menu .brand{padding:4px 20px 3px;margin-left:0;width:26%}.main-menu-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:none}.services-menu{position:relative}.dropdown-menu.main-menu-dropdown{background:#2e2c31;color:#fff}.dropdown-menu.main-menu-dropdown a,.dropdown-menu.main-menu-dropdown button{color:#fff}.dropdown-menu.main-menu-dropdown a:hover,.dropdown-menu.main-menu-dropdown a:focus,.dropdown-menu.main-menu-dropdown button:hover,.dropdown-menu.main-menu-dropdown button:focus{background:transparent;color:#db3c4e}.dropdown-menu.main-menu-dropdown:after,.dropdown-menu.main-menu-dropdown:before{display:none !important}.subnav .subnav-inner{background:#2e2c31}.subnav .subnav-inner{height:auto;min-height:30px}.subnav .subnav-nav{margin:0 0 0 25.5%;padding:0}.subnav .subnav-nav li{display:inline-block}.subnav .subnav-nav .subnav-action{color:#fff;display:inline-block;padding:5px 15px}.subnav .subnav-nav .subnav-action:hover,.subnav .subnav-nav .subnav-action:focus{color:#db3c4e;text-decoration:none;background-color:transparent}.subnav .subnav-nav .subnav-action:active,.subnav .subnav-nav .subnav-action.active,.subnav .subnav-nav .slug-item.highlighted .subnav-action.btn[type=highlight],.slug-item.highlighted .subnav .subnav-nav .subnav-action.btn[type=highlight],.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].demo-button,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].demo-button,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].create-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].create-demo,.subnav .subnav-nav .slug-item.highlighted .subnav-action[type=highlight].go-to-demo,.slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].go-to-demo,.subnav .subnav-nav .slug-item.highlighted .welcome .subnav-action[type=highlight].action,.slug-item.highlighted .welcome .subnav .subnav-nav .subnav-action[type=highlight].action,.subnav .subnav-nav .welcome .slug-item.highlighted .subnav-action[type=highlight].action,.welcome .slug-item.highlighted .subnav .subnav-nav .subnav-action[type=highlight].action{color:#db3c4e}#service-list a,.services-menu a{cursor:pointer}.trace-response dt,.trace-request dt{width:130px;margin-bottom:10px}.trace-response dt button,.trace-request dt button{padding-left:0}.trace-response dd,.trace-request dd{margin-bottom:10px;margin-left:140px}.trace-response dd .btn-link,.trace-response dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-response dd .copy-to-clipboard,.trace-response dd .demo-services .demo-service-action,.demo-services .trace-response dd .demo-service-action,.trace-response dd .service-demo button,.service-demo .trace-response dd button,.trace-response dd .demo-block .demo-block-remove,.demo-block .trace-response dd .demo-block-remove,.trace-request dd .btn-link,.trace-request dd .new-endpoint .copy-to-clipboard,.new-endpoint .trace-request dd .copy-to-clipboard,.trace-request dd .demo-services .demo-service-action,.demo-services .trace-request dd .demo-service-action,.trace-request dd .service-demo button,.service-demo .trace-request dd button,.trace-request dd .demo-block .demo-block-remove,.demo-block .trace-request dd .demo-block-remove{padding:0;border:0;margin-bottom:5px}.trace-response table,.trace-request table{padding:5px;border:1px solid #f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}.trace-response table tr,.trace-request table tr{border-bottom:1px solid #f5f5f5}.trace-response table td,.trace-response table th,.trace-request table td,.trace-request table th{padding:5px}.trace-pipeline{counter-reset:li;list-style:none}.trace-pipeline li{position:relative;counter-increment:li;border:2px dashed #2fa4e7;padding:10px;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;margin:0 0 20px 0}.trace-pipeline li .counter::before{content:counter(li)}.trace-pipeline li .counter{position:absolute;left:-42px;top:50%;margin-top:-1.3em;height:2em;width:2em;line-height:2em;text-align:center;font-weight:bold;border-radius:2em;transition:all .3s ease-out;background:#f5f5f5;color:#555;border:3px solid #2fa4e7}.trace-pipeline li .counter:hover{background:#eee}.trace-pipeline li .counter:hover:before{transform:rotate(360deg)}.trace-pipeline li .trace-request{padding-bottom:20px;border-bottom:1px solid #f5f5f5}.middlewares .stack{padding:2px 10px}.middlewares .result{width:30%}.middlewares .result h3{line-height:20px;margin:0}.middlewares .result .author,.middlewares .result .version{font-size:11.9px;color:#555}.middlewares .result .badge{margin-right:5px}.middlewares .result .thumbnail{height:215px}.middlewares .result.new .thumbnail{display:block;height:100%;text-align:center;line-height:10;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .result.new .thumbnail:hover{text-decoration:none}.middlewares .thumbnails li{width:30%;height:260px;margin-left:2%}.middlewares .thumbnails li h3{line-height:23px;margin:0}.middlewares .thumbnails li .thumbnail{height:100%}.middlewares .thumbnails li .thumbnail .author,.middlewares .thumbnails li .thumbnail .version{font-size:11.9px;color:#555}.middlewares .thumbnails li .thumbnail .caption{position:relative;height:100%}.middlewares .thumbnails li .thumbnail .controls{position:absolute;bottom:30px;width:95%;padding:20px 0 0 0;border-top:1px solid #f5f5f5}.middlewares .thumbnails li.new .thumbnail{display:block;text-align:center;line-height:16;font-size:17.5px;border-width:3px;border-style:dashed;box-shadow:none}.middlewares .thumbnails li.new .thumbnail:hover{text-decoration:none}.middlewares .github{background-color:#f5f5f5;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;padding:2px 10px}.middlewares .github .result{background-color:#fff}.middlewares .config textarea{display:block;width:430px;height:70px;margin:20px 0 0 0}.middlewares .CodeMirror{border:3px dashed #f5f5f5;padding:11px 19px}.middleware-list .middleware{background-color:#fff;border:1px solid #2e2c31;color:#2e2c31;display:block;position:relative;padding:2px 10px;margin:10px 0;min-height:65px;overflow:hidden;cursor:move;margin-bottom:10px}.pipeline-container{margin:0 0 20px 0}.pipeline-container i{vertical-align:initial}.pipeline-box{float:left}.pipeline-wrap{border:1px solid #2e2c31;padding:40px 0;margin:20px 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.pipeline-wrap .pipeline{-webkit-box-flex:2;-moz-box-flex:2;-ms-flex:2;-webkit-flex:2;flex:2;margin:0 10px;position:relative}.pipeline-wrap .pipeline .middleware-list{min-height:100px;margin-bottom:10px}.pipeline-wrap .pipeline.changed{border-color:#f6a201;background:#fffcf7}.arrow{width:80px;align-self:center;text-align:center}.arrow [class*='arrow-']:before{font-family:FontAwesome;font-size:50px;font-style:normal;color:#bbbfc0}.arrow .arrow-up:before{content:"\f062"}.arrow .arrow-down:before{content:"\f063"}.service,.app{color:#fff;font-weight:normal;margin:0;text-align:center;padding:20px}.app{background:#2e2c31}.service{background:#db3c4e}.middleware-list{margin:0 20px;list-style:none;margin:0}.middleware-list .middleware.on{border-color:#2e2c31;color:#2e2c31}.middleware-list .middleware.on a,.middleware-list .middleware.on button{color:#2e2c31}.middleware-list .middleware.off{border-color:#bbbfc0;color:#bbbfc0}.middleware-list .middleware.off button{color:#bbbfc0}.middleware-list .middleware .header{position:relative}.middleware-list .middleware .controls{margin:0;position:absolute;right:0;top:0}.middleware-list .middleware .controls li{display:inline-block}.middleware-list .middleware .controls button{padding:0}.middleware-list .middleware .controls button:hover{text-decoration:none}.middleware-pipeline.ui-sortable-placeholder,.drag-middleware{text-align:center;border:1px dashed #bbbfc0;color:#bbbfc0;font-size:17.5px}.new-middleware{width:100%;min-height:65px}.middleware-pipeline.ui-sortable-placeholder{visibility:visible !important}.middleware-pipeline.ui-sortable-placeholder:before{content:"Drop Here";line-height:4;border:none}.drag-middleware{position:absolute;top:10%;left:0%;width:100%;line-height:4}.middleware-stack{float:right;border:1px solid #bbbfc0;padding:11px 19px}.middleware-stack .middleware-list{min-height:400px;position:relative}.middleware-stack .middleware{border:1px dashed #bbbfc0}.middleware-stack .middleware:before{font-family:FontAwesome;content:"\f047";float:right}.middleware-stack .middleware-controls{min-width:235px}.analytics .thumbnails li{margin-left:0;padding:0;width:100%}.analytics .thumbnails .new{border-width:3px;border-style:dashed}.analytics .thumbnails .new .caption{text-align:center;font-size:17.5px}.slug-list{list-style:none;margin:20px 0}.slug-list pre{margin:0}.slug-item{border:1px solid #2e2c31;margin-bottom:0.25em;position:relative}.slug-item.highlighted{border-color:#1bb0ae}.slug-item.highlighted .slug-item-title,.slug-item.highlighted .slug-item-title a,.slug-item.highlighted .action-button{color:#1bb0ae}.slug-item.opened{border-style:dashed}.slug-item-content .wrap{padding:20px}.slug-item-heading{padding:0.5em 4em 0.5em 2em;position:relative}.slug-item-heading .truncated .rest{position:absolute;background-color:white;white-space:nowrap;padding:0.5em 0;margin-top:-0.5em}.slug-item-heading .truncated:hover .rest{display:inline-block}.slug-item-heading .service-code{opacity:0.8;vertical-align:middle}.slug-item:hover .slug-item-heading .service-code{opacity:1}.slug-item-heading .slug-item-title{margin:0}.slug-item-heading .slug-item-title a{color:#5f5f5f}.slug-item-heading .slug-item-check{position:absolute;left:0.5em;top:0.5em}.slug-item-dropdown{background:#2e2c31;border:none;color:#fff}.slug-item-dropdown>li>a,.slug-item-dropdown>li>button{color:#fff}.slug-item-actions{position:absolute;right:1em;top:1em}.slug-item-actions .dropdown-menu{left:inherit;right:0}.action-button{background:none;border:none;font-size:17.5px;padding:0}.slug-item-toggle{width:100%;cursor:pointer}.slug-item-details .detail{margin-right:1em;font-size:10.5px}.notification .detail.log-level{display:inline-block;min-width:3em}.notification .detail.channel{display:inline-block;min-width:4em}.search-box{margin:0 0 20px 0}.search-box .search-input{width:98%;padding-left:1%;padding-right:1%;margin:0 0 20px 0}.search-box .search-tokens{float:left;margin-right:5px}.search-box .search-tokens ul{margin:0}.search-box .search-tokens .token-active{border:1px solid #bbbfc0;padding:0px 6px;margin:0 0 20px 0}.search-box .controls{float:right;text-align:right}.search-box .controls .switch{width:150px}.search-tokens{margin:0}.search-tokens .show-mode,.search-tokens .edit-mode{display:inline-block;vertical-align:middle}.search-tokens a{text-decoration:none}.search-tokens a,.search-tokens a .icon{vertical-align:middle}.token{display:inline-block;padding:5px;margin:2px;border:1px solid #bbbfc0;color:#bbbfc0}.token form{margin:0}.token a,.token button{padding:0;line-height:1;color:#bbbfc0}.token input{min-width:70px;border:none;box-shadow:none;padding:0}.token.new{border-color:#1bb0ae;color:#1bb0ae}.token.new input{font-weight:bold;width:70px}.token.new input:not(:invalid){color:#1bb0ae}.token.new input:focus{width:auto}.token.new a,.token.new button{color:#1bb0ae}.token.active,.slug-item.highlighted .token.btn[type=highlight],.slug-item.highlighted .token[type=highlight].demo-button,.slug-item.highlighted .token[type=highlight].create-demo,.slug-item.highlighted .token[type=highlight].go-to-demo,.slug-item.highlighted .welcome .token[type=highlight].action,.welcome .slug-item.highlighted .token[type=highlight].action{border-color:#2e2c31;color:#2e2c31}.token.active a,.slug-item.highlighted .token.btn[type=highlight] a,.slug-item.highlighted .token[type=highlight].demo-button a,.slug-item.highlighted .token[type=highlight].create-demo a,.slug-item.highlighted .token[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .token[type=highlight].action a,.welcome .slug-item.highlighted .token[type=highlight].action a{color:#2e2c31}.token.editing{border-style:dashed}.token-suggestions .token{border-color:#1bb0ae;color:#1bb0ae}.token-suggestions .token a,.token-suggestions .token button{color:#1bb0ae}.token-suggestions .token .toggle{display:none}.token-suggestions .token .show-mode{cursor:pointer}.side-menu{margin:0 0 20px 0;list-style:none}.side-menu a{color:#2e2c31}.side-menu a:hover,.side-menu a:focus{text-decoration:none}.side-menu li:not(.header){margin:0 0 5px 0;position:relative}.side-menu li:not(.header)>a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:8px 12px;margin:0;padding-right:0}.side-menu .header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.side-menu .header:hover,.side-menu .header:focus{background:none}.side-menu+.header{margin-top:9px}.side-menu li.divider{padding:0}.side-menu-filter{border:1px solid #2e2c31;color:#2e2c31}.side-menu-filter:hover,.side-menu-filter:focus{background-color:#db3c4e;border-color:#db3c4e;color:#fff}.side-menu-filter:hover a,.side-menu-filter:focus a{color:#fff}.side-menu-filter.active,.slug-item.highlighted .side-menu-filter.btn[type=highlight],.slug-item.highlighted .side-menu-filter[type=highlight].demo-button,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action,.side-menu-filter.active:hover,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover{color:#fff;background-color:#2e2c31}.side-menu-filter.active a,.slug-item.highlighted .side-menu-filter.btn[type=highlight] a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action a,.side-menu-filter.active:hover a,.slug-item.highlighted .side-menu-filter.btn[type=highlight]:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo:hover a,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo:hover a,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action:hover a,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action:hover a{color:#fff;background-color:transparent}.side-menu-filter .edit-form{display:none;margin:0;padding:8px 12px}.side-menu-filter .edit-form input{margin:0;padding:0 2px;width:75%}.side-menu-filter .controls{display:none;position:absolute;top:7px;right:12px}.side-menu-filter .controls a{display:inline-block;width:20px;vertical-align:middle;text-align:center}.side-menu-filter.editable:hover .select-mode,.side-menu-filter.editable:focus .select-mode{display:block}.side-menu-filter.editable:hover:not(.active) .active-button,.side-menu-filter.editable:focus:not(.active) .active-button{display:none}.side-menu-filter.active .select-mode,.slug-item.highlighted .side-menu-filter.btn[type=highlight] .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].demo-button .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].create-demo .select-mode,.slug-item.highlighted .side-menu-filter[type=highlight].go-to-demo .select-mode,.slug-item.highlighted .welcome .side-menu-filter[type=highlight].action .select-mode,.welcome .slug-item.highlighted .side-menu-filter[type=highlight].action .select-mode{display:block}.side-menu-filter.editable.editing .edit-mode,.side-menu-filter.editable.editing .edit-form,.side-menu-filter.editable.editing:hover .edit-mode,.side-menu-filter.editable.editing:hover .edit-form{display:block}.side-menu-filter.editable.editing .select-mode,.side-menu-filter.editable.editing:hover .select-mode{display:none}.side-menu-filter .slug-confirm-box{background:#f6a201;position:absolute;right:0;top:0;width:80px}.side-menu-filter .slug-confirmation{color:#932937}.charts{list-style:none;margin:0}.charts .expanded{width:100%;margin-left:0}.charts .expanded .plot{min-height:400px}.charts .normal{width:49%;display:inline-block}.charts .normal:last-child{margin-left:2%}.charts .normal .chart.new a{line-height:15}.charts .normal .chart .plot{height:225px}.chart{border:1px solid #bbbfc0;padding:1em;margin-bottom:20px}.chart .caption{position:relative}.chart .caption h4{text-align:center}.chart .caption .edit-chart{display:block;position:absolute;right:0;bottom:0}.chart.new{border-width:2px;border-style:dashed;box-shadow:none;display:block;text-align:center;line-height:15;font-size:17.5px;border-width:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;cursor:pointer}.chart.new:hover{text-decoration:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.chart-edit{width:800px;left:40%}.chart-edit .modal-header h3,.chart-edit .modal-header a,.chart-edit .modal-header input{display:inline-block}.chart-edit ul{margin-left:0}.chart-edit fieldset{border-bottom:1px solid #f5f5f5;padding-top:20px}.chart-edit fieldset h4{margin-top:5px}.graph{overflow:hidden}.plot{position:relative;display:block}.plot.maximized{height:100%}.rickshaw-maximizer,.rickshaw-minimizer{position:absolute;bottom:5px;right:5px;display:block;text-align:center;border:1px solid #f5f5f5;height:20px;width:20px;background-color:#fff}.rickshaw-maximizer:hover,.rickshaw-minimizer:hover{border-color:#555}.rickshaw-maximizer i,.rickshaw-minimizer i{cursor:pointer}.rickshaw_graph .detail .super-label{font-family:Arial, sans-serif;border-radius:3px;padding:6px;border:1px solid #e0e0e0;font-size:12px;position:absolute;white-space:nowrap;background-color:white;background-color:rgba(255,255,255,0.75)}.rickshaw_graph .detail .super-label.left{left:10px}.rickshaw_graph .detail .super-label.right{right:10px}.rickshaw_graph .detail .title,.rickshaw_graph .detail .value{font-weight:bold}.rickshaw_graph .detail .swatch{width:10px;height:10px;border:1px solid rgba(0,0,0,0.2);display:inline-block;margin-right:3px;border-radius:2px}.service-demo ul{list-style:none;margin:0}.service-demo ul li{margin:0 0 5px 0}.service-demo button{font-size:21px}.service-demo button:hover{text-decoration:none}.service-demo button:disabled{color:#555}.service-demo button:disabled:hover{color:#555}.service-demo .call{margin-left:45px;padding:0 0 5px 0}.service-demo .loading{font-size:15.4px}.service-demo .status-code{margin-left:-45px;width:40px;vertical-align:middle;visibility:hidden}.service-demo .visible{visibility:visible}.service-demo .demo-response{color:#555}.demo-block{border:1px solid #16a0ba;padding:11px 19px;margin-bottom:20px;position:relative}.demo-block .demo-block-remove{color:#16a0ba}.demo-block h4{color:#16a0ba;border-bottom:1px solid #16a0ba;padding-bottom:10px;padding-left:20px;margin-top:0;margin-left:-20px;margin-right:-20px}.demo-block i{font-size:17.5px}.demo-block ul{list-style:none}#setup-modal{position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff}#setup-form{padding:60px}.dashboard-box{padding:1em;border:1px solid #bbbfc0;display:block;margin-bottom:20px}.dashboard-box:hover,.dashboard-box:focus{text-decoration:none}.dashboard-box ul,.dashboard-box ol{list-style:none;margin:0}.dashboard-box ul li,.dashboard-box ol li{padding:2px 10px;padding-left:0}.dashboard-box ul li:nth-child(odd),.dashboard-box ol li:nth-child(odd){background:#f5f5f5}.dashboard-box ul .cell,.dashboard-box ol .cell{padding:2px 10px}.dashboard-box a:hover,.dashboard-box a:focus{text-decoration:none}.dashboard-box{height:22em}.dashboard-box .no-records{margin-top:80px;margin-bottom:80px}.dashboard-box .no-records,.dashboard-box .new-service{display:block;text-align:center;vertical-align:middle}.dashboard-box-title{margin:0 -14px 7px -14px;padding:0 14px 7px 14px;border-bottom:1px solid #bbbfc0}.small-dashboard-boxes{text-align:center}.small-dashboard-boxes .number,.small-dashboard-boxes .box-label{display:block;line-height:1}.small-dashboard-boxes .number{font-size:4em;font-weight:bold;color:#2e2c31}.small-dashboard-boxes .number.error{color:#932937}.small-dashboard-boxes .number.ok{color:#00b056}.selected-dashboard{height:250px}.dashboard-box-mini{height:5em}.dashboard-box-small{height:16.5em}.notification-link,.trace-link{color:#2e2c31}#service-middlewares h3{line-height:2em}#service-middlewares label{font:inherit;display:inline-block}#service-middlewares input[type='checkbox']{margin-right:1em}.drag-handle{top:0;bottom:0;left:0;width:1em;position:absolute;cursor:move;background:#696969}.service-middleware{position:relative;list-style:none;border:1px solid black;margin-bottom:1em;padding-left:2em;padding-right:0;background-color:rgba(255,255,255,0.8)}.service-middleware.disabled,.service-middleware.btn.loading,.service-middleware.loading.demo-button,.service-middleware.loading.create-demo,.service-middleware.loading.go-to-demo,.welcome .service-middleware.loading.action{background-color:rgba(105,105,105,0.4);opacity:0.9}.CodeMirror-autoresize .CodeMirror{border:1px solid #eee;height:auto}.CodeMirror-autoresize .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.animated.leave{position:absolute}.endpoint-example{position:relative}.endpoint-example .copy-to-clipboard{position:absolute;right:0;top:0}a.destroy{float:right;padding-top:9.5px;padding-right:9.5px}.tab-content{overflow:visible}.middleware-spec-list{list-style-type:none}.middleware-spec{height:100px}.edit-middleware label input,.edit-middleware label textarea{display:block}html{overflow-y:scroll}a.help:hover{text-decoration:none;cursor:pointer}a.help+div{font-size:14px}.icon-help{font-size:17px}.icon-help:after{content:"\f059"}.filter-list .filter.selected a{background-color:blue}.truncated .rest{display:none}.truncated:hover .rest{display:inline}.truncated:hover .dots{display:none}.action[type=delete].confirm-delete .icon-trash{margin-right:.5em;vertical-align:text-top}.tabbable .nav-tabs a{cursor:pointer;border-radius:0}.tabbable .nav-tabs .invalid a{background-color:red}.analytics-list{list-style:none}.analytics-list li{margin-bottom:5px}.analytics-list li input,.analytics-list li select{margin-bottom:0}.collapse{min-height:0 !important}.side-menu li a{cursor:pointer}.tooltip{z-index:10000}
diff --git a/app/assets/app.js b/app/assets/app.js
index eba407c..59465d2 100644
--- a/app/assets/app.js
+++ b/app/assets/app.js
@@ -1,4 +1,4 @@
-(function(){var slug;window.history.pushState(null,null,window.location.pathname),moment.lang("en",{"relativeTime":{"future":"in %s","past":function(output){return"a few seconds"===output?"just now":""+output+" ago"},"s":"a few seconds","m":"a minute","mm":"%d minutes","h":"an hour","hh":"%d hours","d":"a day","dd":"%d days","M":"a month","MM":"%d months","y":"a year","yy":"%d years"},"longDateFormat":{"LT":"h:mm A UTC","L":"MM/DD/YYYY","LL":"MMMM Do YYYY","LLL":"MMMM Do YYYY LT","LLLL":"dddd, MMMM Do YYYY LT"}}),slug=angular.module("slug",["slug.controllers","slug.services","slug.filters","slug.directives","angular-flash.flash-alert-directive","ui.router","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.typeahead","slug.analytics","slug.dashboard","slug.dashboards","slug.service","slug.active_docs","slug.home","slug.root","slug.documentation"]),slug.run(function($rootScope,$state){return $rootScope.$state=$state}),slug.config(function($provide){return $provide.decorator("$exceptionHandler",function($delegate,errorception){return function(exception,cause){return $delegate(exception,cause),errorception(exception)}})}),slug.config(function($stateProvider,$locationProvider,$anchorScrollProvider){return $locationProvider.html5Mode(!0).hashPrefix("!"),$anchorScrollProvider.disableAutoScrolling(),$stateProvider.state("search",{"url":"/search","templateUrl":"/search/index.html","controller":"SearchCtrl"}).state("service.traces",{"parent":"service","url":"/traces","templateUrl":"/services/traces/index.html","controller":"ServiceTracesIndexCtrl"}).state("service.trace",{"parent":"service.traces","url":"/:traceId","templateUrl":"/services/traces/show.html","controller":"ServiceTraceShowCtrl"}).state("service.trace.destroy",{"parent":"service.trace","url":"/destroy","templateUrl":"/services/traces/destroy.html","controller":"ServiceTraceDestroyCtrl"}).state("traces",{"url":"/traces?select&filter","templateUrl":"/traces/index.html","controller":"TracesIndexCtrl"})})}).call(this),function(){angular.module("slug.controllers",["angular-flash.service","ui.bootstrap.accordion","ui.bootstrap.tabs","ui.bootstrap.tooltip","angularMoment","ui.router","ui.bootstrap.modal","slug.middlewares","slug.middleware_specs","slug.traces","slug.notifications","slug.controllers.services","slug.user_settings","slug.services.brain"])}.call(this),function(){angular.module("slug.active_docs",["slug.service"]).config(function($stateProvider){return $stateProvider.state("service.docs",{"parent":"service","url":"/docs","templateUrl":"/active_docs/index.html","controller":"ActiveDocsCtrl"}).state("service.docs.operation",{"parent":"service.docs","url":"/:operationGuid","controller":"ActiveDocsOperationCtrl","templateUrl":"/active_docs/index.html"})}).factory("ActiveDocsOperation",function($http,$state){return function(request,service_id){var params;return null==service_id&&(service_id=$state.params.serviceId),params={"method":request.method,"path":request.uri},$http({"method":"GET","url":"/api/services/"+service_id+"/operation","params":params})}}).controller("ActiveDocsCtrl",function($scope,service){return $scope.resource={"name":service.name,"system_name":service.code(),"path":"/api/services/"+service._id+"/docs","domain":service.host()}}).directive("preventDocsLoad",function($window){return{"compile":function(element,attrs){var hasDocs,replacement,src,_ref;return src=attrs.preventDocsLoad,hasDocs=null!=(null!=(_ref=$window.ThreeScale)?_ref.APIDocs:void 0),hasDocs?void 0:(replacement=angular.element("").attr({"src":src}),element.replaceWith(replacement))}}}).directive("activeDocs",function($state,$window){var HEADING_CLASS,LOADED_EVENT;return LOADED_EVENT="resources:loaded",HEADING_CLASS=".apidocs-heading",{"scope":{"resources":"=activeDocs"},"link":function(scope,element){var APIDocs;return element.addClass("api-docs-wrap"),element.on("click",HEADING_CLASS,function(){var content,heading,params;return heading=angular.element(event.target).closest(HEADING_CLASS),content=heading.siblings(".content"),content.is(":visible")?void 0:(params={"operationGuid":content.data("operation-id")},$state.go("service.docs.operation",params))}),APIDocs=ThreeScale.APIDocs,APIDocs.account_type="provider",APIDocs.init(scope.resources),APIDocs.jQuery.subscribe(LOADED_EVENT,function(){var operation;return operation=element.find("[data-operation-id='"+$state.params.operationGuid+"']"),APIDocs.Docs.expandOperation(operation,function(){var win;return win=angular.element($window),win.scrollTop(operation.position().top)})}),scope.$on("$destroy",function(){return APIDocs.jQuery.unsubscribe(LOADED_EVENT)})}}}).directive("docsLink",function($state,ActiveDocsOperation){return{"restrict":"A","priority":-1,"scope":{"trace":"=docsLink"},"link":function(scope,element){var changeState,operation,reportFail,service_id,trace;return trace=scope.trace,service_id=trace.service_id,operation=null,changeState=function(res){return $state.go("service.docs.operation",{"serviceId":service_id,"operationGuid":res.data.guid})},reportFail=function(){},element.on("mouseenter",function(){return operation||(operation=ActiveDocsOperation(trace.req,service_id))}),element.on("click",function(){return operation.then(changeState,reportFail),!1})}}})}.call(this),function(){angular.module("slug.controllers").factory("System",function($http){return{"initialize":function(){return $http.post("/api/system/initialize")},"reset":function(){return $http.post("/api/system/reset")}}}).controller("AppController",function($scope,Service,System,Brain){return System.initialize(),$scope.brain=Brain})}.call(this),function(){var __bind=function(fn,me){return function(){return fn.apply(me,arguments)}};angular.module("slug.dashboard",["ui.router","slug.stats","slug.notifications","slug.service","slug.traces.services"]).config(function($stateProvider){return $stateProvider.state("dashboard",{"url":"/dashboard","templateUrl":"/dashboard/show.html","controller":"DashboardCtrl"})}).factory("AggregatedDashboard",function($http,LoadChart,$timeout,$q,Stats){var AggeragedDashboard;return AggeragedDashboard=function(){function AggeragedDashboard(){this.stop=__bind(this.stop,this),this.hook=__bind(this.hook,this),this.load("traffic")}return AggeragedDashboard.traffic={"title":"All Traffic","projections":{"count":!0},"metric":"hits","range":{"granularity":60,"type":"relative","relative":{"end":"now","start":3600}}},AggeragedDashboard.time={"title":"Response Time","projections":{"avg":!0},"metric":"time","range":{"granularity":60,"type":"relative","relative":{"end":"now","start":3600}}},AggeragedDashboard.errors={"title":"Errors","projections":{"avg":!0,"count":!0},"metric":"status","statuses":{"$gte":400,"$lt":600},"range":{"granularity":60,"type":"relative","relative":{"end":"now","start":3600}}},AggeragedDashboard.prototype.available={"errors":AggeragedDashboard.errors,"traffic":AggeragedDashboard.traffic,"time":AggeragedDashboard.time},AggeragedDashboard.prototype["default"]="traffic",AggeragedDashboard.prototype.colors={"errors":"#AC3131","time":"#FFA500","traffic":"#317eac"},AggeragedDashboard.prototype.hook=function($scope){return $scope.$on("$destroy",this.stop)},AggeragedDashboard.prototype.stop=function(){return $timeout.cancel(this.last_timeout)},AggeragedDashboard.prototype.autoupdate=function(dashboard,callback){var update_stats;return this.stop(),(update_stats=function(_this){return function(){return _this.load(dashboard,callback).then(function(){return _this.last_timeout=$timeout(update_stats,6e4)})}}(this))()},AggeragedDashboard.prototype.load=function(what,callback){return LoadChart({"query":AggeragedDashboard[what]},Stats).then(function(_this){return function(stats){return _this[what]=stats}}(this)).then(callback)},AggeragedDashboard}()}).controller("DashboardCtrl",function($scope,$rootScope,AggregatedDashboard,Service,Event,Trace,jsonify){var last_events_query,last_hour,last_stats_query;return $rootScope.$emit("serviceReset"),$scope.dashboards=new AggregatedDashboard,$scope.dashboards.hook($scope),last_hour=function(conditions){var timeframe,timestamp;return timestamp=moment().subtract("hour",1).unix(),timeframe={"_created_at":{"$gte":timestamp}},angular.extend(timeframe,conditions||{}),jsonify(timeframe)},$scope.middleware_errors=Event.count({"query":last_hour({"level":"error"})}),$scope.request_errors=Trace.count({"query":last_hour({"res":{"status":{"$gte":400}}})}),$scope.services=Service.query(),$scope.selectDashboard=function(key){return $scope.selected_dashboard=key,$scope.color=$scope.dashboards.colors[key],$scope.dashboards.autoupdate(key,function(dashboard){return $scope.dashboard=dashboard})},$scope.selectDashboard($scope.dashboards["default"]),last_events_query=jsonify({"level":{"$in":["error","alert","warn","info"]}}),$scope.last_notifications=Event.query({"query":last_events_query,"reversed":!0,"per_page":7}),$scope.last_traces=Trace.query({"reversed":!0,"per_page":7}),last_stats_query=jsonify({"channel":"stats"}),$scope.last_stats=Event.count({"query":last_stats_query})})}.call(this),function(){angular.module("slug.dashboards",["ngResource","slug.service","slug.stats"]).config(function($stateProvider){return $stateProvider.state("service.analytics",{"parent":"service","url":"/analytics","templateUrl":"/analytics/index.html","controller":"DashboardsCtrl"})}).factory("Dashboard",function($resource,$state){return $resource("/api/services/:serviceId/dashboards/:id/",{"id":"@_id","serviceId":function(){return $state.params.serviceId}})}).factory("Metrics",function($resource){return $resource("/api/stats/metrics")}).controller("DashboardsCtrl",function($scope,Dashboard){return $scope.dashboards=Dashboard.query(),$scope.select=function(dashboard){return $scope.current_dashboard=dashboard}}).controller("ChartController",function($scope,LoadChart,$timeout){var last_timeout,update;return $scope.blueprint=$scope.window.blueprint,$scope.chart=$scope.window.chart,last_timeout=null,$scope.$on("$destroy",function(){return $timeout.cancel(last_timeout)}),(update=function(){var chart;return chart=$scope.chart,LoadChart(chart).then(function(stats){var granularity;return $scope.stats=stats,granularity=chart.query.range.granularity,last_timeout=$timeout(update,1e3*granularity)})})()}).controller("CurrentDashboardCtrl",function($scope,$modal,flash){var charts;return $scope.blueprint={"type":"normal","charts":[{"type":"expanded"},{"type":"normal"},{"type":"normal"}]},charts=function(){return $scope.current_dashboard.charts},$scope.$watch(charts,function(dashboard_charts){var blueprint,index;return $scope.windows=function(){var _i,_len,_ref,_results;for(_ref=$scope.blueprint.charts,_results=[],index=_i=0,_len=_ref.length;_len>_i;index=++_i)blueprint=_ref[index],_results.push({"blueprint":blueprint,"chart":null!=dashboard_charts?dashboard_charts[index]:void 0});return _results}()}),$scope.editChartDialog=function(chart,callback){var dialog;return dialog=$modal.open({"backdrop":!0,"keyboard":!0,"windowClass":"modal modal-slug chart-edit modal-tall","backdropClick":!1,"templateUrl":"/dashboards/chart.html","controller":"DashboardEditChartDialogCtrl","resolve":{"chart":function(){return angular.copy(chart)}}}),dialog.result.then(function(result){return(result||_.isNull(result))&&"function"==typeof callback?callback(result):void 0})},$scope.saveDashboard=function(){return $scope.current_dashboard.$save(function(){return flash.success="Dashboard saved"})},$scope.addChart=function(position,chart){var dashboard,newChart;return dashboard=$scope.current_dashboard,charts=dashboard.charts,_.isEmpty(charts)&&(charts=dashboard.charts=[]),newChart={"position":position,"plot":chart,"$new":!0,"name":"New Chart"},$scope.editChartDialog(newChart,function(chart){return dashboard.charts[position]=chart,delete chart.$new,$scope.saveDashboard()})},$scope.editChart=function(chart){var dashboard;return dashboard=$scope.current_dashboard,charts=dashboard.charts,$scope.editChartDialog(chart,function(updated){var index;return index=charts.indexOf(chart),charts[index]=updated,$scope.saveDashboard()})}}).controller("DashboardEditChartDialogCtrl",function($scope,chart,Metrics,LoadChart){var default_query,hr;return $scope.save=function(){return $scope.$close(chart)},$scope.close=function(){return $scope.$close(!1)},$scope["delete"]=function(){return $scope.$close(null)},$scope.preview=function(){return LoadChart(chart).then(function(template){return $scope.analytics=template})},$scope.preview(),default_query={"projections":{"avg":!0,"count":!0},"paths":[],"methods":{},"statuses":[],"metric":"time","range":{"granularity":60,"type":"relative","absolute":{"start":moment().subtract(1,"day").unix(),"end":moment().unix()},"relative":{"end":"now","start":3600}},"group_by":{}},$scope.chart=chart,$scope.query=chart.query=angular.extend({},default_query,chart.query),$scope.absolute={"start":moment()},$scope.relative={"end":"now","start":3600},$scope.startDate=function(seconds){return moment().subtract(seconds,"seconds").toDate()},hr=3600,$scope.available={"ranges":[{"length":1800,"label":"30 min","title":"30 minutes"},{"length":3600,"label":"60 min","title":"1 hour"},{"length":3*hr,"label":"3 hr","title":"3 hours"},{"length":6*hr,"label":"6 hr","title":"6 hours"},{"length":12*hr,"label":"12 hr","title":"1/2 day"},{"length":24*hr,"label":"24 hr","title":"1 day"},{"length":168*hr,"label":"1 wk","title":"1 week"}],"granularities":[{"granularity":10,"label":"10 sec","tooltip":"10 seconds increments"},{"granularity":60,"label":"1 min","tooltip":"1 minute increments"},{"granularity":3600,"label":"1 hr","tooltip":"1 hour increments"},{"granularity":86400,"label":"1 day","tooltip":"1 day increments"}],"metrics":Metrics.query()},$scope.available.metrics.$promise.then(function(metrics){return $scope.metrics=_(metrics).indexBy("key")})}).controller("DashboardsNavigationCtrl",function($scope,Dashboard,flash){var charts,original_select;return $scope.helpTemplate="analytics",charts={"statuses":{"plot":{"type":"big"},"position":0,"name":"Statuses","query":{"methods":[],"paths":[],"statuses":[],"group_by":{"statuses":!0},"metric":"status","projections":{"count":!0},"range":{"type":"relative","granularity":60,"relative":{"end":"now","start":1800}}}},"traffic":{"plot":{"type":"small"},"position":1,"name":"Traffic","query":{"methods":[],"paths":[],"statuses":[],"group_by":{"paths":!0,"methods":!0},"metric":"hits","projections":{"count":!0},"range":{"type":"relative","granularity":60,"relative":{"end":"now","start":1800}}}},"methods":{"plot":{"type":"small"},"position":2,"name":"Methods average time","query":{"methods":[],"paths":[],"statuses":[],"group_by":{"methods":!0},"metric":"time","projections":{"avg":!0},"range":{"type":"relative","granularity":60,"relative":{"end":"now","start":1800}}}}},$scope.dashboards.$promise.then(function(dashboards){var dashboard,defaults;return dashboard=dashboards[0],dashboard||(defaults=[charts.statuses,charts.traffic,charts.methods],dashboard=$scope.emptyDashboard({"name":"default dashboard","charts":defaults}),dashboard.$save(function(){return dashboards.push(dashboard)})),$scope.select(dashboard)}),$scope.emptyDashboard=function(attributes){return new Dashboard(attributes)},$scope.addEmptyDashboard=function(attributes){var dashboard;if($scope.canAbortEdit())return dashboard=$scope.emptyDashboard(attributes),$scope.dashboards.push(dashboard),$scope.edit(dashboard)},original_select=$scope.select,$scope.select=function(dashboard){return $scope.abort(),original_select(dashboard)},$scope.edit=function(dashboard){return $scope.editing=angular.copy(dashboard),$scope.editing.$original=dashboard},$scope.isEditing=function(dashboard){var _ref;return(null!=(_ref=$scope.editing)?_ref.$original:void 0)===dashboard},$scope["delete"]=function(dashboard){return dashboard.$delete(function(){return $scope.remove(dashboard),flash.success="Dashboard "+dashboard.name+" removed",$scope.abort()})},$scope.canAbortEdit=function(){var original,_ref;return original=null!=(_ref=$scope.editing)?_ref.$original:void 0,original?null!=original._id:!0},$scope.remove=function(dashboard){return $scope.dashboards=_($scope.dashboards).without(dashboard)},$scope.save=function(dashboard){return angular.extend(dashboard,$scope.editing),dashboard.$save(function(){return $scope.abort(),$scope.select(dashboard),flash.success="Dashboard "+dashboard.name+" saved"})},$scope.abort=function(){var _ref;return $scope.canAbortEdit()||$scope.remove(null!=(_ref=$scope.editing)?_ref.$original:void 0),$scope.editing=null}}).factory("UsedMethods",function($resource,$state){return $resource("/api/services/:service_id/used_methods",{"service_id":function(){return $state.params.serviceId}})}).factory("AutoCompletePaths",function($resource,$state){return $resource("/api/services/:service_id/path_autocomplete",{"service_id":function(){return $state.params.serviceId}})}).controller("ChartConditionsCtrl",function($scope,UsedMethods,AutoCompletePaths){return $scope.$watch("query",function(query){var metric,_i,_len,_ref,_results;for(_ref=["statuses","paths"],_results=[],_i=0,_len=_ref.length;_len>_i;_i++)metric=_ref[_i],_results.push(_.isArray(null!=query?query[metric]:void 0)?void 0:query[metric]=[]);return _results}),$scope.randomMethod=function(method){return method.$placeholder||(method.$placeholder=_.shuffle(["GET","POST","PUT","PATH","DELETE"])[0])},$scope.randomStatus=function(status){return status.$placeholder||(status.$placeholder=_.shuffle([200,201,301,302,404,500])[0])},$scope.getAutocompletePaths=AutoCompletePaths.query(),$scope.isMethodChecked=function(method){return $scope.query.methods[method]},$scope.noMethodsAreChecked=function(){var anyChecked;return anyChecked=_($scope.query.methods).find(function(v){return v===!0}),!anyChecked},$scope.used_methods=UsedMethods.get(function(methods_resource){var method,_i,_len,_ref,_results;for(_ref=methods_resource.methods,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)method=_ref[_i],_results.push($scope.query.methods[method]=!0);return _results}),$scope.add=function(collection){return collection.push({})},$scope.remove=function(collection,element){var index;return index=collection.indexOf(element),collection.splice(index,1)}}).controller("ChartProjectionsCtrl",function($scope){return $scope.$watch("query.metric",function(metric){return $scope.metric=metric,$scope.available.metrics.$promise.then(function(){return $scope.type=$scope.metrics[$scope.metric].type})}),$scope.metricHasProjections=function(){var type;return type=$scope.type,"set"===type||"time"===type},$scope.availableProjections=function(){var all,available,percentiles,type;return(type=$scope.type)?(percentiles=["p50","p80","p90","p95","p99"],all={"set":["avg","max","min"],"count":["count"],"last":["last"]},available=all[type]):void 0},$scope.noProjectionsAreChecked=function(){var projections,query;return query=$scope.query,projections=$scope.availableProjections($scope.type),!_(projections).find(function(proj){return query.projections[proj]===!0})}})}.call(this),function(){angular.module("slug.services.demo",["slug.service","slug.services"]).factory("DemoService",function(Service,uuid){return{"create":function(demo,callback){var endpoints,service;return endpoints=[{"url":demo.endpoint,"code":demo.key}],service={"name":""+demo.name+" API","description":demo.description,"endpoints":endpoints,"demo":demo.key},Service.save(service,callback)},"update":function(service,demo){var endpoints;return endpoints=[{"url":demo.endpoint,"code":demo.key+uuid().substr(0,8)}],angular.extend(service,{"name":""+demo.name+" API","description":demo.description,"endpoints":endpoints,"demo":demo.key})}}}).factory("DemoApis",function(){var apis;return apis=[{"key":"echo","name":"Echo","img":"echo.png","endpoint":"https://echo-api.herokuapp.com","description":"Echo is simple service which responds for every request with JSON containing the request information. Like looking in the mirror. Useful for debugging middlewares.","calls":[{"url":"/","name":"GET /","method":"GET"},{"url":"/","name":"POST /","method":"POST"},{"url":"/url","name":"GET /url","method":"GET"},{"url":"/whatever","name":"PUT /whatever","method":"PUT"}]},{"key":"github","name":"GitHub","img":"github.png","endpoint":"https://api.github.com","description":"GitHub has Hypermedia JSON API. Some parts are public & rate limited to 60 requests per hour. You can use OAuth to authenticate and use up to 5,000 requests per hour.","calls":[{"url":"/events?per_page=1","name":"Get public events","method":"GET"},{"url":"/gists/public?per_page=1","name":"Get public gists","method":"GET"},{"url":"/orgs/github/events","name":"Get GitHub events","method":"GET"},{"url":"/gists/public","name":"Get public gists","method":"GET"},{"url":"/zen","name":"Get a zen koan","method":"GET"},{"url":"/emojis","name":"Get all emojis","description":"Do you see any Teletubbies in here? Do you see a slender plastic tag clipped to my shirt with my name printed on it? Do you see a little Asian child with a blank expression on his face sitting outside on a mechanical helicopter that shakes when you put quarters in it? No?"},{"url":"/users/vmg/starred","name":"Get repos starred by vmg","method":"GET"},{"url":"/repos/nginx/nginx/stargazers","name":"Get nginx/nginx stargazers","method":"GET"},{"url":"/repos/github/hubot/issues","name":"Get issues in github/hubot","method":"GET"}]},{"key":"facebook","name":"Facebook","img":"facebook.png","endpoint":"https://graph.facebook.com","description":"Facebook has JSON API which is mostly protected by OAuth, but some parts of Graph API are open.","calls":[{"url":"/mike.shaver","name":"Get info about a user","method":"GET"},{"url":"/19292868552","name":"Get info about a page","method":"GET"}]},{"key":"reddit","name":"Reddit","img":"reddit.png","endpoint":"http://www.reddit.com/","description":"Reddit has both JSON and XML api (which is open source) with some open parts, but most of it is behind OAuth.","calls":[{"url":"/user/peter/about.json","name":"Get info about a user","method":"GET"},{"url":"/subreddits/new.json","name":"Get new subreddits","method":"GET"},{"url":"/subreddits/search.json?q=kitten","name":'Search subreddits for "kitten"',"method":"GET"},{"url":"/random.json","name":"Get a random subreddit","method":"GET"},{"url":"/api/username_available.json?user=peter","name":"Check username availability","method":"GET"}]},{"key":"stackexchange","name":"Stack Exchange","img":"stackoverflow.png","endpoint":"https://api.stackexchange.com/2.1","description":"Stack Exchange has JSON API which is mostly open to public with some parts with OAuth authentication.","calls":[{"url":"/badges?site=stackoverflow","name":"Get all badges","method":"GET"},{"url":"/answers?site=stackoverflow","name":"Get lastest answers","method":"GET"},{"url":"/questions?tagged=lua&site=stackoverflow","name":"Get latest Lua questions","method":"GET"},{"url":"/similar?title=get%20css%20by%20ajax&site=stackoverflow","name":"Get similar questions","method":"GET"},{"url":"/tags/lua/top-askers/all_time?site=stackoverflow","name":"Get top Lua askers","method":"GET"},{"url":"/tags/java/synonyms?site=stackoverflow","name":"Get Java tag synonyms","method":"GET"}]},{"key":"wikipedia","name":"Wikipedia","img":"wikipedia.png","endpoint":"http://en.wikipedia.org/w/api.php","description":"Wikipedia has API with many output formats like: json, php, yaml, txt, xml, ....","calls":[{"url":"?format=php&action=query&titles=David%20Hasselhoff","name":"Get David Hasselhoff page, as PHP","method":"GET"},{"url":"?format=json&action=query&titles=Austin_powers&prop=revisions","name":"Get page revisions","method":"GET"},{"url":"?format=json&action=query&titles=Earth|Wind|Fire","name":"Search Earth, Wind or Fire","method":"GET"},{"url":"?format=json&action=sitematrix","name":"Get sitematrix","method":"GET"},{"url":"?format=json&action=compare&fromtitle=red&totitle=green","name":"Compare Red and Green","method":"GET"}]},{"key":"bitbucket","name":"Bitbucket","img":"bitbucket.png","endpoint":"https://bitbucket.org/api","description":"Bitbucket has JSON REST API with public access to open source repositories.","calls":[{"url":"/2.0/repositories/rude/love/commits","name":"Get repo commits","method":"GET"},{"url":"/1.0/repositories/rude/love/followers","name":"Get repo followers","method":"GET"},{"url":"/1.0/repositories/rude/love/events","name":"Get repo events","method":"GET"},{"url":"/1.0/repositories/rude/love/branches","name":"Get repo branches","method":"GET"}]}],_(apis).indexBy("key")}).factory("DemoCall",function($http){return{"perform":function(service,call){var params;return params={"url":call.url,"args":call.args,"body":call.body,"method":call.method},$http({"method":"GET","url":"/api/services/"+service._id+"/call","cache":!1,"params":params,"transformResponse":[]})}}}).controller("DemoCallCtrl",function($scope,DemoCall,$analytics){var updateResponse;return updateResponse=function(response){var _ref;return $scope.loading=!1,$scope.response=response.data,$scope.status=response.status,$scope.contentType=null!=(_ref=response.headers("Content-Type"))?_ref.split(";")[0]:void 0},$scope.perform=function(){var call;return $scope.loading=!0,call=DemoCall.perform($scope.service,$scope.call),call.then(updateResponse,updateResponse),$analytics.eventTrack("demo_call.used",{"service_id":$scope.service._id,"demo":$scope.service.demo,"call":$scope.call})}}).directive("demoCall",function(){return{"scope":{"call":"=demoCall","service":"=demoService"},"controller":"DemoCallCtrl","template":'
\n
\n {{ status }}\n \n
\n\n\n
loading…\n
\n \n See response \n \n \n
'}})}.call(this),function(){angular.module("slug.home",["ui.router","slug.service","slug.services.demo","angular-flash.service"]).config(function($stateProvider,ServicesResolver){return $stateProvider.state("welcome",{"url":"/welcome","controller":"HomeCtrl","templateUrl":"/home/index.html","resolve":{"services":ServicesResolver}})}).controller("HomeCtrl",function($scope,services,DemoApis){return $scope.services=services,$scope.demos=DemoApis}).controller("HomeDemoCtrl",function($scope,DemoService,flash,$analytics,$state){return $scope.createDemo=function(){return DemoService.create($scope.demo,function(service){return flash.success=""+service.name+" created",$analytics.eventTrack("demo.created",{"demo":service.demo}),$scope.service=service})},$scope.service=_($scope.services).find(function(service){return service.demo===$scope.key}),$scope.servicePath=function(){var id,_ref;return id=null!=(_ref=$scope.service)?_ref._id:void 0,id?"/app"+$state.href("service.show",{"serviceId":id}):void 0}}).directive("slugToggleClass",function(){return{"restrict":"A","link":function(scope,element){return element.on("click",".toggle-item",function(){return element.toggleClass("opened")})}}})}.call(this),function(){angular.module("slug.middlewares",["ui.router","ui.bootstrap.modal","slug.service","slug.middleware_specs","ui.codemirror","ui.sortable","slug.controllers","ngResource"]).config(function($stateProvider){return $stateProvider.state("service.middleware",{"parent":"service","url":"/middlewares","templateUrl":"/pipeline/index.html","controller":"PipelineCtrl","resolve":{"pipeline":function(Pipeline,$stateParams){return Pipeline.get({"service_id":$stateParams.serviceId}).$promise}}}).state("service.middleware.edit",{"parent":"service.middleware","url":"/:middlewareUuid","controller":"MiddlewareEditCtrl"}).state("service.middleware.destroy",{"parent":"service.middleware","url":"/destroy","templateUrl":"/middlewares/destroy.html","controller":"MiddlewareDestroyCtrl"})}).directive("middleware",function(){return{"template":'\n
{{ middleware.description | truncate: 100}}
\n\n',"link":function(scope,element){return scope.$watch("middleware.active",function(active){return element.toggleClass("on",!!active).toggleClass("off",!active)}),scope.$watch("middleware == selected",function(selected){return element.toggleClass("selected",!!selected)}),scope.$watch("middleware.$updated",function(status){return element.toggleClass("updated",!!status)}),scope.$watch("middleware.$new",function(status){return element.toggleClass("new",!!status)}),element.addClass("middleware")}}}).factory("Pipeline",function($resource){return $resource("/api/services/:service_id/pipeline/",{"service_id":"@service_id"})}).factory("Middlewares",function(DefaultMiddlewareCode,uuid){var Middlewares;return Middlewares=function(){function Middlewares(middlewares){var pipeline;pipeline=angular.copy(middlewares),this.array=_.values(pipeline),this.array=_(this.array).sortBy(function(mid){return mid.position})}return Middlewares.prototype.addEmpty=function(){var empty;return empty={"name":"new middleware","description":"You can edit this description.","code":DefaultMiddlewareCode,"uuid":uuid(),"active":!0,"$new":!0},this.array.push(empty),empty},Middlewares.prototype.replace=function(original,updated){var index;return index=this.array.indexOf(original),updated?(index>=0&&(null!=updated&&(updated.$updated=!0),this.array[index]=updated),updated):this.remove(original)},Middlewares.prototype.get=function(uuid){var UUIDEquals;return UUIDEquals=function(middleware){return middleware.uuid===uuid},_(this.array).find(UUIDEquals)},Middlewares.prototype.remove=function(original){var index;return index=this.array.indexOf(original),this.array.splice(index,1)},Middlewares.prototype.valueOf=function(){return this.array.length},Middlewares.prototype.toPipeline=function(){var index,middleware,pipeline,_i,_len,_ref;for(index=0,pipeline={},_ref=this.array,_i=0,_len=_ref.length;_len>_i;_i++)middleware=_ref[_i],middleware.position=index++,pipeline[middleware.uuid]=middleware;return pipeline},Middlewares}()}).factory("TemporaryChanges",function(){var TemporaryChanges;return TemporaryChanges=function(){function TemporaryChanges(){this.store=[]}return TemporaryChanges.prototype["new"]=function(original){var copy;return copy={"original":original,"copy":null},this.store.push(copy),copy},TemporaryChanges.prototype.find=function(original){var _ref;return(null!=(_ref=this.get(original))?_ref.copy:void 0)||original},TemporaryChanges.prototype.get=function(original){return _(this.store).find(function(s){return s.original===original})},TemporaryChanges.prototype["for"]=function(original){return this.get(original)||this["new"](original)},TemporaryChanges.prototype["delete"]=function(original){return this.store=_(this.store).without(this.get(original))},TemporaryChanges}()}).controller("PipelineCtrl",function($scope,$state,$stateParams,pipeline,Middlewares,flash,TemporaryChanges,uuid,$analytics){return $scope.pipeline=pipeline,$scope.middlewares=new Middlewares(pipeline.middlewares),$scope.revertPipeline=function(){return $scope.middlewares=new Middlewares($scope.pipeline.middlewares)},$scope.$watch("middlewares.count()",function(count){return $scope.counterReset={"counter-reset":"li "+(count+1)}}),$scope.$on("$stateChangeSuccess",function(event,toState,toParams,fromState){return"service.middleware.edit"===fromState.name&&"middleware"===toState.name?$scope.select(null):void 0}),$scope.temporary_changes=new TemporaryChanges,$scope.addEmptyMiddleware=function(){var middleware;return middleware=$scope.middlewares.addEmpty(),$scope.select(middleware),$analytics.eventTrack("middleware.added.empty")},$scope.select=function(middleware){var params;return middleware===$scope.selected&&(middleware=null),$scope.selected=middleware,middleware?(params=angular.extend($stateParams,{"middlewareUuid":middleware.uuid}),$scope.middleware=middleware,$state.transitionTo("service.middleware.edit",params,!1)):$state.transitionTo("service.middleware",$stateParams)
-},$scope.remove=function(middleware){return $scope.middlewares.remove(middleware),$analytics.eventTrack("middleware.removed",{"middleware":middleware.uuid})},$scope.toggle=function(middleware){return middleware.active=!middleware.active,$scope.select(null),$analytics.eventTrack("middleware.toggled",{"middleware":middleware.uuid})},$scope.github={"middleware":[{"name":"HODOR","author":{"name":"kikito"},"description":"hodor, hodor, hodor"}]},$scope.updatedMiddlewares=function(){var middlewares;return middlewares=$scope.middlewares,null==middlewares?{}:middlewares.toPipeline()},$scope.pipelineChanged=function(){var middlewares;return middlewares=$scope.pipeline.middlewares,$scope.middlewares?!angular.equals(middlewares,$scope.updatedMiddlewares()):void 0},$scope.updatePipeline=function(){return pipeline=$scope.pipeline,pipeline.middlewares=$scope.updatedMiddlewares()},$scope.savePipeline=function(callback){return $scope.updatePipeline(),flash.info="Saving...",$scope.pipeline.$save(function(){return flash.success="Pipeline changed",$scope.revertPipeline(),$analytics.eventTrack("pipeline.saved"),"function"==typeof callback?callback($scope.middlewares):void 0})},$scope.newMiddleware=function(spec){var middleware;return middleware={},middleware.name=spec.name,middleware.description=spec.description,middleware.code=spec.code,spec.empty||(middleware.spec_id=spec._id),middleware.uuid=uuid(),middleware.$new=!0,middleware},$scope.$on("drag.start",function(){return $scope.$apply(function(){return $scope.is_dragged=!0})}),$scope.$on("drag.stop",function(){return $scope.$apply(function(){return delete $scope.is_dragged})}),$scope.sortOptions={"axis":"y","cursor":"move","items":"> li.middleware","connectWith":".middleware-list.local","stop":function(event,ui,sortable){var _ref;return null!=(_ref=sortable.moved)?_ref.$updated=!0:void 0},"receive":{"pre":function(event,ui,state){var middleware,sortable,spec,_ref;return(spec=ui.item.scope().$eval("spec"))?(middleware=$scope.newMiddleware(spec),sortable=$(event.target).data("ui-sortable"),state.currentItem=sortable.currentItem,state.index=null!=(_ref=state.currentItem)?_ref.index(".middleware"):void 0,middleware.active=!0,state.moved=middleware):void 0},"post":function(event,ui,state){var _ref;return null!=(_ref=state.currentItem)&&_ref.remove(),$analytics.eventTrack("middleware.added",{"middleware":state.moved})}}},$scope.helpTemplate="pipeline"}).controller("MiddlewareEditCtrl",function($scope,$state,$stateParams,$modal){var changes,middleware,modal;return $scope.middleware||($scope.middleware=$scope.middlewares.get($stateParams.middlewareUuid)),changes=$scope.temporary_changes,middleware=changes.find($scope.middleware),$scope.save=function(uuid,updated_middleware){var original;return original=$scope.middlewares.get(uuid),$scope.middleware=$scope.middlewares.replace(original,updated_middleware)},modal=$modal.open({"templateUrl":"/middlewares/edit.html","controller":"MiddlewareFormCtrl","backdrop":"static","windowClass":"modal modal-full modal-fill-flex modal-slug draggable: dragOptions; middleware-edit","resolve":{"middleware":function(){return angular.copy(middleware)},"changes":function(){return changes["for"]($scope.middleware)},"savePipeline":function(){return $scope.savePipeline},"save":function(){return $scope.save}}}),$scope.close=function(result){return result?void 0:(changes["delete"]($scope.middleware),$state.transitionTo("service.middleware",$stateParams,!1))},modal.result.then($scope.close)}).factory("MiddlewareLog",function($resource,$state){return $resource("/api/services/:serviceId/console/:middlewareUuid",{"serviceId":function(){return $state.params.serviceId},"middlewareUuid":function(){return $state.params.middlewareUuid}})}).controller("MiddlewareFormCtrl",function($scope,$browser,$timeout,$state,middleware,save,savePipeline,changes,MiddlewareLog,$loop){var logsLoop,stopChanges,uuid;return uuid=middleware.uuid,$scope.middleware=middleware,$scope.original=angular.copy(middleware),$scope.hasSpec=!!middleware.spec_id,$scope.codemirror={"lineNumbers":!0,"lineWrapping":!0,"tabSize":2,"onLoad":function(editor){var refreshCodemirror,time,_i,_results;for(refreshCodemirror=function(){return editor.refresh()},_results=[],time=_i=200;900>=_i;time=_i+=100)_results.push($timeout(refreshCodemirror,time));return _results}},logsLoop=$loop($scope,function(){return MiddlewareLog.query({"how_many":20}).$promise.then(function(logs){return $scope.logs=logs,logsLoop.schedule()})}),$scope.canBeShared=function(){return $scope.sameAsOriginal()&&!middleware.$updated&&!middleware.$new},$scope.sameAsOriginal=function(){return angular.equals($scope.middleware,$scope.original)},$scope.close=$scope.$close,$scope.share=function(){return $state.transitionTo("spec.share",{"middlewareUuid":$scope.middleware.uuid})},$scope.save=function(){return save(uuid,$scope.middleware),$scope.close()},$scope.saveMetaOnEnter=function(target,keyCode){return 13===keyCode?this[target]=!1:void 0},$scope.saveAndDeploy=function(){var updateOriginal,updated;return updated=save(uuid,$scope.middleware),updateOriginal=function(middlewares){return $scope.middleware=middleware=middlewares.get(updated.uuid),$scope.original=angular.copy(updated)},savePipeline(updateOriginal)},$scope.dragOptions={"start":function(event,ui){return ui.helper.addClass("dragged")},"handle":".modal-header"},$scope["delete"]=function(){return save(uuid),$scope.close()},stopChanges=$scope.$on("$stateChangeStart",function(){return $browser.defer(function(){return $scope.$apply(function(){return $scope.$dismiss()})}),changes.copy=$scope.middleware}),$scope.isLogCollapse=!1}).controller("MiddlewareSpecBarCtrl",function($scope,MiddlewareSpec){return $scope.moreLocal=function(n){var i,spec,_i,_results;for(null==n&&(n=5),_results=[],i=_i=1;n>=1?n>=_i:_i>=n;i=n>=1?++_i:--_i)_results.push((spec=$scope.all_specs.pop())?$scope.specs.push(spec):void 0);return _results},$scope.moreGitHub=function(n){null==n&&(n=5)},$scope.all_specs=MiddlewareSpec.query(function(){return $scope.moreLocal(4)}),$scope.specs=[],$scope.dragOptions={"connectToSortable":".pipeline .middleware-list","helper":"clone","distance":0,"revert":"invalid","start":function(e,ui){var source;return source=$(e.target),ui.helper.css("max-width",source.width()),$scope.$emit("drag.start")},"stop":function(){return $scope.$emit("drag.stop")}}})}.call(this),function(){angular.module("slug.middleware_specs",["ui.router"]).config(function($stateProvider){return $stateProvider.state("specs",{"abstract":!0,"url":"/middlewares","views":{"":{"controller":"MiddlewareSpecCtrl","template":'
'}}}).state("specs.list",{"url":"/","views":{"main":{"templateUrl":"/middleware_specs/index.html","controller":"MiddlewareSpecsListCtrl"}}}).state("spec.new",{"parent":"specs","url":"/new","views":{"main":{"templateUrl":"/middleware_specs/new.html","controller":"MiddlewareSpecNewCtrl"}}}).state("spec",{"parent":"specs","url":"/:middlewareSpecId","views":{"main":{"templateUrl":"/middleware_specs/show.html","controller":"MiddlewareSpecShowCtrl"}}}).state("spec.share",{"parent":"spec.new","url":"/:middlewareUuid","views":{"main@specs":{"templateUrl":"/middleware_specs/new.html","controller":"MiddlewareSpecNewFromCtrl"}}}).state("spec.edit",{"parent":"spec","url":"/edit","views":{"main@specs":{"templateUrl":"/middleware_specs/edit.html","controller":"MiddlewareSpecEditCtrl"}}}).state("spec.github",{"parent":"spec","url":"/github","views":{"main@specs":{"templateUrl":"/middleware_specs/github.html","controller":"MiddlewareSpecGithubCtrl"}}})}).factory("DefaultMiddlewareCode",function(){return"return function(request, next_middleware)\n -- every middleware has to call next_middleware,\n -- so others have chance to process the request/response\n\n -- deal with request\n local response = next_middleware()\n send.notification({msg=response.status, level='info'})\n -- deal with response\n return response\nend"}).factory("MiddlewareSpec",function($resource){return $resource("/api/middleware_specs/:id",{"id":"@_id"})}).controller("MiddlewareSubscriptionCtrl",function($scope,GitHubSpec,GitHubSearchCode){return $scope.spec={"user":"3scale","repo":"no500-brainslug"},$scope.search=function(){var query;return query=[$scope.query,"language:json","in:file","path:brainslug.json"].join(" "),GitHubSearchCode.get({"q":query},function(results){var item;return $scope.results=function(){var _i,_len,_ref,_results;for(_ref=results.items,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)item=_ref[_i],_results.push(GitHubSpec.get({"user":item.repository.owner.login,"repo":item.repository.name}));return _results}()})},$scope.load=function(){return $scope.results=[],GitHubSpec.get($scope.spec,function(result){return $scope.results.push(result)}),GitHubSpec.get($scope.spec,function(result){return $scope.results.push(result)}),GitHubSpec.get($scope.spec,function(result){return $scope.results.push(result)})}}).controller("MiddlewareSpecCtrl",function($scope,$state,$stateParams,flash){return $scope.save=function(spec){return spec.$save(function(){return flash.success="Middleware Spec "+spec.name+" saved",$state.transitionTo("specs.list")})}}).controller("MiddlewareSpecsListCtrl",function($scope,MiddlewareSpec,$location,GitHub){return GitHub.user||(GitHub.user="mikz"),GitHub.token.set("60b6f9b60278b86a843d34f52558df7f016f0399"),$scope.github=GitHub,$scope.specs=MiddlewareSpec.query(),$scope.badges=function(spec){return spec.badges||(spec.badges=[{"icon":"icon-hdd","name":"local"},{"icon":"icon-github","name":"GitHub"},{"icon":"icon-code-fork","name":"fork"},{"icon":"icon-code-unlock","name":"public"}])},$scope.rating=function(spec){var i,rating,stars,_i,_j,_ref;if(spec.rating)return spec.rating;for(rating=Math.ceil(5*Math.random()),stars=[],i=_i=1;rating>=_i;i=_i+=1)stars.push({"icon":"icon-heart"});for(i=_j=_ref=rating+1;5>=_j;i=_j+=1)stars.push({"icon":"icon-heart-empty"});return spec.rating=stars}}).controller("MiddlewareSpecNewCtrl",function($scope,MiddlewareSpec){return $scope.spec=new MiddlewareSpec}).controller("MiddlewareSpecShowCtrl",function($scope,$stateParams,MiddlewareSpec,flash){return $scope.spec=MiddlewareSpec.get({"id":$stateParams.middlewareSpecId}),$scope.save=function(spec){return null==spec&&(spec=$scope.spec),spec.$save(function(){return flash.success="Middleware Spec "+spec.name+" saved"})}}).controller("MiddlewareSpecEditCtrl",function($scope,$stateParams,MiddlewareSpec){var _base;return $scope.spec=MiddlewareSpec.get({"id":$stateParams.middlewareSpecId}),(_base=$scope.spec).author||(_base.author={})}).controller("MiddlewareSpecNewFromCtrl",function($scope,$stateParams,Middleware,MiddlewareSpec){return $scope.spec||($scope.spec=new MiddlewareSpec),$scope.middleware=Middleware.get({"uuid":$stateParams.middlewareUuid},function(middleware){var attributes;return attributes={"code":middleware.code,"name":middleware.name,"description":middleware.description},angular.extend($scope.spec,attributes)})}).controller("MiddlewareSpecGithubCtrl",function($scope,$stateParams,MiddlewareSpec,flash,GitHub,GitHubIntegrator,GitHubMessages,GitHubToken,GitHubValidator){var github,_ref;return $scope.spec||($scope.spec=$scope.$parent.spec),github=$scope.github=angular.copy(null!=(_ref=$scope.spec)?_ref.github:void 0)||{},github.owner||(github.owner=GitHub.user),github.repo||(github.repo=GitHub.repoSuggestion($scope.spec)),GitHubToken.set("60b6f9b60278b86a843d34f52558df7f016f0399"),$scope.save=function(spec){return null==spec&&(spec=$scope.spec),spec.github=github,spec.$save(function(){return flash.success="Middleware GitHub integration saved",$scope.form.$setPristine()})},$scope.validate=function(){var failure,success;return $scope.messages=new GitHubMessages($scope.spec,github),$scope.valid=!1,success=function(){return $scope.valid=!0},failure=function(){return $scope},GitHubValidator($scope.messages).then(success,failure)},$scope.setUpIntegration=function(){var failure,success;return success=function(){return console.log("success")},failure=function(){return console.log("failure")},GitHubIntegrator($scope.messages).then(success,failure)}}).controller("MiddlewareSpecWizardCtrl",function($scope,$stateParams,$location,Middleware,DefaultMiddlewareCode,MiddlewareSpec,flash,$state){var nextStep,template,uuid;return $scope.spec=new MiddlewareSpec({"code":DefaultMiddlewareCode}),(uuid=null!=$stateParams.middlewareUuid)&&($scope.middleware=Middleware.get({"uuid":uuid},function(middleware){var attributes;return attributes=_(middleware).pick("code","name","description"),angular.extend($scope.spec,attributes)})),$scope.current_step||($scope.current_step=0),$scope.steps=["General Info","Author","Middleware"],$scope.next=function(){var step;return(step=nextStep())?template(step):$scope.save()},$scope.goTo=function(index){return template(index+1)},nextStep=function(){var current,steps;return steps=$scope.steps.length,current=$scope.current_step,steps>current?$scope.current_step=++current:void 0},template=function(step){var direction,enter,leave,_ref;return direction=$scope.current_step
current?"future":step===current?"current":current>step?"past":void 0},$scope.save=function(spec){return null==spec&&(spec=$scope.spec),spec.$save(function(){return flash.success="Middleware Spec "+spec.name+" saved",$state.transitionTo("specs.list")})}})}.call(this),function(){var slug;slug=angular.module("slug.controllers"),slug.controller("NavController",function($scope,$state,Service,ServiceSubmenu){return $scope.hideMenu=function(){return $state.is("welcome")},$scope.submenu_template="/services/_submenu.html",$scope.submenu=ServiceSubmenu,$scope.submenu.services=Service.query()}),slug.directive("navigation",function(){return{"controller":"NavController","scope":{}}})}.call(this),function(){angular.module("slug.notifications",["ngResource","slug.search","angular-flash.service","infinite-scroll","slug.directives.filter"]).config(function($stateProvider){return $stateProvider.state("notifications",{"url":"/notifications?filter&select","templateUrl":"/notifications/index.html","controller":"NotificationsListCtrl"})}).controller("NotificationsNavigationCtrl",function($scope,$state,flash,EventsFilter){return $scope.filters.$promise.then(function(){var filter,name;return $scope.filters.unshift(new EventsFilter({"name":"Middlewares","icon":"cogs","builtin":!0,"tokens":[{"key":"channel","op":"=","value":"middleware","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Stats","icon":"bar-chart","builtin":!0,"tokens":[{"key":"channel","op":"=","value":"stats","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Syslog","icon":"desktop","builtin":!0,"tokens":[{"key":"channel","op":"=","value":"syslog","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Notifications","builtin":"notifications","icon":"asterisk","tokens":[{"key":"level","op":"@","value":"error","active":!0},{"key":"level","op":"@","value":"alert","active":!0},{"key":"level","op":"@","value":"warn","active":!0},{"key":"level","op":"@","value":"info","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Errors","builtin":"errors","icon":"asterisk","tokens":[{"key":"level","op":"@","value":"error","active":!0},{"key":"level","op":"@","value":"alert","active":!0},{"key":"level","op":"@","value":"warn","active":!0}]})),(name=$state.params.filter)&&(filter=_.find($scope.filters,function(f){return f.builtin===name}))?$scope.search.use(filter):void 0}),$scope.helpTemplate="notifications"}).factory("Event",function($resource){return $resource("/api/events/:id/:action",{"id":"@_id"},{"star":{"method":"POST","isArray":!1,"params":{"action":"star"}},"unstar":{"method":"DELETE","isArray":!1,"params":{"action":"star"}},"search":{"method":"GET","isArray":!0,"params":{}},"count":{"method":"GET","isArray":!1,"params":{"action":"count"}},"wipe":{"method":"DELETE","params":{"id":"all"}}})}).factory("EventsFilter",function($resource){return $resource("/api/filters/events/:id",{"id":"@_id"})}).controller("NotificationsListCtrl",function($scope,$state,Event,Search,flash,EventsFilter,$stateParams){return $scope.selected_event=$stateParams.select,$scope.search=new Search(Event,$scope),$scope.filters=EventsFilter.query(),$scope.newFilter=function(tokens){return new EventsFilter({"tokens":tokens,"name":"new filter"})},$scope.highlight=function(event){return Event.highlight({"id":event._id},{"highlighted":!0})},$scope.wipe=function(){return Event.wipe(function(){return $scope.search["do"]()}),flash.info="All notifications have been removed."}})}.call(this),function(){angular.module("slug.root",["ui.router","slug.setup"]).config(function($urlRouterProvider){return $urlRouterProvider.when("/","/setup")})}.call(this),function(){var __bind=function(fn,me){return function(){return fn.apply(me,arguments)}};angular.module("slug.service",["ngResource","ui.router","slug.service_submenu.service"]).factory("Service",function($resource,$location){var Service;return Service=$resource("/api/services/:id",{"id":"@_id"}),Service.prototype.host=function(){return""+this.code()+"-"+$location.host()},Service.prototype.code=function(){var _ref;return null!=(_ref=this.endpoints[0])?_ref.code:void 0},Service}).constant("ServicesResolver",function(Service){return Service.query().$promise}).constant("ServiceResolver",function($stateParams,Service){return Service.get({"id":$stateParams.serviceId}).$promise}).config(function($stateProvider,ServicesResolver,ServiceResolver,ServiceSubmenu){var services;return services={"service":ServiceResolver,"services":ServicesResolver},$stateProvider.state("services",{"url":"/services","templateUrl":"/services/index.html","controller":"ServicesListCtrl"}).state("service-new",{"url":"/services/new","templateUrl":"/services/new.html","controller":"ServiceNewCtrl","onEnter":function(){return ServiceSubmenu.show=!1},"onExit":function(){return ServiceSubmenu.show=!0}}).state("service",{"url":"/services/:serviceId","abstract":!0,"controller":"ServiceCtrl","templateUrl":"/services/layout.html","resolve":services,"onEnter":function(service){return ServiceSubmenu.service=angular.copy(service),ServiceSubmenu.active=!0},"onExit":function(){return ServiceSubmenu.active=!1}}).state("service.show",{"url":"","parent":"service","templateUrl":"/services/show.html","controller":"ServiceShowCtrl","resolve":services}).state("service.demo",{"url":"/demo_calls","parent":"service","templateUrl":"/services/demo_calls.html","controller":"ServiceDemoCallsCtrl"}).state("service.edit",{"parent":"service","url":"/edit","templateUrl":"/services/edit.html","controller":"ServiceEditCtrl"}).state("service.destroy",{"parent":"service","url":"/destroy","views":{"@":{"templateUrl":"/services/destroy.html","controller":"ServiceDestroyCtrl"}}})}),angular.module("slug.controllers.services",["slug.services","slug.controllers","slug.stats","ngResource","slug.services.demo"]).factory("ServiceStatsDashboard",function($resource,$state){return $resource("/api/services/:serviceId/stats/dashboard",{"serviceId":function(){return $state.params.serviceId}})}).factory("ServicesDashboard",function(Service,ServiceStatsDashboard,$q,$timeout){var ServicesDashboard;return ServicesDashboard=function(){function ServicesDashboard(){this.load_all_stats=__bind(this.load_all_stats,this),this.services=Service.query(),this.stats={}}return ServicesDashboard.prototype.when_ready=function(f){return this.services.$promise.then(f)},ServicesDashboard.prototype.load_service_stats=function(service_id){return ServiceStatsDashboard.get({"serviceId":service_id}).$promise.then(function(_this){return function(stats){return _this.stats[service_id]=stats}}(this))},ServicesDashboard.prototype.refresh=function($scope){var last_timeout,update_stats;return last_timeout=null,update_stats=function(_this){return function(){return _this.load_all_stats().then(function(){return last_timeout=$timeout(update_stats,1e4)})}}(this),$scope.$on("$destroy",function(){return $timeout.cancel(last_timeout)}),this.when_ready(update_stats)},ServicesDashboard.prototype.load_all_stats=function(){var promises,service;return promises=function(){var _i,_len,_ref,_results;for(_ref=this.services,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)service=_ref[_i],_results.push(this.load_service_stats(service._id));return _results}.call(this),$q.all(promises)},ServicesDashboard}()}).controller("ServicesListCtrl",function($scope,ServicesDashboard){return $scope.dashboard||($scope.dashboard=new ServicesDashboard),$scope.dashboard.refresh($scope)}).controller("ServiceDashboardCtrl",function($scope){var stats;return stats=function(){return $scope.dashboard.stats[$scope.service._id]},$scope.$watch(stats,function(stats){return $scope.stats=stats}),$scope.template={"chart":{"height":150},"plotOptions":{"series":{"animation":!1}}}}).controller("ServiceCtrl",function($scope,services,service){return $scope.services||($scope.services=services),$scope.service=service}).controller("ServiceDemoCallsCtrl",function($scope,service,DemoApis){return $scope.demo=DemoApis[service.demo]}).controller("ServiceShowCtrl",function($scope,$location,service,DemoApis){var _ref;return $scope.endpoint=null!=(_ref=service.endpoints)?_ref[0].code:void 0,$scope.proxy_url=""+$location.protocol()+"://"+("function"==typeof service.host?service.host():void 0)+"/",$scope.demo=DemoApis[service.demo],$scope.integration=service.demo?"demo":"normal",$scope.helpTemplate="endpoints",$scope.copy=function(node){var clip,text;return text=node.textContent.trim(),clip=new ZeroClipboard,clip.setText(text)}}).controller("ServiceDestroyCtrl",function($scope,Service,$stateParams,flash,$location,$analytics){return $scope.service||($scope.service=Service.get({"id":$stateParams.serviceId})),$scope.destroy=function(){return flash.warning="Deleting Service ...",$scope.service.$remove(function(service){var equals,for_removal,index;return equals=_.partial(angular.equals,service),(for_removal=_($scope.services).find(equals))&&(index=$scope.services.indexOf(for_removal),$scope.services.splice(index,1)),flash.info="Service deleted",$analytics.eventTrack("service.deleted",{"service_id":service._id}),$location.path("services")})}}).controller("ServiceNewCtrl",function($scope,Service,DemoApis,DemoService,$analytics){return $scope.service=new Service({"endpoints":[{}]}),$scope.demos=DemoApis,$scope.$emit("serviceReset"),$scope.useDemo=function(demo){return DemoService.update($scope.service,demo),$analytics.eventTrack("demo.use",{"demo":demo})}}).controller("ServiceEditCtrl",function($scope,$state,$stateParams,Service,$location,$analytics,$rootScope){return $scope.service||($scope.service=Service.get({"id":$stateParams.serviceId})),$scope.suffix=$location.host(),$scope.resetDemo=function(){return delete $scope.service.demo,delete $scope.service.logo},$scope.save=function(){return $scope.service.$save(function(service){return $state.go("service.show",{"serviceId":service._id}).then(function(){return $rootScope.$emit("serviceUpdated",service),$analytics.eventTrack("service.save",{"service_id":service._id})})})}}).controller("ServiceEndpointCtrl",function($scope,uuid){var _base;return(_base=$scope.endpoint).code||(_base.code=uuid().substr(0,8)),$scope.original=angular.copy($scope.endpoint),$scope.edit=function(){return $scope.editing=!0},$scope.apply=function(){return $scope.original=angular.copy($scope.endpoint),$scope.editing=!1},$scope.cancel=function(){return angular.extend($scope.endpoint,$scope.original),$scope.editing=!1}})}.call(this),function(){angular.module("slug.setup",["ui.router","slug.user_settings"]).config(function($stateProvider){var Config;return Config={"config":function(UserSettings){return UserSettings.$promise}},$stateProvider.state("setup",{"url":"/setup","templateUrl":"/setup/show.html","controller":"SetupCtrl","resolve":Config}).state("pair",{"url":"/pair","templateUrl":"/setup/pair.html","controller":"PairCtrl","resolve":Config})}).controller("SetupCtrl",function($scope,$state,config,flash,OnPremise){var setup;return setup=$scope.setup={"report_usage":!0},config.get("set_up")&&$state.go("dashboard"),$scope.saveSetup=function(){var failure,update_config,uuid;return failure=function(){return flash.error="There was an error when setting up this Traffic Monitor. Dou you have internet connection?"},update_config=function(){return config.extend({"report_usage":setup.report_usage,"set_up":!0}),config.$promise.then(function(){return flash.success="Successfully set up your Traffic Monitor",$state.go("dashboard")})},setup.report_usage?(uuid=config.get("uuid"),OnPremise.register(uuid).then(update_config,failure)):update_config()}}).controller("PairCtrl",function($scope,$state,Brain,OnPremise){return Brain.$promise.then(function(){return $scope.get_key=""+Brain.host+"/on_premise/link"}),$scope.setup={},$scope.pair=function(){var key,linking;return key=$scope.setup.pairing_key,linking=OnPremise.link(key),linking.success(function(){return $state.go("dashboard")})}})}.call(this),function(){angular.module("slug.traces.services",["ngResource","slug.services.pretty_print"]).factory("ServiceTrace",function($resource,$state,Trace){var ServiceTrace;return ServiceTrace=$resource("/api/services/:service_id/traces/:id/:action/",{"id":"@_id","service_id":function(){return $state.params.serviceId}},{"search":{"method":"GET","isArray":!0,"params":{"action":"search_for_index"}},"count":{"method":"GET","isArray":!1,"params":{"action":"count"}},"wipe":{"method":"DELETE","params":{"id":"all"}},"redo":{"method":"POST","params":{"action":"redo"}}}),ServiceTrace.prototype.$trace=function(){return new Trace({"_id":this._id})},ServiceTrace.prototype.$star=function(f){return this.$trace().$star(f)},ServiceTrace.prototype.$unstar=function(f){return this.$trace().$unstar(f)},ServiceTrace}).factory("Trace",function($resource){return $resource("/api/traces/:id/:action/",{"id":"@_id"},{"search":{"method":"GET","isArray":!0,"params":{"action":"search_for_index"}},"count":{"method":"GET","isArray":!1,"params":{"action":"count"}},"star":{"method":"POST","isArray":!1,"params":{"action":"star"}},"unstar":{"method":"DELETE","isArray":!1,"params":{"action":"star"}},"wipe":{"method":"DELETE","params":{"id":"all"}},"redo":{"method":"POST","params":{"action":"redo"}}})}),angular.module("slug.traces",["slug.traces.services","slug.controllers","slug.services.filters","ui.bootstrap.dropdownToggle","ui.bootstrap.pagination","ui.bootstrap.collapse","slug.directives.highlight"]).controller("TracesNavigationCtrl",function($scope,$state,TracesFilter){return $scope.filters.$promise.then(function(){var filter,name;return $scope.filters.unshift(new TracesFilter({"_id":3,"name":"Starred","icon":"star","builtin":"starred","tokens":[{"key":"starred","op":"=","value":!0,"active":!0}]})),$scope.filters.unshift(new TracesFilter({"_id":2,"name":"Errors","icon":"minus-sign","builtin":"errors","tokens":[{"key":"res.status","op":">=","value":400,"active":!0},{"key":"res.status","op":"<=","value":600,"active":!0}]})),$scope.filters.unshift(new TracesFilter({"_id":1,"name":"Traffic","icon":"exchange","builtin":"traffic","tokens":[]})),(name=$state.params.filter)&&(filter=_.find($scope.filters,function(f){return f.builtin===name}))?$scope.search.use(filter):void 0}),$scope.helpTemplate="all_traces"}).controller("TracesIndexCtrl",function($scope,Service,Trace,Search,TracesFilter,flash,$stateParams){return $scope.selected_trace=$stateParams.select,$scope.search=new Search(Trace,$scope),$scope.services=Service.query(),$scope.redo=function(trace){var redo;return redo=Trace.redo({"_id":trace._id}),redo.$promise},$scope.filters=TracesFilter.query(),$scope.serviceCode=function(trace){var _ref;return $scope.services_hash||($scope.services_hash=_.indexBy($scope.services,"_id")),trace.$service_code||(trace.$service_code=null!=(_ref=$scope.services_hash[trace.service_id])?_ref.code():void 0)},$scope.newFilter=function(tokens){return new TracesFilter({"tokens":tokens,"name":"new filter"})},$scope["delete"]=function(trace){return trace.$remove(function(){return $scope.search.remove(trace),flash.success="Trace deleted"})},$scope.wipe=function(){return Trace.wipe(function(){return $scope.search["do"]()}),flash.info="All traces have been removed."},$scope.load=function(trace){var _ref;return null==(null!=(_ref=trace.res)?_ref.body:void 0)?Trace.get({"id":trace._id},function(full){return angular.extend(trace,full)}):void 0}}).controller("ServiceTracesIndexCtrl",function($scope,ServiceTrace,Search,flash,TracesFilter,Trace){return $scope.search=new Search(ServiceTrace,$scope),$scope.redo=function(trace){var redo;return redo=Trace.redo({"_id":trace._id}),redo.$promise},$scope.filters=TracesFilter.query(),$scope["delete"]=function(trace){return trace.$trace().$remove(function(){return $scope.search.remove(trace),flash.success="Trace deleted"})},$scope.wipe=function(){return ServiceTrace.wipe(function(){return $scope.search["do"]()}),flash.info="All traces have been removed."},$scope.helpTemplate="traces",$scope.newFilter=function(tokens){return new TracesFilter({"tokens":tokens,"name":"new filter"})},$scope.load=function(trace){var _ref;return null==(null!=(_ref=trace.res)?_ref.body:void 0)?Trace.get({"id":trace._id},function(full){return angular.extend(trace,full)}):void 0}}).controller("ServiceTraceShowCtrl",function($scope,Trace,$stateParams){return $scope.trace||($scope.trace=Trace.get({"id":$stateParams.traceId}))}).controller("TraceBodyCtrl",function($scope,prettyPrint){return $scope.togglePrettyBody=function(){return $scope.original?($scope.body=$scope.original,delete $scope.original):($scope.original=$scope.body,$scope.body=prettyPrint($scope.contentType,$scope.body))}}).directive("slugTrace",function(){return{"templateUrl":"/traces/_show.html","scope":{"trace":"=slugTrace"},"link":function(scope){return scope.response=scope.trace.res,scope.request=scope.trace.req}}}).directive("traceRequest",function(){return{"scope":{"request":"=traceRequest"},"templateUrl":"/traces/_request.html","link":function(scope){var _ref;return scope.contentType=null!=(_ref=scope.request.headers)?_ref["Content-Type"]:void 0}}}).directive("traceResponse",function(){return{"scope":{"response":"=traceResponse"},"templateUrl":"/traces/_response.html","controller":function($scope){return $scope.hasHeaders||($scope.hasHeaders=function(response){return!_.isEmpty(response.headers)})},"link":function(scope){var type,_ref;return(type=null!=(_ref=scope.response.headers)?_ref["Content-Type"]:void 0)?scope.contentType=type.split(";")[0]:void 0}}}).directive("traceHeaders",function(){return{"scope":{"headers":"=traceHeaders"},"templateUrl":"/traces/_headers.html"}}).directive("tracePipeline",function(){return{"scope":{"pipeline":"=tracePipeline"},"templateUrl":"/traces/_pipeline.html","controller":function($scope){return $scope.hasResponse||($scope.hasResponse=function(response){return response.status||response.body||!_.isEmpty(response.headers)})}}})}.call(this),function(){angular.module("slug.directives",["slug.directives.pretty_print","slug.directives.list","slug.directives.confirm","slug.directives.token_input","slug.directives.navigation","slug.directives.demo_block","slug.service_submenu"]).directive("apitools",function($http,$q){return{"restrict":"EA","scope":{},"compile":function(){var http,name;return name=$q.defer(),http=$http.get("/api/get_slug_name"),http.then(function(response){return name.resolve(response.data.slug_name)}),function(scope){return scope.name=name}}}}).directive("relHref",function($location){return{"link":function(scope,element,attrs){var href;return href="."+$location.path()+attrs.relHref,element.attr("href",href).attr("target","_self")}}}).directive("preventDisabled",function(){return{"link":function(scope,element,attrs){return element.on(attrs.preventDisabled,function(){return!1})}}}).directive("zeroclipboard",function(){return{"link":function(scope,element){var button,clip;return button=angular.element(''),element.after(button),clip=new ZeroClipboard(button),clip.on("dataRequested",function(){return clip.setText($(this).prev().text())})}}}).directive("focus",function(){return{"link":function(scope,element){var giveFocus,isVisible;if(element.is("input"))return giveFocus=function(visible){return visible?element.focus():void 0
-},isVisible=function(){return element.is(":visible")},scope.$watch(isVisible,giveFocus)}}}).directive("fillHeight",function($window){var TRANSITION_END,window;return TRANSITION_END="webkitTransitionEnd oTransitionEnd transitionend msTransitionEnd",window=angular.element($window),{"link":function(scope,element,attributes){var body,parent,size,top,total;return body=element.closest(".modal-body"),parent=element.closest(attributes.fillHeight),window.on("resize.fillHeight",function(){return scope.$apply()}),element.closest(".modal").on(TRANSITION_END,function(){return scope.$apply()}),total=function(){return body.height()},top=function(){return parent.position().top},size=function(){return total()-top()},scope.$on("destroy",function(){return window.unbind("resize.fillHeight")}),scope.$watch(size,function(size){return element.css("height",size)})}}}).directive("author",function(){return{"scope":{"author":"="},"link":function(scope,element){var author,github,link,name;return(author=scope.author)?(link=angular.element(""),name=author.name,(github=author.github)?(link.attr({"title":name}),link.attr({"href":"//github.com/"+github}),link.text("@"+github)):link.text(name),element.html(link)):void element.text("unknown")}}}).directive("truncate",function($interpolate,$compile){return{"restrict":"A","scope":!0,"link":function(scope,element,attributes){var expression,interpolate,length,template;return template='{{ truncated }}\n …\n {{ rest }}\n',expression=element.text(),interpolate=$interpolate(expression),length=attributes.truncate,element.html(template),scope.$watch(interpolate,function(text){return text=String(text),scope.truncated=text.substring(0,length),scope.rest=text.substring(length),$compile(element.contents())(scope)})}}}).directive("draggable",function(){return{"restrict":"CA","compile":function(element){return element.draggable(),function(scope,element,attrs){var config;return config=attrs.draggable,scope.$watch(config,function(options){return element.draggable(options)})}}}}).directive("logLevel",function(){return{"scope":{"logLevel":"="},"link":function(scope,element){var level;return level=scope.logLevel,element.text(level),element.addClass("label-"+level)}}}).directive("tabContentTransclude",function(){return{"link":function(scope,element){var invalidCount,updateInvalid;return updateInvalid=function(invalid){return scope.tab.invalid=invalid>0},invalidCount=function(){return element[0].querySelectorAll("input.ng-invalid,select.ng-invalid").length},scope.$watch(invalidCount,updateInvalid)}}}).directive("tabHeadingTransclude",function(){return{"link":function(scope,elm){var invalid;return invalid=function(){return scope.invalid},scope.$watch(invalid,function(isInvalid){return elm.parent().toggleClass("invalid",isInvalid)})}}}).directive("rel",function(){return{"restrict":"A","compile":function(element,attrs){return"external"===attrs.rel?element.attr("target","_blank"):void 0}}})}.call(this),function(){angular.module("slug.directives.confirm",[]).directive("slugConfirm",function(){var ACTIVE_CLASS;return ACTIVE_CLASS="slug-confirm-active",{"transclude":!0,"priority":-1,"template":'\n\n Yes | No\n',"link":function(scope,element){var confirmation;return element.addClass("slug-confirm"),confirmation=element.find(".slug-confirmation"),confirmation.bind("focusout",function(){return element.removeClass(ACTIVE_CLASS)}),element.bind("click",function(event){return element.toggleClass(ACTIVE_CLASS),event.target!==confirmation.get(0)?(event.stopImmediatePropagation(),event.preventDefault()):void 0})}}})}.call(this),function(){angular.module("slug.directives.demo_block",["slug.user_settings"]).directive("demoBlock",function(UserSettings){return{"compile":function(element,attrs){var closeLink,hidden,setting;return element.addClass("demo-block"),setting="hide_demo_block_"+attrs.demoBlock,element.hide(),hidden=UserSettings.get(setting,function(hidden){return hidden||(hidden=!1),element.toggle(!hidden)}),closeLink=angular.element(''),closeLink.on("click",function(){return element.hide(),UserSettings.set(setting,!0)}),element.prepend(closeLink)}}})}.call(this),function(){angular.module("slug.directives.filter",["slug.directives"]).controller("NavigationFilterCtrl",function($scope,flash){return $scope.canEdit=function(filter){return filter&&!filter.builtin},$scope.canDelete=function(filter){return $scope.canEdit(filter)&&!!filter._id},$scope.isEditing=function(filter){var _ref;return(null!=(_ref=$scope.editing)?_ref.$filter:void 0)===filter},$scope.edit=function(filter){var _ref;return $scope.editing=angular.copy(filter),null!=(_ref=$scope.editing)?_ref.$filter=filter:void 0},$scope.update=function(filter){return filter.$save(function(){return flash.success="Filter saved",$scope.editing=null})},$scope.apply=function(filter){return $scope.edit(null),$scope.search.use(filter)},$scope["delete"]=function(filter){return filter.$delete(function(){return flash.info="Filter removed",$scope.remove(filter)})},$scope.remove=function(filter){return $scope.filters=_($scope.filters).without(filter)},$scope.clear=function(){return $scope.edit(null),$scope.search.clear()},$scope.off=function(){return $scope.search.clear()},$scope.save=function(filter){var copy;return copy=angular.copy($scope.editing),angular.extend(filter,copy),filter.$save(function(){return flash.info="Filter saved",$scope.edit(null),$scope.apply(filter)})},$scope.abort=function(filter){return filter._id||$scope.remove(filter),$scope.edit(null)},$scope.addNew=function(){var filter;return filter=$scope.newFilter([]),filter.name=null,$scope.filters.push(filter),$scope.edit(filter)}}).directive("listFilter",function($rootScope){return{"templateUrl":"/navigation/filter.html","controller":"NavigationFilterCtrl","transclude":!0,"scope":!0,"link":function(scope,element,attrs){return scope.listFilterTitle=attrs.filterTitle,$rootScope.$on("editFilter",function(event,filter){return scope.edit(filter)})}}}).directive("editFilter",function(){return{"template":'',"replace":!0,"transclude":!0,"restrict":"E","priority":0,"scope":!0,"link":function(scope,element,attrs){var input;return input=element.find("input"),scope.placeholder=attrs.placeholder,element.removeAttr("placeholder")}}})}.call(this),function(){angular.module("slug.directives.highlight",[]).directive("highlight",function($browser,animationFrame){var DEFAULT_THEME;return DEFAULT_THEME="default",{"scope":{"code":"=highlight","contentType":"=?highlightContentType","transform":"@highlightTransform","theme":"@highlightTheme"},"link":function(scope,element,attrs){var binding,output,theme,transform,update;return output=element.get(0),theme=scope.theme||DEFAULT_THEME,element.addClass("cm-s-"+theme),transform=function(code){switch(scope.transform){case"json":return scope.contentType="application/json",angular.toJson(code,!0);default:return code}},update=function(){return $browser.defer(function(){var code;return code=transform(scope.code),animationFrame.withFallback(function(){return CodeMirror.runMode(code,scope.contentType,output)})})},scope.code&&update(),null!=attrs.highlightRefresh?(binding=function(){return scope.code},scope.$watch(binding,update)):void 0}}})}.call(this),function(){angular.module("slug.directives.list",["ui.bootstrap.collapse","ngAnimate"]).controller("SlugListItemController",function($scope){return $scope.slugListItemToggle=function(){return $scope.isOpen=!$scope.isOpen}}).directive("slugList",function(){return{"restrict":"A","transclude":!1,"link":function(scope,element){return element.addClass("slug-list")}}}).directive("slugItem",function($location){return{"restrict":"A","controller":"SlugListItemController","transclude":!1,"link":function(scope,element,attrs){var anchor,item;return scope.$watch("isOpen",function(isOpen){return element.toggleClass("opened",!!isOpen)}),scope.isOpen=scope.$eval(attrs.slugItemExpanded),item=scope.$eval(attrs.slugItem),item&&scope.isOpen&&(anchor=angular.element("",{"name":"list-item-"+item._id}),element.prepend(anchor),$location.hash("list-item-"+item._id)),element.addClass("slug-item")}}}).directive("heading",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("toggle",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("actions",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0,"link":function(scope){return scope.active_actions=0,scope.$on("actions.running",function(){return scope.active_actions+=1}),scope.$on("actions.finished",function(){return scope.active_actions-=1})}}}).directive("actionButton",function(){return{"restrict":"E","require":"^actions","replace":!0,"template":''}}).directive("actionItem",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("action",function($compile){return{"scope":!0,"compile":function(element,attrs){var _icon,_text;return element.addClass("action"),_icon=angular.lowercase(attrs.icon),_text=attrs.text,function(scope,element){var icon,text;return icon=angular.element(''),$compile(icon)(scope),element.append(icon),scope.icon=_icon,_text?(text=angular.element(" {{ text }}"),$compile(text)(scope),icon.append(text),scope.text=_text):void 0}}}}).directive("actionCall",function(){return{"link":function(scope,element,attrs){return element.bind("click",function(){return scope.$emit("actions.running"),scope.$eval(attrs.actionCall).then(function(){return scope.$emit("actions.finished")})})}}}).directive("details",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("detail",function(){return{"restrict":"EA","template":'',"replace":!0,"transclude":!0}}).directive("content",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}})}.call(this),function(){angular.module("slug.directives.navigation",["slug.filters"]).controller("MiddlewareNavigationCtrl",function($scope){return $scope}).controller("ServiceNavigationCtrl",function($scope){return $scope}).directive("middlewareNavigation",function(){return{"controller":"MiddlewareNavigationCtrl","templateUrl":"/navigation/middleware.html"}}).directive("serviceNavigation",function(){return{"controller":"ServiceNavigationCtrl","templateUrl":"/navigation/service.html"}}).directive("tracesNavigation",function(){return{"controller":"TracesNavigationCtrl","templateUrl":"/navigation/traces.html"}}).directive("analyticsNavigation",function(){return{"controller":"DashboardsNavigationCtrl","templateUrl":"/navigation/analytics.html"}})}.call(this),function(){var pretty_print,syntax_highlight;pretty_print=angular.module("slug.directives.pretty_print",[]),pretty_print.directive("prettyPrint",function($sce){return{"restrict":"E","template":'',"replace":!0,"scope":{"object":"=value","theme":"@theme","language":"@lang"},"link":function(scope,element){var binding,callback,object,theme,update,_ref;return binding=function(){return scope.object},theme=scope.theme||"default",element.addClass("cm-s-"+theme),update=function(object){var lang,text;if(object){switch(scope.language){case"json":text=angular.toJson(object,!0),lang={"name":"javascript","json":!0};break;default:text=object}return scope.prettyPrintCode=$sce.trustAsHtml(syntax_highlight(text,lang))}},object=scope.$eval(binding),(callback=null!=object&&null!=(_ref=object.$promise)?_ref.then:void 0)?callback(update):scope.$watch(binding,update)}}}),syntax_highlight=function(text,language){var node;return null==language&&(language="null"),text?(node=document.createElement("div"),CodeMirror.runMode(text,language,node),node.innerHTML):void 0}}.call(this),function(){angular.module("slug.directives.search",[]).controller("SearchBoxCtrl",function($scope,flash){var tokens;return tokens=$scope.search.tokens,$scope.search.type="basic",$scope.saveFilter=function(){var filter;return filter=$scope.search.using_filter,filter.tokens=tokens(),filter.$save(function(){return flash.success="Filter saved"})},$scope.saveFilterAs=function(){var filter;return filter=$scope.newFilter(tokens()),filter.$save(function(){return flash.success="Filter created",$scope.filters.push(filter),$scope.search.used_filter=filter,$scope.$emit("editFilter",filter)})}}).directive("searchLoading",function(){return{"template":'',"link":function(scope,element,attributes){var loading;return loading=attributes.searchLoading||"search.loading",scope.$watch(loading,function(loading){return element.toggle(!!loading)})}}}).directive("searchLoadMore",function(){return{"template":'',"transclude":!0,"link":function(scope,element){return scope.$watch("search.canLoadMore()",function(canLoadMore){return element.toggle(!!canLoadMore)})}}}).directive("searchBox",function(){return{"templateUrl":"/search/search_box.html","controller":"SearchBoxCtrl","replace":!0,"restrict":"EA"}}).controller("ControlBoxCtrl",function($scope,TokenHeuristics){return $scope.selected=[],$scope.toggleAllItems=function(){return 0===$scope.selected.length?$scope.selected=$scope.search.results:$scope.deselect()},$scope.hasSelected=function(){return $scope.selected.length>0},$scope.deselect=function(items){var _ref;return $scope.selected=null!=items?(_ref=_($scope.selected)).without.apply(_ref,items):[]},$scope.highlightItems=function(items){var item,starred,toggle,_i,_len;for(starred=_(items).any(function(item){return item.starred}),toggle=starred?"$unstar":"$star",_i=0,_len=items.length;_len>_i;_i++)item=items[_i],item[toggle]();return $scope.deselect()},$scope.filterItems=function(items){var heuristics;return heuristics=new TokenHeuristics(items),heuristics.singular("level","channel","req.method","res.status","req.host","req.uri"),$scope.suggestions=heuristics.suggestions(),$scope.deselect()},$scope.trashItems=function(items){var item,_i,_len;for(_i=0,_len=items.length;_len>_i;_i++)item=items[_i],item.$delete(function(item){return $scope.search.remove(item)});return $scope.deselect(items)},$scope.toggleItem=function(item){return item?$scope.selected.indexOf(item)>=0?$scope.selected=_($scope.selected).without(item):$scope.selected.push(item):void 0}}).directive("controlBox",function(){return{"templateUrl":"/search/control_box.html","controller":"ControlBoxCtrl","replace":!0,"restrict":"EA"}}).directive("loadMore",function(){return{"restrict":"E","replace":!0,"transclude":!0,"template":'\n \n
'}}).directive("toggleItem",function(){return{"replace":!0,"template":'',"scope":!0,"link":function(scope,element,attributes){return scope.$watch("selected.indexOf(item) >= 0",function(selected){return scope.checked=selected,element.addClass("slug-item-check")}),scope.$watch(attributes.toggleItem,function(item){return scope.item=item})}}}).directive("toggleAllItems",function(){return{"replace":!0,"template":'',"link":function(scope,element){var areSame,input;return input=element.filter("input"),areSame=function(){return scope.selected===scope.search.results},input.bind("click",function(){return scope.toggleAllItems(),input.prop("checked",areSame())}),scope.$watch(areSame,function(same){return input.prop("checked",same)})}}})}.call(this),function(){var service_submenu;angular.module("slug.service_submenu.service",[]).constant("ServiceSubmenu",service_submenu={"service":null,"show":!0,"active":!1,"isSelected":function(service){var _ref;return(null!=(_ref=service_submenu.service)?_ref._id:void 0)===(null!=service?service._id:void 0)},"use":function(service){return service_submenu.service=service},"update":function(service){return service_submenu.isSelected(service)?service_submenu.use(service):void 0}}),angular.module("slug.service_submenu",["slug.service","slug.utils","slug.service_submenu.service"]).factory("ActiveDocsCheck",function($http,$state){return function(service_id){return null==service_id&&(service_id=$state.params.serviceId),service_id?$http({"method":"GET","url":"/api/services/"+service_id+"/docs"}):void 0}}).controller("ServiceSubmenuCtrl",function($scope,$rootScope,$state,$loop,Service,ServiceSubmenu,ActiveDocsCheck,UserSettings){return $scope.submenu=ServiceSubmenu,$scope.config=UserSettings,$scope.$watch(function(){return ServiceSubmenu.service},function(service){return $scope.service_navigation=(null!=service?service._id:void 0)?"/navigation/service.html":"/navigation/all_services.html"}),$rootScope.$on("serviceReset",function(){return ServiceSubmenu.use(null)}),$rootScope.$on("serviceUpdated",function(event,service){return ServiceSubmenu.services=Service.query(function(){return ServiceSubmenu.update(service)})}),$scope.selectService=function(service){var params,root,scoped,state;return service?(params={"serviceId":service._id},$state.includes("service")?$state.transitionTo($state.current.name,params):(scoped=$state.get("service."+$state.current.name),scoped?$state.transitionTo(scoped,params):$state.transitionTo("service.show",params))):(ServiceSubmenu.use(service),root=$state.current.name.replace("service.",""),state=$state.get(root),void $state.transitionTo(state&&"service"!==state.parent?state:"services"))}}).directive("serviceSubmenu",function(){return{"templateUrl":"/services/_submenu.html","controller":"ServiceSubmenuCtrl","replace":!0}})}.call(this),function(){var __bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};angular.module("slug.directives.token_input",["slug.directives"]).factory("KEY_CODES",function(){return{"LEFT_ARROW":37,"RIGHT_ARROW":39,"ENTER":13,"BACKSPACE":8,"DELETE":46}}).factory("TokenCollection",function(){var TokenCollection;return TokenCollection=function(){function TokenCollection(tokens){this.tokens=tokens}return TokenCollection.prototype.has=function(token){var existing,string,_i,_len,_ref;for(string=token.toString(),_ref=this.tokens,_i=0,_len=_ref.length;_len>_i;_i++)if(existing=_ref[_i],existing.toString()===string)return existing;return!1},TokenCollection}()}).factory("TokenFormat",function(){var AVAILABLE_OPERATORS,key,ops;return AVAILABLE_OPERATORS=[">=",">","<","<=","=","="],ops=AVAILABLE_OPERATORS.join("|"),key="[^\\s=><]+",new RegExp("("+key+")\\s*("+ops+")\\s*("+key+")")}).factory("Token",function(TokenFormat){var Token;return Token=function(){function Token(attributes){null==attributes&&(attributes={}),angular.extend(this,attributes),delete this.new_token}return Token.prototype.pattern=TokenFormat.source,Token.prototype.toString=function(){return[this.key,this.op,this.value].join(" ")},Token}()}).factory("NewToken",function(Token,TokenFormat){var NewToken;return NewToken=function(_super){function NewToken(attributes){null==attributes&&(attributes={}),this.reset=__bind(this.reset,this),this.parse=__bind(this.parse,this),this.new_token=!0,NewToken.__super__.constructor.call(this,attributes)}return __extends(NewToken,_super),NewToken.prototype.parse=function(){var key,match,op,token,value,_,_ref;return(match=null!=(_ref=this.input)?_ref.match(TokenFormat):void 0)?(_=match[0],key=match[1],op=match[2],value=match[3],token=new Token({"key":key,"op":op,"value":value})):void console.warn(""+this.input+" does not match "+this.pattern)},NewToken.prototype.reset=function(){return this.input=null},NewToken}(Token)}).controller("TokenSuggestionsController",function($scope){return $scope.removeToken=function(token){return $scope.suggestions=_($scope.suggestions).without(token)},$scope.toggleToken=function(token){return token.active=!0,$scope.tokens.push(token),$scope.removeToken(token)}}).controller("TokenInputController",function($scope,NewToken,Token,flash){return $scope.tokens||($scope.tokens=[]),$scope.new_token=new NewToken,$scope.addToken=function(new_token){var token;return(token=new_token.parse())?($scope.tokens.push(token),token.active=!0,new_token.reset()):flash.warning=""+new_token.input+" is not valid filter syntax"},$scope.selectPrev=function(){var index;return index=null!=$scope.selected?$scope.selected:$scope.tokens.length,index=index>0?index-1:0,$scope.select(index)},$scope.selectNext=function(){var index;return index=$scope.selected,index=null!=index?index+1:$scope.tokens.length,$scope.select(index)},$scope.select=function(index){var max;return max=$scope.tokens.length,index=index>max?max:index,index=0>index?0:index,$scope.selected=index},$scope.removeToken=function(token){return $scope.tokens=_($scope.tokens).without(token)},$scope.toggleToken=function(token){return token.active=!token.active},$scope["delete"]=function(){var selected;return selected=$scope.tokens[$scope.selected],$scope.removeToken(selected),!!selected},$scope.edit=function(token){var index,previous;return previous=$scope.editing,index=$scope.tokens.indexOf(token),$scope.editing=null!=index&&token?{"index":index,"token":token,"value":token.toString()}:null},$scope.updateToken=function(token){var new_token,update;return new_token=new NewToken({"input":$scope.editing.value}),(update=new_token.parse())?(angular.extend(token,update),$scope.editing=null):void 0}}).directive("tokenInput",function(){return{"restrict":"E","replace":!0,"transclude":!0,"controller":"TokenInputController","scope":{"tokens":"=tokens"},"template":'',"link":function(scope){return scope}}}).directive("tokenSuggestions",function(TokenCollection){return{"restrict":"E","scope":{"tokens":"=tokens","suggestions":"=suggestions"},"controller":"TokenSuggestionsController","replace":!0,"transclude":!0,"template":'\n \n - \n We don\'t have any more filter suggestions.\n
\n
',"link":function(scope,element){return element.addClass("suggestions"),scope.$watch("suggestions",function(suggestions){var tokens;return tokens=new TokenCollection(scope.tokens),scope.unique_suggestions=_(suggestions).filter(function(suggestion){return!(suggestion.disabled=tokens.has(suggestion))})}),element.on("click",".show-mode",function(event){var token;return token=$(event.target).scope().$eval("token"),token.disabled?!1:scope.toggleToken(token)})}}}).directive("token",function(KEY_CODES,debug){return{"restrict":"E","replace":!0,"transclude":!0,"template":'\n \n \n \n \n \n {{ token.key }}\n {{ token.op }}\n {{ token.value }}\n \n \n\n \n \n \n',"link":function(scope,element){return element.on("keyup","input",function(event){switch(event.keyCode){case KEY_CODES.ENTER:debug(function(){return console.log("ENTER pressed, event: %O",event.keyCode,event)})}return!1})}}}).directive("size",function(){return{"restrict":"A","require":"ngModel","priority":1e3,"link":function(scope,element,attrs,ngModel){var $shadow,FREE_SPACE;return FREE_SPACE=16,element.is("input")&&"auto"===attrs.size?($shadow=angular.element("").css({"font":element.css("font"),"position":"absolute","visibility":"hidden","zIndex":-1,"whiteSpace":"pre"}),$shadow.insertAfter(element),scope.$on("$destroy",function(){return $shadow.remove()}),element.on("keyup focus focusin blur resize",function(){return $shadow.text(ngModel.$viewValue),element.width($shadow.width()+FREE_SPACE)})):void 0}}}).directive("newToken",function(KEY_CODES,debug){return{"restrict":"E","scope":!0,"replace":!0,"template":'\n \n',"link":function(scope,element){var $el,handleEmptyToken,handleToken;return $el=$(element),scope.token=scope.new_token,handleToken=function(code){switch(code){case KEY_CODES.ENTER:return scope.addToken(scope.token),element.children().children().css({"width":"auto"});default:return scope.select(null)}},handleEmptyToken=function(code){switch(code){case KEY_CODES.LEFT_ARROW:return scope.selectPrev();case KEY_CODES.RIGHT_ARROW:return scope.selectNext();case KEY_CODES.DELETE:return scope["delete"]();case KEY_CODES.BACKSPACE:if(scope["delete"]())return scope.selectPrev();break;case KEY_CODES.ENTER:return scope.$emit("search");default:return scope.select(null),debug(function(){return console.log("keycode",event.keyCode)})}},$el.on("focusin",function(){return scope.$apply(function(){return scope.edit(null)})}),$el.on("keydown",function(event){var code,length,_ref;switch(code=event.keyCode,length=(null!=(_ref=event.target.value)?_ref.length:void 0)>0,code){case KEY_CODES.ENTER:if(!(length>0))return!1}}),$el.on("keyup",function(event){var code;return code=event.keyCode,scope.$apply(function(){var _ref;return(null!=(_ref=event.target.value)?_ref.length:void 0)>0?handleToken(code):handleEmptyToken(code)})})}}})}.call(this),function(){angular.module("slug.filters",[]).filter("moment",function(){return function(time,format){return null==format&&(format="LLLL"),moment.utc(time).format(format)}}).filter("unix",function(){return function(input){return moment.unix(input).valueOf()}}).filter("truncate",function(){return function(input,length){return input?(input=String(input),!input||(null!=input?input.length:void 0)<=length?input:input.substring(0,length)+"..."):void 0}}).filter("ms",function(){return function(input){return input?""+Math.round(1e3*input)+" ms":"cached"}}).filter("status",function(){return function(input){switch(!1){case!(300>input&&input>=100):return"success";case!(400>input&&input>=300):return"redirect";case!(500>input&&input>=400):return"client-error";case!(600>input&&input>=500):return"server-error";default:return"unknown"}}})}.call(this),function(){angular.module("slug.analytics",["angulartics","angulartics.segment.io"]).factory("errorception",function($window){return function(error){var _ref,_ref1;return null!=(_ref=$window._errs)&&(_ref.allow||(_ref.allow=function(){return-1===$window.navigator.userAgent.indexOf("Conkeror")})),"localhost"!==$window.location.hostname&&null!=(_ref1=$window._errs)?_ref1.push(error):void 0}}).run(function($analytics,$rootScope,$location,$window){var host,service,user,_ref,_ref1;return $analytics.settings.pageTracking.autoTrackFirstPage=!1,$rootScope.$on("$stateChangeSuccess",function(){return $analytics.settings.pageTracking.autoTrackVirtualPages?$analytics.pageTrack($location.path()):void 0}),"localhost"===$location.host()?($analytics.pageTrack=function(page){return console.log("$analytics.pageTrack("+page+")")},$analytics.eventTrack=function(event,properties){return console.log("$analytics.eventTrack("+event+", "+properties+")")}):(_ref=$location.host().match(/^(\w+\-)?(\w+)/),host=_ref[0],service=_ref[1],user=_ref[2],null!=(_ref1=$window.analytics)?_ref1.identify(user,{"username":user}):void 0)}),angular.mock&&angular.module("ngMock").provider({"$analytics":{"$get":function(){return{"eventTrack":function(){},"pageTrack":function(){},"settings":{"pageTracking":{}}}}}})}.call(this),function(){angular.module("slug.documentation",["ngResource"]).directive("docsRef",function(Documentation){return{"scope":{"docsRef":"@"},"link":function(scope,element){return element.attr("href",Documentation[scope.docsRef])}}}).factory("Documentation",function(){var host;return host="http://docs.apitools.com",{"home":host+"/docs/","middlewares":host+"/docs/pipeline/","pipeline":host+"/docs/pipeline/","tour":host+"/docs/tour/","getting_started":host+"/docs/using-services/ ","notifications":host+"/docs/notifications/","active_docs":host+"/docs/active-docs/","analytics":host+"/docs/tour/#service-analytics","filters":host+"/docs/filters/","traces":host+"/docs/"}})}.call(this),function(){var RickshawHover;RickshawHover=Rickshaw.Class.create(Rickshaw.Graph.HoverDetail,{"render":function(args){var $element,$label,d,dot,graph,height,i,leftAlignError,line,points,rightAlignError,_i,_len;for($element=$(this.element),graph=this.graph,points=args.detail.sort(function(a,b){return a.order-b.order}),$label=$("",{"class":"super-label"}),i=_i=0,_len=points.length;_len>_i;i=++_i)d=points[i],d.formattedYValue&&$.isNumeric(d.value.y)&&(0===i&&$label.append($("",{"class":"title"}).html(d.formattedXValue)),line=$("").append($("",{"class":"swatch"}).css("background-color",d.series.color)).append($("").html(d.name+": ")).append($("",{"class":"value"}).html(d.formattedYValue)),$label.append(line),dot=$("",{"class":"dot active"}).css("border-color",d.series.color).css("top",graph.y(d.value.y0+d.value.y)+"px"),$element.append(dot));return $label.addClass("left"),$element.append($label),this.show(),leftAlignError=this._calcLayoutError([$label[0]]),leftAlignError>0&&($label.removeClass("left").addClass("right"),rightAlignError=this._calcLayoutError([$label[0]]),rightAlignError>leftAlignError&&$label.removeClass("right").addClass("left")),height=$label.height(),$label.css("top",Math.max(0,Math.min(args.mouseY-height/2,graph.height-height-20)))}}),angular.module("slug.stats",["slug.utils","ngResource","slug.utils"]).directive("rickshaw",function(RickshawSeries,$window){return{"restrict":"A","template":"","link":function(scope,element,attrs){var autoresize,color,getAvailableSpaceDimensions,graph,height,hoverDetail,oldDomain,renderer,resize,series,strokeWidth,width,xAxis,yAxis;return series=[{"data":[{"x":0,"y":0}]}],height=attrs.rickshawHeight,width=attrs.rickshawWidth,color=attrs.rickshawColor,renderer=attrs.rickshawRenderer||"line",strokeWidth=attrs.rickshawStrokeWidth||1,graph=new Rickshaw.Graph({"height":height,"width":width,"renderer":renderer,"strokeWidth":strokeWidth,"element":element.find(".graph")[0],"interpolation":"linear","stroke":!0,"series":series,"min":0,"padding":{"top":.1,"bottom":.1}}),oldDomain=graph.renderer.domain,graph.renderer.domain=function(data){var domain;
-return domain=oldDomain.call(this,data),domain.y[0]===domain.y[1]&&(domain.y[1]+=12),domain},graph.render(),xAxis=new Rickshaw.Graph.Axis.Time({"graph":graph,"timeFixture":new Rickshaw.Fixtures.Time}),xAxis.render(),yAxis=new Rickshaw.Graph.Axis.Y({"graph":graph,"tickFormat":Rickshaw.Fixtures.Number.formatKMBT}),yAxis.render(),hoverDetail=new RickshawHover({"graph":graph,"xFormatter":function(x){return d3.time.format("%A, %b %e, %H:%M UTC")(new Date(1e3*x))}}),resize=function(dimensions){return graph.configure({"height":dimensions.height,"width":dimensions.width}),graph.update()},getAvailableSpaceDimensions=function(){var newHeight,newWidth,parent;return parent=element.parent(),element.hide(),newHeight=height||parent.height()-(element.outerHeight(!0)-element.height()),newWidth=width||parent.width()-(element.outerWidth(!0)-element.width()),element.show(),{"height":newHeight,"width":newWidth}},autoresize=function(){return resize(getAvailableSpaceDimensions())},autoresize(),angular.element($window).bind("resize",autoresize),scope.$on("$destroy",function(){return angular.element($window).unbind("resize",autoresize)}),scope.$watch(attrs.rickshaw,function(analytics){var i,item,newSeries,_i,_len;if(newSeries=RickshawSeries(analytics,renderer,attrs.rickshawColor)){for(i=_i=0,_len=newSeries.length;_len>_i;i=++_i)item=newSeries[i],series[i]=newSeries[i];for(;series.length>newSeries.length;)series.pop();return graph.update()}})}}}).factory("RickshawSeries",function(RickshawColor){return function(analytics,renderer,color){var data,i,name,normalized_query,resolution,serie,serie_color,start,stroke_color,value,_i,_len,_ref,_ref1,_results;if(!analytics)return null;for(normalized_query=analytics.normalized_query,resolution=normalized_query.range.granularity,start=normalized_query.range.start,_ref=analytics.results,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)serie=_ref[_i],0===serie.data[serie.data.length-1]&&(serie.data[serie.data.length-1]=serie.data[serie.data.length-2]),data=function(){var _j,_len1,_ref1,_results1;for(_ref1=serie.data,_results1=[],i=_j=0,_len1=_ref1.length;_len1>_j;i=++_j)value=_ref1[i],_results1.push({"x":start+i*resolution,"y":value});return _results1}(),name=serie.metric,_ref1=RickshawColor(name,color,renderer),serie_color=_ref1[0],stroke_color=_ref1[1],_results.push({"color":serie_color,"stroke":stroke_color,"data":data,"name":name});return _results}}).factory("StringToColor",function(){return function(str){var color,hash,i,_i,_ref;for(hash=0,i=_i=0,_ref=str.length-1;_ref>=_i;i=_i+=1)hash=str.charCodeAt(i)+((hash<<3)-hash);return color=Math.abs(hash).toString(16).substring(0,6),"#"+"000000".substring(0,6-color.length)+color}}).factory("RickshawColor",function(StringToColor){return function(serie_name,color,renderer){var serie_color,stroke_color;return serie_color=color||StringToColor(serie_name),stroke_color=serie_color,"area"===renderer&&(serie_color=d3.interpolateRgb(serie_color,"white")(.7)),[serie_color,stroke_color]}}).factory("ServiceStats",function($resource,$state){return $resource("/api/services/:serviceId/stats/analytics",{"serviceId":function(){return $state.params.serviceId}})}).factory("Stats",function($resource){return $resource("/api/stats/analytics",{})}).factory("LoadChart",function($q,ServiceStats,jsonify){var group_by,query,range;return group_by=function(group){return[!!group.methods,!!group.paths,!!group.statuses,!!group.service]},range=function(query){var rng;return rng=query.range,rng=angular.copy(rng[rng.type]),angular.extend(rng,{"granularity":query.range.granularity})},query=function(query){var enabled,methods,metric,metrics,name,names,pluck,projections;return pluck=function(array){return _.isArray(array)?_(array).pluck("value"):array||[]},methods=query.methods?_(query.methods).keys():[],0===methods.length&&(methods="*"),metrics=[query.paths],"status"===query.metric&&metrics.push(query.statuses),metrics=function(){var _i,_len,_results;for(_results=[],_i=0,_len=metrics.length;_len>_i;_i++)metric=metrics[_i],names=pluck(metric),_.isArray(names)&&0===names.length&&(names="*"),_results.push(names);return _results}(),metrics.unshift(methods),projections=function(){var _ref,_results;_ref=query.projections,_results=[];for(name in _ref)enabled=_ref[name],_results.push(enabled?name:void 0);return _results}(),{"query":jsonify({"metrics":metrics,"projections":_.filter(projections,_.identity),"range":range(query),"metric":query.metric,"group_by":group_by(query.group_by||{})})}},function(chart,resource){var deferred,promise,stats;return null==resource&&(resource=ServiceStats),deferred=$q.defer(),promise=deferred.promise,chart?(stats=query(chart.query),resource.get(stats).$promise):(deferred.reject("Missing chart"),promise)}})}.call(this),function(){angular.module("slug.user_settings",["ngResource"]).factory("UserSettings",function(StoredUserSettings,$q){var cache,deferred,reject,resolve,saveCache,settings;return deferred=$q.defer(),resolve=function(){return deferred.resolve(settings)},reject=function(reason){return deferred.reject(reason)},cache=StoredUserSettings.get(resolve,reject),saveCache=function(){return deferred=$q.defer(),settings.$promise=deferred.promise,cache.$save(resolve,reject)},settings={"$promise":deferred.promise,"get":function(property,callback){return callback?cache.$promise.then(function(cache){return callback(cache[property])}):cache[property]},"extend":function(object){return angular.extend(cache,object),saveCache()},"set":function(property,value){return cache[property]=value,saveCache()},"raw":cache,"reset_settings":function(){return deferred=$q.defer(),settings.$promise=deferred.promise,cache.$delete(function(){return cache=StoredUserSettings.get(reject,resolve)})}}}).factory("StoredUserSettings",function($resource){return $resource("/api/config")})}.call(this),function(){var __slice=[].slice;angular.module("slug.utils",[]).factory("deepMerge",function(){return function(){var objects;return objects=1<=arguments.length?__slice.call(arguments,0):[],$.extend.apply($,[!0].concat(__slice.call(objects)))}}).factory("debugMode",function($location){return function(){return"debug"===$location.hash()}}).factory("debug",function(debugMode){return function(statement){return debugMode()?statement():void 0}}).factory("JSON",function($window){return $window.JSON}).factory("jsonify",function(JSON){return JSON.stringify}).factory("$loop",function($timeout){return function($scope,fn,interval){var $loop;return null==interval&&(interval=1e3),$loop={"interval":interval,"run":function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],fn.apply(null,[$loop].concat(__slice.call(args)))},"schedule":function(wait){return null==wait&&(wait=$loop.interval),$loop.last_timeout=$timeout($loop.run,wait)},"listen":function($scope){return $scope.$on("$destroy",$loop.destroy)},"destroy":function(){return $timeout.cancel($loop.last_timeout)}},$loop.listen($scope),$loop.run(),$loop}})}.call(this),function(){angular.module("slug.services",["ngResource","slug.github","slug.search"]).factory("Middleware",function($resource){return $resource("/api/middlewares/:uuid",{"uuid":"@uuid"})}).factory("toArray",function(){return function(object){return _.isArray(object)?object:[object]}}).factory("uuid",function(){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r,v;return r=16*Math.random()|0,v="x"===c?r:3&r|8,v.toString(16)})}})}.call(this),function(){angular.module("slug.services.brain",[]).factory("Brain",function($http){var brain;return brain={"$promise":$http({"method":"GET","url":"/api/brain"})},brain.$promise.success(function(data){return brain.host=data.host}),brain}).factory("OnPremise",function($http){return{"register":function(uuid){return $http.post("/api/brain/register",{"uuid":uuid})},"link":function(key){return $http.post("/api/brain/link",{"key":key})},"unlink":function(){return $http.post("/api/brain/unlink",{})}}})}.call(this),function(){angular.module("slug.services.filters",["ngResource"]).factory("TracesFilter",function($resource){return $resource("/api/filters/traces/:id",{"id":"@_id"})}).factory("AnalyticsFilter",function($resource){var AnalyticsFilter;return AnalyticsFilter=$resource("/api/filters/analytics/:id",{"id":"@_id"}),angular.extend(AnalyticsFilter.prototype,{"query":function(){var metrics,projections,query;return projections=this.projections.map(function(p){return p.name}),metrics=[this.methods,this.paths,this.metrics].map(function(m){var values;switch(values=m.map(function(v){return v.name}),values.length){case 0:return"*";case 1:return values[0];default:return values}}),query={"range":this.range,"metrics":metrics,"projections":projections},JSON.stringify(query)}}),AnalyticsFilter})}.call(this),function(){var GitHub,GitHubIntegration,GitHubMessages,TokenHandler,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};TokenHandler=function(){function TokenHandler(){this.params=__bind(this.params,this),this.get=__bind(this.get,this),this.set=__bind(this.set,this),this.token=null}return TokenHandler.prototype.set=function(token){return this.token=token},TokenHandler.prototype.get=function(){return this.token},TokenHandler.prototype.params=function(params){return angular.extend({"access_token":this.get},params||{})},TokenHandler}(),GitHubIntegration=function(){function GitHubIntegration(protocol,host){this.redirect_uri="http://localhost:8089/auth/"+protocol+"/"+host,this.client_id="75a7ae9e68e3fd530b9a",this.url="https://github.com/login/oauth/authorize? client_id="+this.client_id+"&redirect_uri="+this.redirect_uri}return GitHubIntegration}(),GitHub=function(){function GitHub(){}return GitHub.prototype.repoSuggestion=function(spec){var param;return param=spec.name.replace(/[^\w]+|[\s]+/g,"-"),param.toLowerCase()},GitHub}(),GitHubMessages=function(){function GitHubMessages(spec,github){this.github=github,this.spec=angular.copy(spec),this.code=this.spec.code,this.spec.code=this.github.repo+".lua",this.should={},this.messages=[]}return GitHubMessages.prototype.reset=function(){return this.should={},this.messages=[]},GitHubMessages.prototype.isValid=function(){return _(this.messages).all(function(msg){return msg.confirm?msg.confirmed:!0})},GitHubMessages.prototype.highlight=function(message){var code,needle,owner,repo,strong;return strong=function(str){return""+str+""},needle=/{{\s*([^\}\s]+)\s*}}/g,owner=this.github.owner,repo=this.github.repo,code=this.spec.code,message.replace(needle,function(match,key){switch(key){case"owner/repo":return strong(""+owner+"/"+repo);case"visibility":return strong("public");case"spec":return strong("brainslug.json");case"code":return strong(code);default:throw Error("Unknown key: "+key)}})},GitHubMessages.prototype.add=function(msg,options){var message;return null==options&&(options={}),message=angular.copy(options),message.text=this.highlight(msg),this.messages.push(message)},GitHubMessages.prototype.repo_exists=function(){return this.add("I'm aware that {{owner/repo}} already exists as {{visibility}} repository",{"level":"warning","confirm":!0})},GitHubMessages.prototype.repo_missing=function(){return this.add("{{visibility}} repository {{owner/repo}} will be created",{"level":"notify"})},GitHubMessages.prototype.push_spec=function(){return this.add("We will push {{spec}} middleware specification",{"level":"info"})},GitHubMessages.prototype.push_code=function(){return this.add("We will push {{code}} middleware code",{"level":"info"})},GitHubMessages.prototype.override_spec=function(){return this.add("I'm aware that {{owner/repo}} already contains different middleware spec",{"level":"error","confirm":!0})},GitHubMessages.prototype.override_code=function(){return this.add("I'm aware that {{owner/repo}} already contains different middleware code",{"level":"warning","confirm":!0})},GitHubMessages}(),angular.module("slug.github",["ngResource"]).factory("GitHub",function(GitHubToken,GitHubIntegration){var gh;return gh=new GitHub,gh.token=GitHubToken,gh.integration=GitHubIntegration,gh}).factory("GitHubToken",function(){return new TokenHandler}).factory("GitHubMessages",function(){return GitHubMessages}).factory("GitHubIntegration",function($location){return new GitHubIntegration($location.protocol(),window.location.host)}).factory("GitHubSpec",function($resource,GitHubToken){return $resource("/api/test/test",GitHubToken.params())}).factory("GitHubFile",function($resource,GitHubToken){return $resource("https://api.github.com/repos/:owner/:repo/contents/:path",GitHubToken.params(),{"save":{"method":"PUT"}})}).factory("GitHubRepo",function($resource,GitHubToken){return $resource("https://api.github.com/:scope/:owner/:repo",GitHubToken.params({"scope":"repos"}),{"create":{"method":"POST","params":{"scope":"user","owner":"repos"}}})}).factory("GitHubSearchCode",function($resource,GitHubToken){return $resource("https://api.github.com/search/code",GitHubToken.params(),{"get":{"method":"GET","headers":{"Accept":"application/vnd.github.preview"}}})}).factory("GitHubValidator",function($q,GitHubFile,GitHubRepo){return function(messages){var code_exists,code_missing,d,defer_code,defer_repo,defer_spec,defers,github,params,repo_exists,repo_missing,spec,spec_exists,spec_missing,_;return defers=function(){var _i,_results;for(_results=[],_=_i=1;3>=_i;_=++_i)_results.push($q.defer());return _results}(),defer_repo=defers[0],defer_spec=defers[1],defer_code=defers[2],spec=messages.spec,github=messages.github,params=function(params){var gh;return null==params&&(params={}),gh={"owner":github.owner,"repo":github.repo},angular.extend(params,gh)},code_exists=function(c){return messages.override_code(c),messages.should.update_code=c,defer_code.resolve("code exists")},code_missing=function(){return messages.push_code(),defer_code.resolve("code missing")},spec_exists=function(s){return messages.override_spec(s),messages.should.update_spec=s,defer_spec.resolve("spec exists"),GitHubFile.get(params({"path":spec.code}),code_exists,code_missing)},spec_missing=function(){return messages.push_spec(),defer_spec.resolve("spec missing"),GitHubFile.get(params({"path":spec.code}),code_exists,code_missing)},repo_exists=function(){return messages.repo_exists(),defer_repo.resolve("repo exists"),GitHubFile.get(params({"path":"brainslug.json"}),spec_exists,spec_missing)},repo_missing=function(){var d,_i,_len,_results;for(messages.should.create_repo=!0,messages.repo_missing(),messages.push_spec(),messages.push_code(),_results=[],_i=0,_len=defers.length;_len>_i;_i++)d=defers[_i],_results.push(d.resolve("repo missing"));return _results},GitHubRepo.get(github,repo_exists,repo_missing),$q.all(function(){var _i,_len,_results;for(_results=[],_i=0,_len=defers.length;_len>_i;_i++)d=defers[_i],_results.push(d.promise);return _results}())}}).factory("GitHubIntegrator",function($q,GitHubFile,GitHubRepo){return function(messages){var code,code_failed,code_updated,create_code,create_spec,d,defer_code,defer_repo,defer_spec,defers,do_code,do_spec,encode,github,params,repo_created,repo_failed,should,spec,spec_failed,spec_updated,update_code,update_spec,_;return should=messages.should,spec=messages.spec,code=messages.code,console.log(should),github={"owner":messages.github.owner,"repo":messages.github.repo},defers=function(){var _i,_results;for(_results=[],_=_i=1;3>=_i;_=++_i)_results.push($q.defer());return _results}(),defer_repo=defers[0],defer_spec=defers[1],defer_code=defers[2],params=function(params){return angular.extend(params,github)},messages.reset(),do_spec=function(){var previous;return(previous=should.update_spec)?update_spec(previous):create_spec()},do_code=function(){var previous;return(previous=should.update_code)?update_code(previous):create_code()},encode=function(object){return Base64.encode(angular.toJson(object,!0))},spec_updated=function(){return console.log("spec updated"),defer_spec.resolve("spec updated"),do_code()},code_updated=function(){return console.log("code updated"),defer_code.resolve("code updated")},repo_created=function(){return console.log("repo created"),defer_repo.resolve("repo created"),do_spec()},repo_failed=function(){return console.log("repo failed"),defer_repo.reject("repo failed")},code_failed=function(){return console.log("code failed"),defer_code.reject("code failed")},spec_failed=function(){return console.log("spec failed"),defer_spec.reject("spec failed")},create_spec=function(){return GitHubFile.save(params({"path":"brainslug.json"}),{"message":"Create middleware spec","content":encode(spec)},spec_updated,spec_failed)},update_spec=function(previous){return GitHubFile.save(params({"path":"brainslug.json"}),{"sha":previous.sha,"message":"Update middleware spec","content":encode(spec)},spec_updated,spec_failed)},create_code=function(){return GitHubFile.save(params({"path":spec.code}),{"message":"Create middleware code","content":encode(code)},code_updated,code_failed)},update_code=function(previous){return GitHubFile.save(params({"path":spec.code}),{"sha":previous.sha,"message":"Update middleware code","content":encode(code)},code_updated,code_failed)},should.create_repo?GitHubRepo.create({"name":github.repo,"auto_init":!0},repo_created,repo_failed):(defer_repo.resolve("repo already exists"),do_spec()),$q.all(function(){var _i,_len,_results;for(_results=[],_i=0,_len=defers.length;_len>_i;_i++)d=defers[_i],_results.push(d.promise);return _results}())}})}.call(this),function(){angular.module("slug.services.pretty_print",[]).factory("prettyPrintJson",function(){return function(string){var json;return json=angular.fromJson(string),angular.toJson(json,!0)}}).factory("prettyPrint",function(prettyPrintJson){var extractContentType;return extractContentType=function(contentType){return contentType.split(";")[0]},function(contentType,code){switch(contentType&&extractContentType(contentType)){case"application/json":return prettyPrintJson(code);default:return code}}})}.call(this),function(){var HeuristicsOperator,NumericOperator,Operator,SetOperator,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__slice=[].slice;Operator=function(){function Operator(key){this.key=key}return Operator.prototype.valueOf=function(){return this.key},Operator.prototype.convert=function(value){return value},Operator.prototype.toJSON=function(){return this.valueOf()},Operator.prototype.toString=function(){return this.valueOf()},Operator}(),NumericOperator=function(_super){function NumericOperator(){return NumericOperator.__super__.constructor.apply(this,arguments)}return __extends(NumericOperator,_super),NumericOperator.prototype.convert=function(value){return parseFloat(value,10)},NumericOperator}(Operator),SetOperator=function(_super){function SetOperator(){return SetOperator.__super__.constructor.apply(this,arguments)}return __extends(SetOperator,_super),SetOperator.prototype.convert=function(value,original){var part,_i,_len,_ref;for(null==original&&(original=[]),_ref=value.split(/,\s*/),_i=0,_len=_ref.length;_len>_i;_i++)part=_ref[_i],original.push(part);return original},SetOperator}(Operator),HeuristicsOperator=function(){function HeuristicsOperator(){this.number=new NumericOperator}return HeuristicsOperator.prototype.convert=function(value){var numeric;return numeric=this.number.convert(value),numeric.toString()===value?numeric:value},HeuristicsOperator}(),angular.module("slug.search",["slug.directives.token_input","slug.directives.search","slug.utils"]).factory("FilterBar",function(Token){var FilterBar;return FilterBar=function(){function FilterBar(){this.type="basic",this.tokens=[]}var DOT;return DOT=/\./,FilterBar.prototype.use=function(filter){var token,_i,_len,_ref,_results;for(this.reset(),_ref=filter.tokens,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)token=_ref[_i],_results.push(this.tokens.push(new Token(token)));return _results},FilterBar.prototype.operator=function(token){var op;switch(token.op){case"=":case"==":return null}return(op=function(){switch(token.op){case">":return"$gt";case">=":return"$gte";case"<":return"$lt";case"<=":return"$lte"}}())?new NumericOperator(op):(op||(op=function(){switch(token.op){case"@":return"$in";case"|":return"$all"}}()),op?new SetOperator(op):op)},FilterBar.prototype.reset=function(){return this.tokens.splice(0,this.tokens.length)},FilterBar.prototype.query=function(){var groups,heuristics,leafs,op,part,partial,partial_path,parts,path,paths,prev,query,root,token,tokens,_i,_j,_k,_len,_len1,_len2;for(query={},tokens=_(this.tokens).filter(function(t){return t.active}),groups=_(tokens).groupBy(function(t){return t.key}),paths=_(groups).keys().sort(),heuristics=new HeuristicsOperator,_i=0,_len=paths.length;_len>_i;_i++)for(path=paths[_i],parts=path.split(DOT),root=query,partial_path=[],_j=0,_len1=parts.length;_len1>_j;_j++)if(part=parts[_j],partial_path.push(part),partial=partial_path.join("."),prev=root,root=root[part]||(root[part]={}),leafs=groups[partial])for(_k=0,_len2=leafs.length;_len2>_k;_k++)token=leafs[_k],(op=this.operator(token))?root[op]=op.convert(token.value,root[op]):prev[part]=heuristics.convert(token.value);return query},FilterBar}()}).factory("TokenHeuristics",function(Token){var TokenHeuristics;return TokenHeuristics=function(){function TokenHeuristics(collection){this.collection=collection}return TokenHeuristics.prototype.singular=function(){var properties;return properties=1<=arguments.length?__slice.call(arguments,0):[],this._singular=properties},TokenHeuristics.prototype.singularProperties=function(){var conditions,key,path,piece,resource,value,_i,_j,_len,_len1,_ref;for(resource=_.isArray(this.collection)?this.collection[0]:this.collection,conditions=[],_ref=this._singular,_i=0,_len=_ref.length;_len>_i;_i++){for(key=_ref[_i],path=key.split("."),value=resource,_j=0,_len1=path.length;_len1>_j;_j++)piece=path[_j],value=null!=value?value[piece]:void 0;value&&conditions.push({"key":key,"op":"=","value":value})}return conditions},TokenHeuristics.prototype.collectionProperties=function(){var all,common_keys,key,keys,match,object_keys,primitive_keys,reference,resource,values,_i,_len,_ref,_results;for(all=_.chain(this.collection),keys=function(){var _i,_len,_ref,_results;for(_ref=this.collection,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)resource=_ref[_i],_results.push(_.keys(resource));return _results}.call(this),common_keys=_.intersection.apply(_,keys),common_keys=_(common_keys).filter(function(key){return!key.match(/^(\$|_)/)}),object_keys=_(common_keys).filter(function(key){return all.pluck(key).all(_.isObject).value()}),primitive_keys=(_ref=_(common_keys)).without.apply(_ref,object_keys),_results=[],_i=0,_len=primitive_keys.length;_len>_i;_i++)key=primitive_keys[_i],values=all.pluck(key).value(),reference=_.first(values),match=_(values).all(function(value){return value===reference}),_results.push(reference&&match?{"key":key,"op":"=","value":reference}:void 0);return _results},TokenHeuristics.prototype.suggestions=function(){var token,_i,_len,_ref,_results;for(_ref=this.compare(),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)token=_ref[_i],_.isEmpty(token)||(token.suggestion=!0,_results.push(new Token(token)));return _results},TokenHeuristics.prototype.compare=function(){return!_.isArray(this.collection)||this.collection.length<=1?this.singularProperties():this.collectionProperties()},TokenHeuristics}()}).factory("animationFrame",function($window){var cancelRequestAnimationFrame,fallback,requestAnimationFrame;return requestAnimationFrame=$window.mozRequestAnimationFrame||$window.requestAnimationFrame||$window.webkitRequestAnimationFrame||$window.oRequestAnimationFrame,cancelRequestAnimationFrame=$window.mozCancelRequestAnimationFrame||$window.cancelRequestAnimationFrame||$window.webkitCancelRequestAnimationFrame||$window.oCancelRequestAnimationFrame,fallback=function(func){return("function"==typeof requestAnimationFrame?requestAnimationFrame(func):void 0)||func()},{"request":requestAnimationFrame,"cancel":cancelRequestAnimationFrame,"withFallback":fallback}}).factory("Search",function(FilterBar,$timeout,animationFrame,jsonify){var Search;return Search=function(){function Search(resource,scope){this.resource=resource,this.tokens=__bind(this.tokens,this),this.ticker=__bind(this.ticker,this),this.stop_refresh=__bind(this.stop_refresh,this),this.append=__bind(this.append,this),this.prepend=__bind(this.prepend,this),this.replace=__bind(this.replace,this),this.last_id=__bind(this.last_id,this),this["do"]=__bind(this["do"],this),this.last_updated=__bind(this.last_updated,this),this.infinite=__bind(this.infinite,this),this.filter=new FilterBar,null!=scope&&scope.$on("search",this["do"]),null!=scope&&scope.$on("$destroy",this.stop_refresh),this.reversed=!0,this["do"]()}var CHECK_FOR_NEW_MS;return CHECK_FOR_NEW_MS=1e3,Search.prototype.infinite=function(){return!this.loading&&this.results.length_i;_i++)result=results[_i],_results.push(this.results.unshift(result));return _results},Search.prototype.append=function(results){var result,_i,_len,_results;for(_results=[],_i=0,_len=results.length;_len>_i;_i++)result=results[_i],_results.push(this.results.push(result));return _results},Search.prototype.stop_refresh=function(){return"function"==typeof this.stop_tick&&this.stop_tick(),$timeout.cancel(this.last_timer)},Search.prototype.ticker=function(params){var enabled,tick;return enabled=!0,tick=function(_this){return function(){return params.last_id=_this.last_id("max"),_this.resource.count(params,function(count){return _this.has_more=count.document_count,enabled?animationFrame.withFallback(function(){return _this.last_timer=$timeout(tick,CHECK_FOR_NEW_MS)}):void 0})}}(this),this.reversed&&tick(),function(){return enabled=!1}},Search.prototype.tokens=function(){return this.filter.tokens},Search.prototype.remove=function(results){var original,removed,_ref;return results=_.isArray(results)?results:[results],original=this.results.length,this.results=(_ref=_(this.results)).without.apply(_ref,results),removed=original-this.results.length,this.count-=removed},Search.prototype.use=function(filter){return this.stop_refresh(),this.filter.use(filter),this.using_filter=filter,this["do"]()},Search.prototype.clear=function(){return this.stop_refresh(),this.filter.reset(),this.using_filter=null,this["do"]()},Search}()})}.call(this);
+(function(){var slug;window.history.pushState(null,null,window.location.pathname),moment.lang("en",{"relativeTime":{"future":"in %s","past":function(output){return"a few seconds"===output?"just now":""+output+" ago"},"s":"a few seconds","m":"a minute","mm":"%d minutes","h":"an hour","hh":"%d hours","d":"a day","dd":"%d days","M":"a month","MM":"%d months","y":"a year","yy":"%d years"},"longDateFormat":{"LT":"h:mm A UTC","L":"MM/DD/YYYY","LL":"MMMM Do YYYY","LLL":"MMMM Do YYYY LT","LLLL":"dddd, MMMM Do YYYY LT"}}),slug=angular.module("slug",["slug.controllers","slug.services","slug.filters","slug.directives","angular-flash.flash-alert-directive","ui.router","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.typeahead","slug.analytics","slug.dashboard","slug.dashboards","slug.service","slug.active_docs","slug.home","slug.root","slug.documentation"]),slug.run(function($rootScope,$state){return $rootScope.$state=$state}),slug.config(function($provide){return $provide.decorator("$exceptionHandler",function($delegate,errorception){return function(exception,cause){return $delegate(exception,cause),errorception(exception)}})}),slug.config(function($stateProvider,$locationProvider,$anchorScrollProvider){return $locationProvider.html5Mode(!0).hashPrefix("!"),$anchorScrollProvider.disableAutoScrolling(),$stateProvider.state("search",{"url":"/search","templateUrl":"/search/index.html","controller":"SearchCtrl"}).state("service.traces",{"parent":"service","url":"/traces?filter","templateUrl":"/services/traces/index.html","controller":"ServiceTracesIndexCtrl"}).state("traces",{"url":"/traces?filter","templateUrl":"/traces/index.html","controller":"TracesIndexCtrl"}).state("trace",{"url":"/traces/:traceId","templateUrl":"/traces/show.html","controller":"TraceShowCtrl"})})}).call(this),function(){angular.module("slug.controllers",["angular-flash.service","ui.bootstrap.accordion","ui.bootstrap.tabs","ui.bootstrap.tooltip","angularMoment","ui.router","ui.bootstrap.modal","slug.middlewares","slug.middleware_specs","slug.traces","slug.notifications","slug.controllers.services","slug.user_settings","slug.services.brain"])}.call(this),function(){angular.module("slug.active_docs",["slug.service"]).config(function($stateProvider){return $stateProvider.state("service.docs",{"parent":"service","url":"/docs","templateUrl":"/active_docs/index.html","controller":"ActiveDocsCtrl"}).state("service.docs.operation",{"parent":"service.docs","url":"/:operationGuid","controller":"ActiveDocsOperationCtrl","templateUrl":"/active_docs/index.html"})}).factory("ActiveDocsOperation",function($http,$state){return function(request,service_id){var params;return null==service_id&&(service_id=$state.params.serviceId),params={"method":request.method,"path":request.uri},$http({"method":"GET","url":"/api/services/"+service_id+"/operation","params":params})}}).controller("ActiveDocsCtrl",function($scope,service){return $scope.resource={"name":service.name,"system_name":service.code(),"path":"/api/services/"+service._id+"/docs","domain":service.host()}}).directive("preventDocsLoad",function($window){return{"compile":function(element,attrs){var hasDocs,replacement,src,_ref;return src=attrs.preventDocsLoad,hasDocs=null!=(null!=(_ref=$window.ThreeScale)?_ref.APIDocs:void 0),hasDocs?void 0:(replacement=angular.element("").attr({"src":src}),element.replaceWith(replacement))}}}).directive("activeDocs",function($state,$window){var HEADING_CLASS,LOADED_EVENT;return LOADED_EVENT="resources:loaded",HEADING_CLASS=".apidocs-heading",{"scope":{"resources":"=activeDocs"},"link":function(scope,element){var APIDocs;return element.addClass("api-docs-wrap"),element.on("click",HEADING_CLASS,function(){var content,heading,params;return heading=angular.element(event.target).closest(HEADING_CLASS),content=heading.siblings(".content"),content.is(":visible")?void 0:(params={"operationGuid":content.data("operation-id")},$state.go("service.docs.operation",params))}),APIDocs=ThreeScale.APIDocs,APIDocs.account_type="provider",APIDocs.init(scope.resources),APIDocs.jQuery.subscribe(LOADED_EVENT,function(){var operation;return operation=element.find("[data-operation-id='"+$state.params.operationGuid+"']"),APIDocs.Docs.expandOperation(operation,function(){var win;return win=angular.element($window),win.scrollTop(operation.position().top)})}),scope.$on("$destroy",function(){return APIDocs.jQuery.unsubscribe(LOADED_EVENT)})}}}).directive("docsLink",function($state,ActiveDocsOperation,flash){return{"restrict":"A","priority":-1,"scope":{"trace":"=docsLink"},"link":function(scope,element){var afterResolvingTrace,trace;return trace=scope.trace,afterResolvingTrace=function(trace){var changeState,operation,reportFail,service_id;return service_id=trace.service_id,operation=null,changeState=function(res){return $state.go("service.docs.operation",{"serviceId":service_id,"operationGuid":res.data.guid})},reportFail=function(err){return flash.error=err.data.error},element.on("mouseenter",function(){return operation||(operation=ActiveDocsOperation(trace.req,service_id))}),element.on("click",function(){return operation.then(changeState,reportFail),!1})},trace.$promise?trace.$promise.then(afterResolvingTrace):afterResolvingTrace(trace)}}})}.call(this),function(){angular.module("slug.controllers").factory("System",function($http){return{"initialize":function(){return $http.post("/api/system/initialize")},"reset":function(){return $http.post("/api/system/reset")}}}).controller("AppController",function($scope,Service,System,Brain){return System.initialize(),$scope.brain=Brain})}.call(this),function(){var __bind=function(fn,me){return function(){return fn.apply(me,arguments)}};angular.module("slug.dashboard",["ui.router","slug.stats","slug.notifications","slug.service","slug.traces.services"]).config(function($stateProvider){return $stateProvider.state("dashboard",{"url":"/dashboard","templateUrl":"/dashboard/show.html","controller":"DashboardCtrl"})}).factory("AggregatedDashboard",function($http,LoadChart,$timeout,$q,Stats){var AggeragedDashboard;return AggeragedDashboard=function(){function AggeragedDashboard(){this.stop=__bind(this.stop,this),this.hook=__bind(this.hook,this),this.load("traffic")}return AggeragedDashboard.traffic={"title":"All Traffic","projections":{"count":!0},"metric":"hits","range":{"granularity":60,"type":"relative","relative":{"end":"now","start":3600}}},AggeragedDashboard.time={"title":"Response Time","projections":{"avg":!0},"metric":"time","range":{"granularity":60,"type":"relative","relative":{"end":"now","start":3600}}},AggeragedDashboard.errors={"title":"Errors","projections":{"avg":!0,"count":!0},"metric":"status","statuses":{"$gte":400,"$lt":600},"range":{"granularity":60,"type":"relative","relative":{"end":"now","start":3600}}},AggeragedDashboard.prototype.available={"errors":AggeragedDashboard.errors,"traffic":AggeragedDashboard.traffic,"time":AggeragedDashboard.time},AggeragedDashboard.prototype["default"]="traffic",AggeragedDashboard.prototype.colors={"errors":"#AC3131","time":"#FFA500","traffic":"#317eac"},AggeragedDashboard.prototype.hook=function($scope){return $scope.$on("$destroy",this.stop)},AggeragedDashboard.prototype.stop=function(){return $timeout.cancel(this.last_timeout)},AggeragedDashboard.prototype.autoupdate=function(dashboard,callback){var update_stats;return this.stop(),(update_stats=function(_this){return function(){return _this.load(dashboard,callback).then(function(){return _this.last_timeout=$timeout(update_stats,6e4)})}}(this))()},AggeragedDashboard.prototype.load=function(what,callback){return LoadChart({"query":AggeragedDashboard[what]},Stats).then(function(_this){return function(stats){return _this[what]=stats}}(this)).then(callback)},AggeragedDashboard}()}).controller("DashboardCtrl",function($scope,$rootScope,AggregatedDashboard,Service,Event,Trace,jsonify){var last_events_query,last_hour,last_stats_query;return $rootScope.$emit("serviceReset"),$scope.dashboards=new AggregatedDashboard,$scope.dashboards.hook($scope),last_hour=function(conditions){var timeframe,timestamp;return timestamp=moment().subtract("hour",1).unix(),timeframe={"_created_at":{"$gte":timestamp}},angular.extend(timeframe,conditions||{}),jsonify(timeframe)},$scope.middleware_errors=Event.count({"query":last_hour({"level":"error"})}),$scope.request_errors=Trace.count({"query":last_hour({"res":{"status":{"$gte":400}}})}),$scope.services=Service.query(),$scope.selectDashboard=function(key){return $scope.selected_dashboard=key,$scope.color=$scope.dashboards.colors[key],$scope.dashboards.autoupdate(key,function(dashboard){return $scope.dashboard=dashboard})},$scope.selectDashboard($scope.dashboards["default"]),last_events_query=jsonify({"level":{"$in":["error","alert","warn","info"]}}),$scope.last_notifications=Event.query({"query":last_events_query,"reversed":!0,"per_page":7}),$scope.last_traces=Trace.query({"reversed":!0,"per_page":7}),last_stats_query=jsonify({"channel":"stats"}),$scope.last_stats=Event.count({"query":last_stats_query})})}.call(this),function(){angular.module("slug.dashboards",["ngResource","slug.service","slug.stats"]).config(function($stateProvider){return $stateProvider.state("service.analytics",{"parent":"service","url":"/analytics","templateUrl":"/analytics/index.html","controller":"DashboardsCtrl"})}).factory("Dashboard",function($resource,$state){return $resource("/api/services/:serviceId/dashboards/:id/",{"id":"@_id","serviceId":function(){return $state.params.serviceId}})}).factory("Metrics",function($resource){return $resource("/api/stats/metrics")}).controller("DashboardsCtrl",function($scope,Dashboard){return $scope.dashboards=Dashboard.query(),$scope.select=function(dashboard){return $scope.current_dashboard=dashboard}}).controller("ChartController",function($scope,LoadChart,$timeout){var last_timeout,update;return $scope.blueprint=$scope.window.blueprint,$scope.chart=$scope.window.chart,last_timeout=null,$scope.$on("$destroy",function(){return $timeout.cancel(last_timeout)}),(update=function(){var chart;return chart=$scope.chart,LoadChart(chart).then(function(stats){var granularity;return $scope.stats=stats,granularity=chart.query.range.granularity,last_timeout=$timeout(update,1e3*granularity)})})()}).controller("CurrentDashboardCtrl",function($scope,$modal,flash){var charts;return $scope.blueprint={"type":"normal","charts":[{"type":"expanded"},{"type":"normal"},{"type":"normal"}]},charts=function(){return $scope.current_dashboard.charts},$scope.$watch(charts,function(dashboard_charts){var blueprint,index;return $scope.windows=function(){var _i,_len,_ref,_results;for(_ref=$scope.blueprint.charts,_results=[],index=_i=0,_len=_ref.length;_len>_i;index=++_i)blueprint=_ref[index],_results.push({"blueprint":blueprint,"chart":null!=dashboard_charts?dashboard_charts[index]:void 0});return _results}()}),$scope.editChartDialog=function(chart,callback){var dialog;return dialog=$modal.open({"backdrop":!0,"keyboard":!0,"windowClass":"modal modal-slug chart-edit modal-tall","backdropClick":!1,"templateUrl":"/dashboards/chart.html","controller":"DashboardEditChartDialogCtrl","resolve":{"chart":function(){return angular.copy(chart)}}}),dialog.result.then(function(result){return(result||_.isNull(result))&&"function"==typeof callback?callback(result):void 0})},$scope.saveDashboard=function(){return $scope.current_dashboard.$save(function(){return flash.success="Dashboard saved"})},$scope.addChart=function(position,chart){var dashboard,newChart;return dashboard=$scope.current_dashboard,charts=dashboard.charts,_.isEmpty(charts)&&(charts=dashboard.charts=[]),newChart={"position":position,"plot":chart,"$new":!0,"name":"New Chart"},$scope.editChartDialog(newChart,function(chart){return dashboard.charts[position]=chart,delete chart.$new,$scope.saveDashboard()})},$scope.editChart=function(chart){var dashboard;return dashboard=$scope.current_dashboard,charts=dashboard.charts,$scope.editChartDialog(chart,function(updated){var index;return index=charts.indexOf(chart),charts[index]=updated,$scope.saveDashboard()})}}).controller("DashboardEditChartDialogCtrl",function($scope,chart,Metrics,LoadChart){var default_query,hr;return $scope.save=function(){return $scope.$close(chart)},$scope.close=function(){return $scope.$close(!1)},$scope["delete"]=function(){return $scope.$close(null)},default_query={"projections":{"avg":!0,"count":!0},"paths":[],"methods":{},"statuses":[],"metric":"time","range":{"granularity":60,"type":"relative","absolute":{"start":moment().subtract(1,"day").unix(),"end":moment().unix()},"relative":{"end":"now","start":3600}},"group_by":{}},$scope.chart=chart,$scope.query=chart.query=angular.extend({},default_query,chart.query),$scope.absolute={"start":moment()},$scope.relative={"end":"now","start":3600},$scope.startDate=function(seconds){return moment().subtract(seconds,"seconds").toDate()},$scope.preview=function(){return LoadChart(chart).then(function(template){return $scope.analytics=template})},$scope.preview(),hr=3600,$scope.available={"ranges":[{"length":1800,"label":"30 min","title":"30 minutes"},{"length":3600,"label":"60 min","title":"1 hour"},{"length":3*hr,"label":"3 hr","title":"3 hours"},{"length":6*hr,"label":"6 hr","title":"6 hours"},{"length":12*hr,"label":"12 hr","title":"1/2 day"},{"length":24*hr,"label":"24 hr","title":"1 day"},{"length":168*hr,"label":"1 wk","title":"1 week"}],"granularities":[{"granularity":10,"label":"10 sec","tooltip":"10 seconds increments"},{"granularity":60,"label":"1 min","tooltip":"1 minute increments"},{"granularity":3600,"label":"1 hr","tooltip":"1 hour increments"},{"granularity":86400,"label":"1 day","tooltip":"1 day increments"}],"metrics":Metrics.query()},$scope.available.metrics.$promise.then(function(metrics){return $scope.metrics=_(metrics).indexBy("key")})}).controller("DashboardsNavigationCtrl",function($scope,Dashboard,flash){var charts,original_select;return $scope.helpTemplate="analytics",charts={"statuses":{"plot":{"type":"big"},"position":0,"name":"Statuses","query":{"methods":[],"paths":[],"statuses":[],"group_by":{"statuses":!0},"metric":"status","projections":{"count":!0},"range":{"type":"relative","granularity":60,"relative":{"end":"now","start":1800}}}},"traffic":{"plot":{"type":"small"},"position":1,"name":"Traffic","query":{"methods":[],"paths":[],"statuses":[],"group_by":{"paths":!0,"methods":!0},"metric":"hits","projections":{"count":!0},"range":{"type":"relative","granularity":60,"relative":{"end":"now","start":1800}}}},"methods":{"plot":{"type":"small"},"position":2,"name":"Methods average time","query":{"methods":[],"paths":[],"statuses":[],"group_by":{"methods":!0},"metric":"time","projections":{"avg":!0},"range":{"type":"relative","granularity":60,"relative":{"end":"now","start":1800}}}}},$scope.dashboards.$promise.then(function(dashboards){var dashboard,defaults;return dashboard=dashboards[0],dashboard||(defaults=[charts.statuses,charts.traffic,charts.methods],dashboard=$scope.emptyDashboard({"name":"default dashboard","charts":defaults}),dashboard.$save(function(){return dashboards.push(dashboard)})),$scope.select(dashboard)}),$scope.emptyDashboard=function(attributes){return new Dashboard(attributes)},$scope.addEmptyDashboard=function(attributes){var dashboard;if($scope.canAbortEdit())return dashboard=$scope.emptyDashboard(attributes),$scope.dashboards.push(dashboard),$scope.edit(dashboard)},original_select=$scope.select,$scope.select=function(dashboard){return $scope.abort(),original_select(dashboard)},$scope.edit=function(dashboard){return $scope.editing=angular.copy(dashboard),$scope.editing.$original=dashboard},$scope.isEditing=function(dashboard){var _ref;return(null!=(_ref=$scope.editing)?_ref.$original:void 0)===dashboard},$scope["delete"]=function(dashboard){return dashboard.$delete(function(){return $scope.remove(dashboard),flash.success="Dashboard "+dashboard.name+" removed",$scope.abort()})},$scope.canAbortEdit=function(){var original,_ref;return original=null!=(_ref=$scope.editing)?_ref.$original:void 0,original?null!=original._id:!0},$scope.remove=function(dashboard){return $scope.dashboards=_($scope.dashboards).without(dashboard)},$scope.save=function(dashboard){return angular.extend(dashboard,$scope.editing),dashboard.$save(function(){return $scope.abort(),$scope.select(dashboard),flash.success="Dashboard "+dashboard.name+" saved"})},$scope.abort=function(){var _ref;return $scope.canAbortEdit()||$scope.remove(null!=(_ref=$scope.editing)?_ref.$original:void 0),$scope.editing=null}}).factory("UsedMethods",function($resource,$state){return $resource("/api/services/:service_id/used_methods",{"service_id":function(){return $state.params.serviceId}})}).factory("AutoCompletePaths",function($resource,$state){return $resource("/api/services/:service_id/path_autocomplete",{"service_id":function(){return $state.params.serviceId}})}).controller("ChartConditionsCtrl",function($scope,UsedMethods,AutoCompletePaths){return $scope.$watch("query",function(query){var metric,_i,_len,_ref,_results;for(_ref=["statuses","paths"],_results=[],_i=0,_len=_ref.length;_len>_i;_i++)metric=_ref[_i],_results.push(_.isArray(null!=query?query[metric]:void 0)?void 0:query[metric]=[]);return _results}),$scope.randomMethod=function(method){return method.$placeholder||(method.$placeholder=_.shuffle(["GET","POST","PUT","PATH","DELETE"])[0])},$scope.randomStatus=function(status){return status.$placeholder||(status.$placeholder=_.shuffle([200,201,301,302,404,500])[0])},$scope.getAutocompletePaths=AutoCompletePaths.query(),$scope.isMethodChecked=function(method){return $scope.query.methods[method]},$scope.noMethodsAreChecked=function(){var anyChecked;return anyChecked=_($scope.query.methods).find(function(v){return v===!0}),!anyChecked},$scope.used_methods=UsedMethods.get(function(methods_resource){var method,_i,_len,_ref,_results;for(_ref=methods_resource.methods,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)method=_ref[_i],_results.push($scope.query.methods[method]=!0);return _results}),$scope.add=function(collection){return collection.push({})},$scope.remove=function(collection,element){var index;return index=collection.indexOf(element),collection.splice(index,1)}}).controller("ChartProjectionsCtrl",function($scope){return $scope.$watch("query.metric",function(metric){return $scope.metric=metric,$scope.available.metrics.$promise.then(function(){return $scope.type=$scope.metrics[$scope.metric].type})}),$scope.metricHasProjections=function(){var type;return type=$scope.type,"set"===type||"time"===type},$scope.availableProjections=function(){var all,available,percentiles,type;return(type=$scope.type)?(percentiles=["p50","p80","p90","p95","p99"],all={"set":["avg","max","min"],"count":["count"],"last":["last"]},available=all[type]):void 0},$scope.noProjectionsAreChecked=function(){var projections,query;return query=$scope.query,projections=$scope.availableProjections($scope.type),!_(projections).find(function(proj){return query.projections[proj]===!0})}})}.call(this),function(){angular.module("slug.services.demo",["slug.service","slug.services"]).factory("DemoService",function(Service,uuid){return{"create":function(demo,callback){var endpoints,service;return endpoints=[{"url":demo.endpoint,"code":demo.key}],service={"name":""+demo.name+" API","description":demo.description,"endpoints":endpoints,"demo":demo.key},Service.save(service,callback)},"update":function(service,demo){var endpoints;return endpoints=[{"url":demo.endpoint,"code":demo.key+uuid().substr(0,8)}],angular.extend(service,{"name":""+demo.name+" API","description":demo.description,"endpoints":endpoints,"demo":demo.key})}}}).factory("DemoApis",function(){var apis;return apis=[{"key":"echo","name":"Echo","img":"echo.png","endpoint":"https://echo-api.herokuapp.com","description":"Echo is simple service which responds for every request with JSON containing the request information. Like looking in the mirror. Useful for debugging middlewares.","calls":[{"url":"/","name":"GET /","method":"GET"},{"url":"/","name":"POST /","method":"POST"},{"url":"/url","name":"GET /url","method":"GET"},{"url":"/whatever","name":"PUT /whatever","method":"PUT"}]},{"key":"github","name":"GitHub","img":"github.png","endpoint":"https://api.github.com","description":"GitHub has Hypermedia JSON API. Some parts are public & rate limited to 60 requests per hour. You can use OAuth to authenticate and use up to 5,000 requests per hour.","calls":[{"url":"/events?per_page=1","name":"Get public events","method":"GET"},{"url":"/gists/public?per_page=1","name":"Get public gists","method":"GET"},{"url":"/orgs/github/events","name":"Get GitHub events","method":"GET"},{"url":"/gists/public","name":"Get public gists","method":"GET"},{"url":"/zen","name":"Get a zen koan","method":"GET"},{"url":"/emojis","name":"Get all emojis","description":"Do you see any Teletubbies in here? Do you see a slender plastic tag clipped to my shirt with my name printed on it? Do you see a little Asian child with a blank expression on his face sitting outside on a mechanical helicopter that shakes when you put quarters in it? No?"},{"url":"/users/vmg/starred","name":"Get repos starred by vmg","method":"GET"},{"url":"/repos/nginx/nginx/stargazers","name":"Get nginx/nginx stargazers","method":"GET"},{"url":"/repos/github/hubot/issues","name":"Get issues in github/hubot","method":"GET"}]},{"key":"facebook","name":"Facebook","img":"facebook.png","endpoint":"https://graph.facebook.com","description":"Facebook has JSON API which is mostly protected by OAuth, but some parts of Graph API are open.","calls":[{"url":"/mike.shaver","name":"Get info about a user","method":"GET"},{"url":"/19292868552","name":"Get info about a page","method":"GET"}]},{"key":"reddit","name":"Reddit","img":"reddit.png","endpoint":"http://www.reddit.com/","description":"Reddit has both JSON and XML api (which is open source) with some open parts, but most of it is behind OAuth.","calls":[{"url":"/user/peter/about.json","name":"Get info about a user","method":"GET"},{"url":"/subreddits/new.json","name":"Get new subreddits","method":"GET"},{"url":"/subreddits/search.json?q=kitten","name":'Search subreddits for "kitten"',"method":"GET"},{"url":"/random.json","name":"Get a random subreddit","method":"GET"},{"url":"/api/username_available.json?user=peter","name":"Check username availability","method":"GET"}]},{"key":"stackexchange","name":"Stack Exchange","img":"stackoverflow.png","endpoint":"https://api.stackexchange.com/2.1","description":"Stack Exchange has JSON API which is mostly open to public with some parts with OAuth authentication.","calls":[{"url":"/badges?site=stackoverflow","name":"Get all badges","method":"GET"},{"url":"/answers?site=stackoverflow","name":"Get lastest answers","method":"GET"},{"url":"/questions?tagged=lua&site=stackoverflow","name":"Get latest Lua questions","method":"GET"},{"url":"/similar?title=get%20css%20by%20ajax&site=stackoverflow","name":"Get similar questions","method":"GET"},{"url":"/tags/lua/top-askers/all_time?site=stackoverflow","name":"Get top Lua askers","method":"GET"},{"url":"/tags/java/synonyms?site=stackoverflow","name":"Get Java tag synonyms","method":"GET"}]},{"key":"wikipedia","name":"Wikipedia","img":"wikipedia.png","endpoint":"http://en.wikipedia.org/w/api.php","description":"Wikipedia has API with many output formats like: json, php, yaml, txt, xml, ....","calls":[{"url":"?format=php&action=query&titles=David%20Hasselhoff","name":"Get David Hasselhoff page, as PHP","method":"GET"},{"url":"?format=json&action=query&titles=Austin_powers&prop=revisions","name":"Get page revisions","method":"GET"},{"url":"?format=json&action=query&titles=Earth|Wind|Fire","name":"Search Earth, Wind or Fire","method":"GET"},{"url":"?format=json&action=sitematrix","name":"Get sitematrix","method":"GET"},{"url":"?format=json&action=compare&fromtitle=red&totitle=green","name":"Compare Red and Green","method":"GET"}]},{"key":"bitbucket","name":"Bitbucket","img":"bitbucket.png","endpoint":"https://bitbucket.org/api","description":"Bitbucket has JSON REST API with public access to open source repositories.","calls":[{"url":"/2.0/repositories/rude/love/commits","name":"Get repo commits","method":"GET"},{"url":"/1.0/repositories/rude/love/followers","name":"Get repo followers","method":"GET"},{"url":"/1.0/repositories/rude/love/events","name":"Get repo events","method":"GET"},{"url":"/1.0/repositories/rude/love/branches","name":"Get repo branches","method":"GET"}]}],_(apis).indexBy("key")}).factory("DemoCall",function($http){return{"perform":function(service,call){var params;return params={"url":call.url,"args":call.args,"body":call.body,"method":call.method},$http({"method":"GET","url":"/api/services/"+service._id+"/call","cache":!1,"params":params,"transformResponse":[]})}}}).controller("DemoCallCtrl",function($scope,DemoCall,$analytics){var updateResponse;return updateResponse=function(response){var _ref;return $scope.loading=!1,$scope.response=response.data,$scope.status=response.status,$scope.contentType=null!=(_ref=response.headers("Content-Type"))?_ref.split(";")[0]:void 0},$scope.perform=function(){var call;return $scope.loading=!0,call=DemoCall.perform($scope.service,$scope.call),call.then(updateResponse,updateResponse),$analytics.eventTrack("demo_call.used",{"service_id":$scope.service._id,"demo":$scope.service.demo,"call":$scope.call})}}).directive("demoCall",function(){return{"scope":{"call":"=demoCall","service":"=demoService"},"controller":"DemoCallCtrl","template":'\n
\n {{ status }}\n \n
\n\n\n
loading…\n
\n \n See response \n \n \n
'}})}.call(this),function(){angular.module("slug.home",["ui.router","slug.service","slug.services.demo","angular-flash.service"]).config(function($stateProvider,ServicesResolver){return $stateProvider.state("welcome",{"url":"/welcome","controller":"HomeCtrl","templateUrl":"/home/index.html","resolve":{"services":ServicesResolver}})}).controller("HomeCtrl",function($scope,services,DemoApis){return $scope.services=services,$scope.demos=DemoApis}).controller("HomeDemoCtrl",function($scope,DemoService,flash,$analytics,$state){return $scope.createDemo=function(){return DemoService.create($scope.demo,function(service){return flash.success=""+service.name+" created",$analytics.eventTrack("demo.created",{"demo":service.demo}),$scope.service=service})},$scope.service=_($scope.services).find(function(service){return service.demo===$scope.key}),$scope.servicePath=function(){var id,_ref;return id=null!=(_ref=$scope.service)?_ref._id:void 0,id?"/app"+$state.href("service.show",{"serviceId":id}):void 0}}).directive("slugToggleClass",function(){return{"restrict":"A","link":function(scope,element){return element.on("click",".toggle-item",function(){return element.toggleClass("opened")})}}})}.call(this),function(){angular.module("slug.middlewares",["ui.router","ui.bootstrap.modal","slug.service","slug.middleware_specs","ui.codemirror","ui.sortable","slug.controllers","ngResource"]).config(function($stateProvider){return $stateProvider.state("service.middleware",{"parent":"service","url":"/middlewares","templateUrl":"/pipeline/index.html","controller":"PipelineCtrl","resolve":{"pipeline":function(Pipeline,$stateParams){return Pipeline.get({"service_id":$stateParams.serviceId}).$promise}}}).state("service.middleware.edit",{"parent":"service.middleware","url":"/:middlewareUuid","controller":"MiddlewareEditCtrl"}).state("service.middleware.destroy",{"parent":"service.middleware","url":"/destroy","templateUrl":"/middlewares/destroy.html","controller":"MiddlewareDestroyCtrl"})}).directive("middleware",function(){return{"template":'\n{{ middleware.description | truncate: 100}}
\n\n',"link":function(scope,element){return scope.$watch("middleware.active",function(active){return element.toggleClass("on",!!active).toggleClass("off",!active)}),scope.$watch("middleware == selected",function(selected){return element.toggleClass("selected",!!selected)}),scope.$watch("middleware.$updated",function(status){return element.toggleClass("updated",!!status)}),scope.$watch("middleware.$new",function(status){return element.toggleClass("new",!!status)}),element.addClass("middleware")}}}).factory("Pipeline",function($resource){return $resource("/api/services/:service_id/pipeline/",{"service_id":"@service_id"})}).factory("Middlewares",function(DefaultMiddlewareCode,uuid){var Middlewares;return Middlewares=function(){function Middlewares(middlewares){var pipeline;pipeline=angular.copy(middlewares),this.array=_.values(pipeline),this.array=_(this.array).sortBy(function(mid){return mid.position})}return Middlewares.prototype.addEmpty=function(){var empty;return empty={"name":"new middleware","description":"You can edit this description.","code":DefaultMiddlewareCode,"uuid":uuid(),"active":!0,"$new":!0},this.array.push(empty),empty},Middlewares.prototype.replace=function(original,updated){var index;return index=this.array.indexOf(original),updated?(index>=0&&(null!=updated&&(updated.$updated=!0),this.array[index]=updated),updated):this.remove(original)},Middlewares.prototype.get=function(uuid){var UUIDEquals;return UUIDEquals=function(middleware){return middleware.uuid===uuid},_(this.array).find(UUIDEquals)},Middlewares.prototype.remove=function(original){var index;return index=this.array.indexOf(original),this.array.splice(index,1)},Middlewares.prototype.valueOf=function(){return this.array.length},Middlewares.prototype.toPipeline=function(){var index,middleware,pipeline,_i,_len,_ref;for(index=0,pipeline={},_ref=this.array,_i=0,_len=_ref.length;_len>_i;_i++)middleware=_ref[_i],middleware.position=index++,pipeline[middleware.uuid]=middleware;return pipeline},Middlewares}()}).factory("TemporaryChanges",function(){var TemporaryChanges;return TemporaryChanges=function(){function TemporaryChanges(){this.store=[]}return TemporaryChanges.prototype["new"]=function(original){var copy;return copy={"original":original,"copy":null},this.store.push(copy),copy},TemporaryChanges.prototype.find=function(original){var _ref;return(null!=(_ref=this.get(original))?_ref.copy:void 0)||original},TemporaryChanges.prototype.get=function(original){return _(this.store).find(function(s){return s.original===original})},TemporaryChanges.prototype["for"]=function(original){return this.get(original)||this["new"](original)},TemporaryChanges.prototype["delete"]=function(original){return this.store=_(this.store).without(this.get(original))},TemporaryChanges}()}).controller("PipelineCtrl",function($scope,$state,$stateParams,pipeline,Middlewares,flash,TemporaryChanges,uuid,$analytics){return $scope.pipeline=pipeline,$scope.middlewares=new Middlewares(pipeline.middlewares),$scope.revertPipeline=function(){return $scope.middlewares=new Middlewares($scope.pipeline.middlewares)},$scope.$watch("middlewares.count()",function(count){return $scope.counterReset={"counter-reset":"li "+(count+1)}}),$scope.$on("$stateChangeSuccess",function(event,toState,toParams,fromState){return"service.middleware.edit"===fromState.name&&"middleware"===toState.name?$scope.select(null):void 0}),$scope.temporary_changes=new TemporaryChanges,$scope.addEmptyMiddleware=function(){var middleware;return middleware=$scope.middlewares.addEmpty(),$scope.select(middleware),$analytics.eventTrack("middleware.added.empty")},$scope.select=function(middleware){var params;return middleware===$scope.selected&&(middleware=null),$scope.selected=middleware,middleware?(params=angular.extend($stateParams,{"middlewareUuid":middleware.uuid}),$scope.middleware=middleware,$state.transitionTo("service.middleware.edit",params,!1)):$state.transitionTo("service.middleware",$stateParams)
+},$scope.remove=function(middleware){return $scope.middlewares.remove(middleware),$analytics.eventTrack("middleware.removed",{"middleware":middleware.uuid})},$scope.toggle=function(middleware){return middleware.active=!middleware.active,$scope.select(null),$analytics.eventTrack("middleware.toggled",{"middleware":middleware.uuid})},$scope.github={"middleware":[{"name":"HODOR","author":{"name":"kikito"},"description":"hodor, hodor, hodor"}]},$scope.updatedMiddlewares=function(){var middlewares;return middlewares=$scope.middlewares,null==middlewares?{}:middlewares.toPipeline()},$scope.pipelineChanged=function(){var middlewares;return middlewares=$scope.pipeline.middlewares,$scope.middlewares?!angular.equals(middlewares,$scope.updatedMiddlewares()):void 0},$scope.updatePipeline=function(){return pipeline=$scope.pipeline,pipeline.middlewares=$scope.updatedMiddlewares()},$scope.savePipeline=function(callback){return $scope.updatePipeline(),flash.info="Saving...",$scope.pipeline.$save(function(){return flash.success="Pipeline changed",$scope.revertPipeline(),$analytics.eventTrack("pipeline.saved"),"function"==typeof callback?callback($scope.middlewares):void 0})},$scope.newMiddleware=function(spec){var middleware;return middleware={},middleware.name=spec.name,middleware.description=spec.description,middleware.code=spec.code,spec.empty||(middleware.spec_id=spec._id),middleware.uuid=uuid(),middleware.$new=!0,middleware},$scope.$on("drag.start",function(){return $scope.$apply(function(){return $scope.is_dragged=!0})}),$scope.$on("drag.stop",function(){return $scope.$apply(function(){return delete $scope.is_dragged})}),$scope.sortOptions={"axis":"y","cursor":"move","items":"> li.middleware","connectWith":".middleware-list.local","stop":function(event,ui,sortable){var _ref;return null!=(_ref=sortable.moved)?_ref.$updated=!0:void 0},"receive":{"pre":function(event,ui,state){var middleware,sortable,spec,_ref;return(spec=ui.item.scope().$eval("spec"))?(middleware=$scope.newMiddleware(spec),sortable=$(event.target).data("ui-sortable"),state.currentItem=sortable.currentItem,state.index=null!=(_ref=state.currentItem)?_ref.index(".middleware"):void 0,middleware.active=!0,state.moved=middleware):void 0},"post":function(event,ui,state){var _ref;return null!=(_ref=state.currentItem)&&_ref.remove(),$analytics.eventTrack("middleware.added",{"middleware":state.moved})}}},$scope.helpTemplate="pipeline"}).controller("MiddlewareEditCtrl",function($scope,$state,$stateParams,$modal){var changes,middleware,modal;return $scope.middleware||($scope.middleware=$scope.middlewares.get($stateParams.middlewareUuid)),changes=$scope.temporary_changes,middleware=changes.find($scope.middleware),$scope.save=function(uuid,updated_middleware){var original;return original=$scope.middlewares.get(uuid),$scope.middleware=$scope.middlewares.replace(original,updated_middleware)},modal=$modal.open({"templateUrl":"/middlewares/edit.html","controller":"MiddlewareFormCtrl","backdrop":"static","windowClass":"modal modal-full modal-fill-flex modal-slug draggable: dragOptions; middleware-edit","resolve":{"middleware":function(){return angular.copy(middleware)},"changes":function(){return changes["for"]($scope.middleware)},"savePipeline":function(){return $scope.savePipeline},"save":function(){return $scope.save}}}),$scope.close=function(result){return result?void 0:(changes["delete"]($scope.middleware),$state.transitionTo("service.middleware",$stateParams,!1))},modal.result.then($scope.close)}).factory("MiddlewareLog",function($resource,$state){return $resource("/api/services/:serviceId/console/:middlewareUuid",{"serviceId":function(){return $state.params.serviceId},"middlewareUuid":function(){return $state.params.middlewareUuid}})}).controller("MiddlewareFormCtrl",function($scope,$browser,$timeout,$state,middleware,save,savePipeline,changes,MiddlewareLog,$loop){var logsLoop,stopChanges,uuid;return uuid=middleware.uuid,$scope.middleware=middleware,$scope.original=angular.copy(middleware),$scope.hasSpec=!!middleware.spec_id,$scope.codemirror={"lineNumbers":!0,"lineWrapping":!0,"tabSize":2,"onLoad":function(editor){var refreshCodemirror,time,_i,_results;for(refreshCodemirror=function(){return editor.refresh()},_results=[],time=_i=200;900>=_i;time=_i+=100)_results.push($timeout(refreshCodemirror,time));return _results}},logsLoop=$loop($scope,function(){return MiddlewareLog.query({"how_many":20}).$promise.then(function(logs){return $scope.logs=logs,logsLoop.schedule()})}),$scope.canBeShared=function(){return $scope.sameAsOriginal()&&!middleware.$updated&&!middleware.$new},$scope.sameAsOriginal=function(){return angular.equals($scope.middleware,$scope.original)},$scope.close=$scope.$close,$scope.share=function(){return $state.transitionTo("spec.share",{"middlewareUuid":$scope.middleware.uuid})},$scope.save=function(){return save(uuid,$scope.middleware),$scope.close()},$scope.saveMetaOnEnter=function(target,keyCode){return 13===keyCode?this[target]=!1:void 0},$scope.saveAndDeploy=function(){var updateOriginal,updated;return updated=save(uuid,$scope.middleware),updateOriginal=function(middlewares){return $scope.middleware=middleware=middlewares.get(updated.uuid),$scope.original=angular.copy(updated)},savePipeline(updateOriginal)},$scope.dragOptions={"start":function(event,ui){return ui.helper.addClass("dragged")},"handle":".modal-header"},$scope["delete"]=function(){return save(uuid),$scope.close()},stopChanges=$scope.$on("$stateChangeStart",function(){return $browser.defer(function(){return $scope.$apply(function(){return $scope.$dismiss()})}),changes.copy=$scope.middleware}),$scope.isLogCollapse=!1}).controller("MiddlewareSpecBarCtrl",function($scope,MiddlewareSpec){return $scope.moreLocal=function(n){var i,spec,_i,_results;for(null==n&&(n=5),_results=[],i=_i=1;n>=1?n>=_i:_i>=n;i=n>=1?++_i:--_i)_results.push((spec=$scope.all_specs.pop())?$scope.specs.push(spec):void 0);return _results},$scope.moreGitHub=function(n){null==n&&(n=5)},$scope.all_specs=MiddlewareSpec.query(function(){return $scope.moreLocal(4)}),$scope.specs=[],$scope.dragOptions={"connectToSortable":".pipeline .middleware-list","helper":"clone","distance":0,"revert":"invalid","start":function(e,ui){var source;return source=$(e.target),ui.helper.css("max-width",source.width()),$scope.$emit("drag.start")},"stop":function(){return $scope.$emit("drag.stop")}}})}.call(this),function(){angular.module("slug.middleware_specs",["ui.router"]).config(function($stateProvider){return $stateProvider.state("specs",{"abstract":!0,"url":"/middlewares","views":{"":{"controller":"MiddlewareSpecCtrl","template":''}}}).state("specs.list",{"url":"/","views":{"main":{"templateUrl":"/middleware_specs/index.html","controller":"MiddlewareSpecsListCtrl"}}}).state("spec.new",{"parent":"specs","url":"/new","views":{"main":{"templateUrl":"/middleware_specs/new.html","controller":"MiddlewareSpecNewCtrl"}}}).state("spec",{"parent":"specs","url":"/:middlewareSpecId","views":{"main":{"templateUrl":"/middleware_specs/show.html","controller":"MiddlewareSpecShowCtrl"}}}).state("spec.share",{"parent":"spec.new","url":"/:middlewareUuid","views":{"main@specs":{"templateUrl":"/middleware_specs/new.html","controller":"MiddlewareSpecNewFromCtrl"}}}).state("spec.edit",{"parent":"spec","url":"/edit","views":{"main@specs":{"templateUrl":"/middleware_specs/edit.html","controller":"MiddlewareSpecEditCtrl"}}}).state("spec.github",{"parent":"spec","url":"/github","views":{"main@specs":{"templateUrl":"/middleware_specs/github.html","controller":"MiddlewareSpecGithubCtrl"}}})}).factory("DefaultMiddlewareCode",function(){return"return function(request, next_middleware)\n -- every middleware has to call next_middleware,\n -- so others have chance to process the request/response\n\n -- deal with request\n local response = next_middleware()\n send.notification({msg=response.status, level='info'})\n -- deal with response\n return response\nend"}).factory("MiddlewareSpec",function($resource){return $resource("/api/middleware_specs/:id",{"id":"@_id"})}).controller("MiddlewareSubscriptionCtrl",function($scope,GitHubSpec,GitHubSearchCode){return $scope.spec={"user":"3scale","repo":"no500-brainslug"},$scope.search=function(){var query;return query=[$scope.query,"language:json","in:file","path:brainslug.json"].join(" "),GitHubSearchCode.get({"q":query},function(results){var item;return $scope.results=function(){var _i,_len,_ref,_results;for(_ref=results.items,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)item=_ref[_i],_results.push(GitHubSpec.get({"user":item.repository.owner.login,"repo":item.repository.name}));return _results}()})},$scope.load=function(){return $scope.results=[],GitHubSpec.get($scope.spec,function(result){return $scope.results.push(result)}),GitHubSpec.get($scope.spec,function(result){return $scope.results.push(result)}),GitHubSpec.get($scope.spec,function(result){return $scope.results.push(result)})}}).controller("MiddlewareSpecCtrl",function($scope,$state,$stateParams,flash){return $scope.save=function(spec){return spec.$save(function(){return flash.success="Middleware Spec "+spec.name+" saved",$state.transitionTo("specs.list")})}}).controller("MiddlewareSpecsListCtrl",function($scope,MiddlewareSpec,$location,GitHub){return GitHub.user||(GitHub.user="mikz"),GitHub.token.set("60b6f9b60278b86a843d34f52558df7f016f0399"),$scope.github=GitHub,$scope.specs=MiddlewareSpec.query(),$scope.badges=function(spec){return spec.badges||(spec.badges=[{"icon":"icon-hdd","name":"local"},{"icon":"icon-github","name":"GitHub"},{"icon":"icon-code-fork","name":"fork"},{"icon":"icon-code-unlock","name":"public"}])},$scope.rating=function(spec){var i,rating,stars,_i,_j,_ref;if(spec.rating)return spec.rating;for(rating=Math.ceil(5*Math.random()),stars=[],i=_i=1;rating>=_i;i=_i+=1)stars.push({"icon":"icon-heart"});for(i=_j=_ref=rating+1;5>=_j;i=_j+=1)stars.push({"icon":"icon-heart-empty"});return spec.rating=stars}}).controller("MiddlewareSpecNewCtrl",function($scope,MiddlewareSpec){return $scope.spec=new MiddlewareSpec}).controller("MiddlewareSpecShowCtrl",function($scope,$stateParams,MiddlewareSpec,flash){return $scope.spec=MiddlewareSpec.get({"id":$stateParams.middlewareSpecId}),$scope.save=function(spec){return null==spec&&(spec=$scope.spec),spec.$save(function(){return flash.success="Middleware Spec "+spec.name+" saved"})}}).controller("MiddlewareSpecEditCtrl",function($scope,$stateParams,MiddlewareSpec){var _base;return $scope.spec=MiddlewareSpec.get({"id":$stateParams.middlewareSpecId}),(_base=$scope.spec).author||(_base.author={})}).controller("MiddlewareSpecNewFromCtrl",function($scope,$stateParams,Middleware,MiddlewareSpec){return $scope.spec||($scope.spec=new MiddlewareSpec),$scope.middleware=Middleware.get({"uuid":$stateParams.middlewareUuid},function(middleware){var attributes;return attributes={"code":middleware.code,"name":middleware.name,"description":middleware.description},angular.extend($scope.spec,attributes)})}).controller("MiddlewareSpecGithubCtrl",function($scope,$stateParams,MiddlewareSpec,flash,GitHub,GitHubIntegrator,GitHubMessages,GitHubToken,GitHubValidator){var github,_ref;return $scope.spec||($scope.spec=$scope.$parent.spec),github=$scope.github=angular.copy(null!=(_ref=$scope.spec)?_ref.github:void 0)||{},github.owner||(github.owner=GitHub.user),github.repo||(github.repo=GitHub.repoSuggestion($scope.spec)),GitHubToken.set("60b6f9b60278b86a843d34f52558df7f016f0399"),$scope.save=function(spec){return null==spec&&(spec=$scope.spec),spec.github=github,spec.$save(function(){return flash.success="Middleware GitHub integration saved",$scope.form.$setPristine()})},$scope.validate=function(){var failure,success;return $scope.messages=new GitHubMessages($scope.spec,github),$scope.valid=!1,success=function(){return $scope.valid=!0},failure=function(){return $scope},GitHubValidator($scope.messages).then(success,failure)},$scope.setUpIntegration=function(){var failure,success;return success=function(){return console.log("success")},failure=function(){return console.log("failure")},GitHubIntegrator($scope.messages).then(success,failure)}}).controller("MiddlewareSpecWizardCtrl",function($scope,$stateParams,$location,Middleware,DefaultMiddlewareCode,MiddlewareSpec,flash,$state){var nextStep,template,uuid;return $scope.spec=new MiddlewareSpec({"code":DefaultMiddlewareCode}),(uuid=null!=$stateParams.middlewareUuid)&&($scope.middleware=Middleware.get({"uuid":uuid},function(middleware){var attributes;return attributes=_(middleware).pick("code","name","description"),angular.extend($scope.spec,attributes)})),$scope.current_step||($scope.current_step=0),$scope.steps=["General Info","Author","Middleware"],$scope.next=function(){var step;return(step=nextStep())?template(step):$scope.save()},$scope.goTo=function(index){return template(index+1)},nextStep=function(){var current,steps;return steps=$scope.steps.length,current=$scope.current_step,steps>current?$scope.current_step=++current:void 0},template=function(step){var direction,enter,leave,_ref;return direction=$scope.current_stepcurrent?"future":step===current?"current":current>step?"past":void 0},$scope.save=function(spec){return null==spec&&(spec=$scope.spec),spec.$save(function(){return flash.success="Middleware Spec "+spec.name+" saved",$state.transitionTo("specs.list")})}})}.call(this),function(){var slug;slug=angular.module("slug.controllers"),slug.controller("NavController",function($scope,$state,Service,ServiceSubmenu){return $scope.hideMenu=function(){return $state.is("welcome")},$scope.submenu_template="/services/_submenu.html",$scope.submenu=ServiceSubmenu,$scope.submenu.services=Service.query()}),slug.directive("navigation",function(){return{"controller":"NavController","scope":{}}})}.call(this),function(){angular.module("slug.notifications",["ngResource","slug.search","angular-flash.service","infinite-scroll","slug.directives.filter"]).config(function($stateProvider){return $stateProvider.state("notifications",{"url":"/notifications?filter&select","templateUrl":"/notifications/index.html","controller":"NotificationsListCtrl"})}).controller("NotificationsNavigationCtrl",function($scope,$state,flash,EventsFilter){return $scope.filters.$promise.then(function(){var filter,name;return $scope.filters.unshift(new EventsFilter({"name":"Middlewares","icon":"cogs","builtin":!0,"tokens":[{"key":"channel","op":"=","value":"middleware","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Stats","icon":"bar-chart","builtin":!0,"tokens":[{"key":"channel","op":"=","value":"stats","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Syslog","icon":"desktop","builtin":!0,"tokens":[{"key":"channel","op":"=","value":"syslog","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Notifications","builtin":"notifications","icon":"asterisk","tokens":[{"key":"level","op":"@","value":"error","active":!0},{"key":"level","op":"@","value":"alert","active":!0},{"key":"level","op":"@","value":"warn","active":!0},{"key":"level","op":"@","value":"info","active":!0}]})),$scope.filters.unshift(new EventsFilter({"name":"Errors","builtin":"errors","icon":"asterisk","tokens":[{"key":"level","op":"@","value":"error","active":!0},{"key":"level","op":"@","value":"alert","active":!0},{"key":"level","op":"@","value":"warn","active":!0}]})),(name=$state.params.filter)&&(filter=_.find($scope.filters,function(f){return f.builtin===name}))?$scope.search.use(filter):void 0}),$scope.helpTemplate="notifications"}).factory("Event",function($resource){return $resource("/api/events/:id/:action",{"id":"@_id"},{"star":{"method":"POST","isArray":!1,"params":{"action":"star"}},"unstar":{"method":"DELETE","isArray":!1,"params":{"action":"star"}},"search":{"method":"GET","isArray":!0,"params":{}},"count":{"method":"GET","isArray":!1,"params":{"action":"count"}},"wipe":{"method":"DELETE","params":{"id":"all"}}})}).factory("EventsFilter",function($resource){return $resource("/api/filters/events/:id",{"id":"@_id"})}).controller("NotificationsListCtrl",function($scope,$state,Event,Search,flash,EventsFilter,$stateParams){return $scope.selected_event=$stateParams.select,$scope.search=new Search(Event,$scope),$scope.filters=EventsFilter.query(),$scope.newFilter=function(tokens){return new EventsFilter({"tokens":tokens,"name":"new filter"})},$scope.highlight=function(event){return Event.highlight({"id":event._id},{"highlighted":!0})},$scope.wipe=function(){return Event.wipe(function(){return $scope.search["do"]()}),flash.info="All notifications have been removed."}})}.call(this),function(){angular.module("slug.root",["ui.router","slug.setup"]).config(function($urlRouterProvider){return $urlRouterProvider.when("/","/setup")})}.call(this),function(){var __bind=function(fn,me){return function(){return fn.apply(me,arguments)}};angular.module("slug.service",["ngResource","ui.router","slug.service_submenu.service"]).factory("Service",function($resource,$location){var Service;return Service=$resource("/api/services/:id",{"id":"@_id"}),Service.prototype.host=function(){return""+this.code()+"-"+$location.host()},Service.prototype.code=function(){var _ref;return null!=(_ref=this.endpoints[0])?_ref.code:void 0},Service}).constant("ServicesResolver",function(Service){return Service.query().$promise}).constant("ServiceResolver",function($stateParams,Service){return Service.get({"id":$stateParams.serviceId}).$promise}).config(function($stateProvider,ServicesResolver,ServiceResolver,ServiceSubmenu){var services;return services={"service":ServiceResolver,"services":ServicesResolver},$stateProvider.state("services",{"url":"/services","templateUrl":"/services/index.html","controller":"ServicesListCtrl"}).state("service-new",{"url":"/services/new","templateUrl":"/services/new.html","controller":"ServiceNewCtrl","onEnter":function(){return ServiceSubmenu.show=!1},"onExit":function(){return ServiceSubmenu.show=!0}}).state("service",{"url":"/services/:serviceId","abstract":!0,"controller":"ServiceCtrl","templateUrl":"/services/layout.html","resolve":services,"onEnter":function(service){return ServiceSubmenu.service=angular.copy(service),ServiceSubmenu.active=!0},"onExit":function(){return ServiceSubmenu.active=!1}}).state("service.show",{"url":"/integration","parent":"service","templateUrl":"/services/show.html","controller":"ServiceShowCtrl","resolve":services}).state("service.demo",{"url":"/demo_calls","parent":"service","templateUrl":"/services/demo_calls.html","controller":"ServiceDemoCallsCtrl"}).state("service.edit",{"parent":"service","url":"/edit","templateUrl":"/services/edit.html","controller":"ServiceEditCtrl"}).state("service.destroy",{"parent":"service","url":"/destroy","views":{"@":{"templateUrl":"/services/destroy.html","controller":"ServiceDestroyCtrl"}}})}),angular.module("slug.controllers.services",["slug.services","slug.controllers","slug.stats","ngResource","slug.services.demo"]).factory("ServiceStatsDashboard",function($resource,$state){return $resource("/api/services/:serviceId/stats/dashboard",{"serviceId":function(){return $state.params.serviceId}})}).factory("ServicesDashboard",function(Service,ServiceStatsDashboard,$q,$timeout){var ServicesDashboard;return ServicesDashboard=function(){function ServicesDashboard(){this.load_all_stats=__bind(this.load_all_stats,this),this.services=Service.query(),this.stats={}}return ServicesDashboard.prototype.when_ready=function(f){return this.services.$promise.then(f)},ServicesDashboard.prototype.load_service_stats=function(service_id){return ServiceStatsDashboard.get({"serviceId":service_id}).$promise.then(function(_this){return function(stats){return _this.stats[service_id]=stats}}(this))},ServicesDashboard.prototype.refresh=function($scope){var last_timeout,update_stats;return last_timeout=null,update_stats=function(_this){return function(){return _this.load_all_stats().then(function(){return last_timeout=$timeout(update_stats,1e4)})}}(this),$scope.$on("$destroy",function(){return $timeout.cancel(last_timeout)}),this.when_ready(update_stats)},ServicesDashboard.prototype.load_all_stats=function(){var promises,service;return promises=function(){var _i,_len,_ref,_results;for(_ref=this.services,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)service=_ref[_i],_results.push(this.load_service_stats(service._id));return _results}.call(this),$q.all(promises)},ServicesDashboard}()}).controller("ServicesListCtrl",function($scope,ServicesDashboard){return $scope.dashboard||($scope.dashboard=new ServicesDashboard),$scope.dashboard.refresh($scope)}).controller("ServiceDashboardCtrl",function($scope){var stats;return stats=function(){return $scope.dashboard.stats[$scope.service._id]},$scope.$watch(stats,function(stats){return $scope.stats=stats}),$scope.template={"chart":{"height":150},"plotOptions":{"series":{"animation":!1}}}}).controller("ServiceCtrl",function($scope,services,service){return $scope.services||($scope.services=services),$scope.service=service}).controller("ServiceDemoCallsCtrl",function($scope,service,DemoApis){return $scope.demo=DemoApis[service.demo]}).controller("ServiceShowCtrl",function($scope,$location,service,DemoApis){var _ref;return $scope.endpoint=null!=(_ref=service.endpoints)?_ref[0].code:void 0,$scope.proxy_url=""+$location.protocol()+"://"+("function"==typeof service.host?service.host():void 0)+"/",$scope.demo=DemoApis[service.demo],$scope.integration=service.demo?"demo":"normal",$scope.helpTemplate="endpoints",$scope.copy=function(node){var clip,text;return text=node.textContent.trim(),clip=new ZeroClipboard,clip.setText(text)}}).controller("ServiceDestroyCtrl",function($scope,Service,$stateParams,flash,$location,$analytics){return $scope.service||($scope.service=Service.get({"id":$stateParams.serviceId})),$scope.destroy=function(){return flash.warning="Deleting Service ...",$scope.service.$remove(function(service){var equals,for_removal,index;return equals=_.partial(angular.equals,service),(for_removal=_($scope.services).find(equals))&&(index=$scope.services.indexOf(for_removal),$scope.services.splice(index,1)),flash.info="Service deleted",$analytics.eventTrack("service.deleted",{"service_id":service._id}),$location.path("services")})}}).controller("ServiceNewCtrl",function($scope,Service,DemoApis,DemoService,$analytics){return $scope.service=new Service({"endpoints":[{}]}),$scope.demos=DemoApis,$scope.$emit("serviceReset"),$scope.useDemo=function(demo){return DemoService.update($scope.service,demo),$analytics.eventTrack("demo.use",{"demo":demo})}}).controller("ServiceEditCtrl",function($scope,$state,$stateParams,Service,$location,$analytics,$rootScope){return $scope.service||($scope.service=Service.get({"id":$stateParams.serviceId})),$scope.suffix=$location.host(),$scope.resetDemo=function(){return delete $scope.service.demo,delete $scope.service.logo},$scope.save=function(){return $scope.service.$save(function(service){return $state.go("service.show",{"serviceId":service._id}).then(function(){return $rootScope.$emit("serviceUpdated",service),$analytics.eventTrack("service.save",{"service_id":service._id})})})}}).controller("ServiceEndpointCtrl",function($scope,uuid){var _base;return(_base=$scope.endpoint).code||(_base.code=uuid().substr(0,8)),$scope.original=angular.copy($scope.endpoint),$scope.edit=function(){return $scope.editing=!0},$scope.apply=function(){return $scope.original=angular.copy($scope.endpoint),$scope.editing=!1},$scope.cancel=function(){return angular.extend($scope.endpoint,$scope.original),$scope.editing=!1}})}.call(this),function(){angular.module("slug.setup",["ui.router","slug.user_settings"]).config(function($stateProvider){var Config;return Config={"config":function(UserSettings){return UserSettings.$promise}},$stateProvider.state("setup",{"url":"/setup","templateUrl":"/setup/show.html","controller":"SetupCtrl","resolve":Config}).state("pair",{"url":"/pair","templateUrl":"/setup/pair.html","controller":"PairCtrl","resolve":Config})}).controller("SetupCtrl",function($scope,$state,config,flash,OnPremise){var setup;return setup=$scope.setup={"report_usage":!0},config.get("set_up")&&$state.go("dashboard"),$scope.saveSetup=function(){var failure,update_config,uuid;return failure=function(){return flash.error="There was an error when setting up this Traffic Monitor. Dou you have internet connection?"},update_config=function(){return config.extend({"report_usage":setup.report_usage,"set_up":!0}),config.$promise.then(function(){return flash.success="Successfully set up your Traffic Monitor",$state.go("dashboard")})},setup.report_usage?(uuid=config.get("uuid"),OnPremise.register(uuid).then(update_config,failure)):update_config()}}).controller("PairCtrl",function($scope,$state,Brain,OnPremise){return Brain.$promise.then(function(){return $scope.get_key=""+Brain.host+"/on_premise/link"}),$scope.setup={},$scope.pair=function(){var key,linking;return key=$scope.setup.pairing_key,linking=OnPremise.link(key),linking.success(function(){return $state.go("dashboard")})}})}.call(this),function(){angular.module("slug.traces.services",["ngResource","slug.services.pretty_print"]).factory("ServiceTrace",function($resource,$state,Trace){var ServiceTrace;return ServiceTrace=$resource("/api/services/:service_id/traces/:id/:action/",{"id":"@_id","service_id":function(){return $state.params.serviceId}},{"search":{"method":"GET","isArray":!0,"params":{"action":"search_for_index"}},"count":{"method":"GET","isArray":!1,"params":{"action":"count"}},"wipe":{"method":"DELETE","params":{"id":"all"}},"redo":{"method":"POST","params":{"action":"redo"}}}),ServiceTrace.prototype.$trace=function(){return new Trace({"_id":this._id})},ServiceTrace.prototype.$star=function(f){return this.$trace().$star(f)},ServiceTrace.prototype.$unstar=function(f){return this.$trace().$unstar(f)},ServiceTrace}).factory("Trace",function($resource){return $resource("/api/traces/:id/:action/",{"id":"@_id"},{"search":{"method":"GET","isArray":!0,"params":{"action":"search_for_index"}},"count":{"method":"GET","isArray":!1,"params":{"action":"count"}},"star":{"method":"POST","isArray":!1,"params":{"action":"star"}},"unstar":{"method":"DELETE","isArray":!1,"params":{"action":"star"}},"wipe":{"method":"DELETE","params":{"id":"all"}},"redo":{"method":"POST","params":{"action":"redo"}}})}),angular.module("slug.traces",["slug.traces.services","slug.controllers","slug.services.filters","ui.bootstrap.dropdownToggle","ui.bootstrap.pagination","ui.bootstrap.collapse","slug.directives.highlight"]).controller("TracesNavigationCtrl",function($scope,$state,TracesFilter){return $scope.filters.$promise.then(function(){var filter,name;return $scope.filters.unshift(new TracesFilter({"_id":3,"name":"Starred","icon":"star","builtin":"starred","tokens":[{"key":"starred","op":"=","value":!0,"active":!0}]})),$scope.filters.unshift(new TracesFilter({"_id":2,"name":"Errors","icon":"minus-sign","builtin":"errors","tokens":[{"key":"res.status","op":">=","value":400,"active":!0},{"key":"res.status","op":"<=","value":600,"active":!0}]})),$scope.filters.unshift(new TracesFilter({"_id":1,"name":"Traffic","icon":"exchange","builtin":"traffic","tokens":[]})),(name=$state.params.filter)&&(filter=_.find($scope.filters,function(f){return f.builtin===name}))?$scope.search.use(filter):void 0}),$scope.helpTemplate="all_traces"}).controller("TracesIndexCtrl",function($scope,Service,Trace,Search,TracesFilter,flash){return $scope.search=new Search(Trace,$scope),$scope.services=Service.query(),$scope.redo=function(trace){var redo;return redo=Trace.redo({"_id":trace._id}),redo.$promise},$scope.filters=TracesFilter.query(),$scope.serviceCode=function(trace){var _ref;return $scope.services_hash||($scope.services_hash=_.indexBy($scope.services,"_id")),trace.$service_code||(trace.$service_code=null!=(_ref=$scope.services_hash[trace.service_id])?_ref.code():void 0)},$scope.newFilter=function(tokens){return new TracesFilter({"tokens":tokens,"name":"new filter"})},$scope["delete"]=function(trace){return trace.$remove(function(){return $scope.search.remove(trace),flash.success="Trace deleted"})},$scope.wipe=function(){return Trace.wipe(function(){return $scope.search["do"]()}),flash.info="All traces have been removed."},$scope.load=function(trace){var _ref;return null==(null!=(_ref=trace.res)?_ref.body:void 0)?Trace.get({"id":trace._id},function(full){return angular.extend(trace,full)}):void 0}}).controller("ServiceTracesIndexCtrl",function($scope,ServiceTrace,Search,flash,TracesFilter,Trace){return $scope.search=new Search(ServiceTrace,$scope),$scope.redo=function(trace){var redo;return redo=Trace.redo({"_id":trace._id}),redo.$promise},$scope.filters=TracesFilter.query(),$scope["delete"]=function(trace){return trace.$trace().$remove(function(){return $scope.search.remove(trace),flash.success="Trace deleted"})},$scope.wipe=function(){return ServiceTrace.wipe(function(){return $scope.search["do"]()}),flash.info="All traces have been removed."},$scope.helpTemplate="traces",$scope.newFilter=function(tokens){return new TracesFilter({"tokens":tokens,"name":"new filter"})},$scope.load=function(trace){var _ref;return null==(null!=(_ref=trace.res)?_ref.body:void 0)?Trace.get({"id":trace._id},function(full){return angular.extend(trace,full)}):void 0}}).controller("TraceShowCtrl",function($scope,Trace,Service,$stateParams,flash){return $scope.trace||($scope.trace=Trace.get({"id":$stateParams.traceId})),$scope.trace.$promise.then(function(trace){return $scope.service=Service.get({"id":trace.service_id})}),$scope.redo=function(){return $scope.trace.$redo(function(){return flash.success="Trace redone"})},$scope["delete"]=function(){return $scope.trace.$delete(function(){return flash.success="Trace deleted"})},$scope.toggleStar=function(){return $scope.trace.starred?$scope.trace.$unstar():$scope.trace.$star()}}).controller("TraceDestroyCtrl",function($scope,Trace,$stateParams){return $scope.trace||($scope.trace=Trace.get({"id":$stateParams.traceId}))}).controller("TraceBodyCtrl",function($scope,prettyPrint){return $scope.togglePrettyBody=function(){return $scope.original?($scope.body=$scope.original,delete $scope.original):($scope.original=$scope.body,$scope.body=prettyPrint($scope.contentType,$scope.body))}}).directive("slugTrace",function(){return{"scope":{"trace":"=slugTrace"},"templateUrl":function(element,attrs){return attrs.expanded?"/traces/_expanded_trace.html":"/traces/_trace.html"},"link":function(scope){return scope.response=scope.trace.res,scope.request=scope.trace.req}}}).directive("traceRequest",function(){return{"scope":{"request":"=traceRequest"},"templateUrl":function(element,attrs){return attrs.expanded?"/traces/_expanded_request.html":"/traces/_request.html"},"link":function(scope){var _ref;return scope.contentType=null!=(_ref=scope.request.headers)?_ref["Content-Type"]:void 0}}}).directive("traceResponse",function(){return{"scope":{"response":"=traceResponse"},"templateUrl":function(element,attrs){return attrs.expanded?"/traces/_expanded_response.html":"/traces/_response.html"},"controller":function($scope){return $scope.hasHeaders||($scope.hasHeaders=function(response){return!_.isEmpty(response.headers)})},"link":function(scope){var type,_ref;return(type=null!=(_ref=scope.response.headers)?_ref["Content-Type"]:void 0)?scope.contentType=type.split(";")[0]:void 0}}}).directive("traceHeaders",function(){return{"scope":{"headers":"=traceHeaders"},"templateUrl":"/traces/_headers.html"}}).directive("tracePipeline",function(){return{"scope":{"pipeline":"=tracePipeline"},"templateUrl":"/traces/_pipeline.html","controller":function($scope){return $scope.hasResponse||($scope.hasResponse=function(response){return response.status||response.body||!_.isEmpty(response.headers)})}}})}.call(this),function(){angular.module("slug.directives",["slug.directives.pretty_print","slug.directives.list","slug.directives.confirm","slug.directives.token_input","slug.directives.navigation","slug.directives.demo_block","slug.service_submenu"]).directive("apitools",function($http,$q){return{"restrict":"EA","scope":{},"compile":function(){var http,name;return name=$q.defer(),http=$http.get("/api/get_slug_name"),http.then(function(response){return name.resolve(response.data.slug_name)}),function(scope){return scope.name=name}}}}).directive("relHref",function($location){return{"link":function(scope,element,attrs){var href;
+return href="."+$location.path()+attrs.relHref,element.attr("href",href).attr("target","_self")}}}).directive("preventDisabled",function(){return{"link":function(scope,element,attrs){return element.on(attrs.preventDisabled,function(){return!1})}}}).directive("zeroclipboard",function(){return{"link":function(scope,element){var button,clip;return button=angular.element(''),element.after(button),clip=new ZeroClipboard(button),clip.on("dataRequested",function(){return clip.setText($(this).prev().text())})}}}).directive("focus",function(){return{"link":function(scope,element){var giveFocus,isVisible;if(element.is("input"))return giveFocus=function(visible){return visible?element.focus():void 0},isVisible=function(){return element.is(":visible")},scope.$watch(isVisible,giveFocus)}}}).directive("fillHeight",function($window){var TRANSITION_END,window;return TRANSITION_END="webkitTransitionEnd oTransitionEnd transitionend msTransitionEnd",window=angular.element($window),{"link":function(scope,element,attributes){var body,parent,size,top,total;return body=element.closest(".modal-body"),parent=element.closest(attributes.fillHeight),window.on("resize.fillHeight",function(){return scope.$apply()}),element.closest(".modal").on(TRANSITION_END,function(){return scope.$apply()}),total=function(){return body.height()},top=function(){return parent.position().top},size=function(){return total()-top()},scope.$on("destroy",function(){return window.unbind("resize.fillHeight")}),scope.$watch(size,function(size){return element.css("height",size)})}}}).directive("author",function(){return{"scope":{"author":"="},"link":function(scope,element){var author,github,link,name;return(author=scope.author)?(link=angular.element(""),name=author.name,(github=author.github)?(link.attr({"title":name}),link.attr({"href":"//github.com/"+github}),link.text("@"+github)):link.text(name),element.html(link)):void element.text("unknown")}}}).directive("truncate",function($interpolate,$compile){return{"restrict":"A","scope":!0,"link":function(scope,element,attributes){var expression,interpolate,length,template;return template='{{ truncated }}\n …\n {{ rest }}\n',expression=element.text(),interpolate=$interpolate(expression),length=attributes.truncate,element.html(template),scope.$watch(interpolate,function(text){return text=String(text),scope.truncated=text.substring(0,length),scope.rest=text.substring(length),$compile(element.contents())(scope)})}}}).directive("draggable",function(){return{"restrict":"CA","compile":function(element){return element.draggable(),function(scope,element,attrs){var config;return config=attrs.draggable,scope.$watch(config,function(options){return element.draggable(options)})}}}}).directive("logLevel",function(){return{"scope":{"logLevel":"="},"link":function(scope,element){var level;return level=scope.logLevel,element.text(level),element.addClass("label-"+level)}}}).directive("tabContentTransclude",function(){return{"link":function(scope,element){var invalidCount,updateInvalid;return updateInvalid=function(invalid){return scope.tab.invalid=invalid>0},invalidCount=function(){return element[0].querySelectorAll("input.ng-invalid,select.ng-invalid").length},scope.$watch(invalidCount,updateInvalid)}}}).directive("tabHeadingTransclude",function(){return{"link":function(scope,elm){var invalid;return invalid=function(){return scope.invalid},scope.$watch(invalid,function(isInvalid){return elm.parent().toggleClass("invalid",isInvalid)})}}}).directive("rel",function(){return{"restrict":"A","compile":function(element,attrs){return"external"===attrs.rel?element.attr("target","_blank"):void 0}}}).factory("animationFrame",function($window){var cancelRequestAnimationFrame,requestAnimationFrame;return requestAnimationFrame=$window.requestAnimationFrame||$window.mozRequestAnimationFrame||$window.webkitRequestAnimationFrame||$window.oRequestAnimationFrame||$window.msRequestAnimationFrame,cancelRequestAnimationFrame=$window.cancelRequestAnimationFrame||$window.mozCancelRequestAnimationFrame||$window.webkitCancelRequestAnimationFrame||$window.oCancelRequestAnimationFrame||$window.msCancelRequestAnimationFrame,{"request":function(fun){return requestAnimationFrame(fun)},"cancel":function(id){return cancelRequestAnimationFrame(id)},"withFallback":function(func){return("function"==typeof requestAnimationFrame?requestAnimationFrame(func):void 0)||func()}}}).factory("defer",function($browser,animationFrame){return function(fun){return $browser.defer(function(){return animationFrame.request(fun)})}})}.call(this),function(){angular.module("slug.directives.confirm",[]).directive("slugConfirm",function(){var ACTIVE_CLASS;return ACTIVE_CLASS="slug-confirm-active",{"transclude":!0,"priority":-1,"template":'\n\n Yes | No\n',"link":function(scope,element){var confirmation;return element.addClass("slug-confirm"),confirmation=element.find(".slug-confirmation"),confirmation.bind("focusout",function(){return element.removeClass(ACTIVE_CLASS)}),element.bind("click",function(event){return element.toggleClass(ACTIVE_CLASS),event.target!==confirmation.get(0)?(event.stopImmediatePropagation(),event.preventDefault()):void 0})}}})}.call(this),function(){angular.module("slug.directives.demo_block",["slug.user_settings"]).directive("demoBlock",function(UserSettings){return{"compile":function(element,attrs){var closeLink,hidden,setting;return element.addClass("demo-block"),setting="hide_demo_block_"+attrs.demoBlock,element.hide(),hidden=UserSettings.get(setting,function(hidden){return hidden||(hidden=!1),element.toggle(!hidden)}),closeLink=angular.element(''),closeLink.on("click",function(){return element.hide(),UserSettings.set(setting,!0)}),element.prepend(closeLink)}}})}.call(this),function(){angular.module("slug.directives.filter",["slug.directives"]).controller("NavigationFilterCtrl",function($scope,flash){return $scope.canEdit=function(filter){return filter&&!filter.builtin},$scope.canDelete=function(filter){return $scope.canEdit(filter)&&!!filter._id},$scope.isEditing=function(filter){var _ref;return(null!=(_ref=$scope.editing)?_ref.$filter:void 0)===filter},$scope.edit=function(filter){var _ref;return $scope.editing=angular.copy(filter),null!=(_ref=$scope.editing)?_ref.$filter=filter:void 0},$scope.update=function(filter){return filter.$save(function(){return flash.success="Filter saved",$scope.editing=null})},$scope.apply=function(filter){return $scope.edit(null),$scope.search.use(filter)},$scope["delete"]=function(filter){return filter.$delete(function(){return flash.info="Filter removed",$scope.remove(filter)})},$scope.remove=function(filter){return $scope.filters=_($scope.filters).without(filter)},$scope.clear=function(){return $scope.edit(null),$scope.search.clear()},$scope.off=function(){return $scope.search.clear()},$scope.save=function(filter){var copy;return copy=angular.copy($scope.editing),angular.extend(filter,copy),filter.$save(function(){return flash.info="Filter saved",$scope.edit(null),$scope.apply(filter)})},$scope.abort=function(filter){return filter._id||$scope.remove(filter),$scope.edit(null)},$scope.addNew=function(){var filter;return filter=$scope.newFilter([]),filter.name=null,$scope.filters.push(filter),$scope.edit(filter)}}).directive("listFilter",function($rootScope){return{"templateUrl":"/navigation/filter.html","controller":"NavigationFilterCtrl","transclude":!0,"scope":!0,"link":function(scope,element,attrs){return scope.listFilterTitle=attrs.filterTitle,$rootScope.$on("editFilter",function(event,filter){return scope.edit(filter)})}}}).directive("editFilter",function(){return{"template":'',"replace":!0,"transclude":!0,"restrict":"E","priority":0,"scope":!0,"link":function(scope,element,attrs){var input;return input=element.find("input"),scope.placeholder=attrs.placeholder,element.removeAttr("placeholder")}}})}.call(this),function(){angular.module("slug.directives.highlight",[]).directive("highlight",function($browser,animationFrame){var DEFAULT_THEME;return DEFAULT_THEME="default",{"scope":{"code":"=highlight","contentType":"=?highlightContentType","transform":"@highlightTransform","theme":"@highlightTheme"},"link":function(scope,element,attrs){var binding,output,theme,transform,update;return output=element.get(0),theme=scope.theme||DEFAULT_THEME,element.addClass("cm-s-"+theme),transform=function(code){switch(scope.transform){case"json":return scope.contentType="application/json",angular.toJson(code,!0);default:return code}},update=function(){return $browser.defer(function(){var code;return code=transform(scope.code),animationFrame.withFallback(function(){return CodeMirror.runMode(code,scope.contentType,output)})})},scope.code&&update(),null!=attrs.highlightRefresh?(binding=function(){return scope.code},scope.$watch(binding,update)):void 0}}})}.call(this),function(){angular.module("slug.directives.list",["ui.bootstrap.collapse","ngAnimate"]).controller("SlugListItemController",function($scope){return $scope.slugListItemToggle=function(){return $scope.isOpen=!$scope.isOpen}}).directive("slugList",function(){return{"restrict":"A","transclude":!1,"link":function(scope,element){return element.addClass("slug-list")}}}).directive("slugItem",function($location){return{"restrict":"A","controller":"SlugListItemController","transclude":!1,"link":function(scope,element,attrs){var anchor,item;return scope.$watch("isOpen",function(isOpen){return element.toggleClass("opened",!!isOpen)}),scope.isOpen=scope.$eval(attrs.slugItemExpanded),item=scope.$eval(attrs.slugItem),item&&scope.isOpen&&(anchor=angular.element("",{"name":"list-item-"+item._id}),element.prepend(anchor),$location.hash("list-item-"+item._id)),element.addClass("slug-item")}}}).directive("heading",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("toggle",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("actions",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0,"link":function(scope){return scope.active_actions=0,scope.$on("actions.running",function(){return scope.active_actions+=1}),scope.$on("actions.finished",function(){return scope.active_actions-=1})}}}).directive("actionButton",function(){return{"restrict":"E","require":"^actions","replace":!0,"template":''}}).directive("actionItem",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("action",function($compile){return{"scope":!0,"compile":function(element,attrs){var _icon,_text;return element.addClass("action"),_icon=angular.lowercase(attrs.icon),_text=attrs.text,function(scope,element){var icon,text;return icon=angular.element(''),$compile(icon)(scope),element.append(icon),scope.icon=_icon,_text?(text=angular.element(" {{ text }}"),$compile(text)(scope),icon.append(text),scope.text=_text):void 0}}}}).directive("actionCall",function(){return{"link":function(scope,element,attrs){return element.bind("click",function(){return scope.$emit("actions.running"),scope.$eval(attrs.actionCall).then(function(){return scope.$emit("actions.finished")})})}}}).directive("details",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}}).directive("detail",function(){return{"restrict":"EA","template":'',"replace":!0,"transclude":!0}}).directive("content",function(){return{"restrict":"E","require":"^slugItem","template":'',"replace":!0,"transclude":!0}})}.call(this),function(){angular.module("slug.directives.navigation",["slug.filters"]).controller("MiddlewareNavigationCtrl",function($scope){return $scope}).controller("ServiceNavigationCtrl",function($scope){return $scope}).directive("middlewareNavigation",function(){return{"controller":"MiddlewareNavigationCtrl","templateUrl":"/navigation/middleware.html"}}).directive("serviceNavigation",function(){return{"controller":"ServiceNavigationCtrl","templateUrl":"/navigation/service.html"}}).directive("tracesNavigation",function(){return{"controller":"TracesNavigationCtrl","templateUrl":"/navigation/traces.html"}}).directive("analyticsNavigation",function(){return{"controller":"DashboardsNavigationCtrl","templateUrl":"/navigation/analytics.html"}})}.call(this),function(){var pretty_print,syntax_highlight;pretty_print=angular.module("slug.directives.pretty_print",[]),pretty_print.directive("prettyPrint",function($sce){return{"restrict":"E","template":'',"replace":!0,"scope":{"object":"=value","theme":"@theme","language":"@lang"},"link":function(scope,element){var binding,callback,object,theme,update,_ref;return binding=function(){return scope.object},theme=scope.theme||"default",element.addClass("cm-s-"+theme),update=function(object){var lang,text;if(object){switch(scope.language){case"json":text=angular.toJson(object,!0),lang={"name":"javascript","json":!0};break;default:text=object}return scope.prettyPrintCode=$sce.trustAsHtml(syntax_highlight(text,lang))}},object=scope.$eval(binding),(callback=null!=object&&null!=(_ref=object.$promise)?_ref.then:void 0)?callback(update):scope.$watch(binding,update)}}}),syntax_highlight=function(text,language){var node;return null==language&&(language="null"),text?(node=document.createElement("div"),CodeMirror.runMode(text,language,node),node.innerHTML):void 0}}.call(this),function(){angular.module("slug.directives.search",[]).controller("SearchBoxCtrl",function($scope,flash){var tokens;return tokens=$scope.search.tokens,$scope.search.type="basic",$scope.saveFilter=function(){var filter;return filter=$scope.search.using_filter,filter.tokens=tokens(),filter.$save(function(){return flash.success="Filter saved"})},$scope.saveFilterAs=function(){var filter;return filter=$scope.newFilter(tokens()),filter.$save(function(){return flash.success="Filter created",$scope.filters.push(filter),$scope.search.used_filter=filter,$scope.$emit("editFilter",filter)})}}).directive("searchLoading",function(){return{"template":'',"link":function(scope,element,attributes){var loading;return loading=attributes.searchLoading||"search.loading",scope.$watch(loading,function(loading){return element.toggle(!!loading)})}}}).directive("searchLoadMore",function(){return{"template":'',"transclude":!0,"link":function(scope,element){return scope.$watch("search.canLoadMore()",function(canLoadMore){return element.toggle(!!canLoadMore)})}}}).directive("searchBox",function(){return{"templateUrl":"/search/search_box.html","controller":"SearchBoxCtrl","replace":!0,"restrict":"EA"}}).controller("ControlBoxCtrl",function($scope,TokenHeuristics){return $scope.selected=[],$scope.toggleAllItems=function(){return 0===$scope.selected.length?$scope.selected=$scope.search.results:$scope.deselect()},$scope.hasSelected=function(){return $scope.selected.length>0},$scope.deselect=function(items){var _ref;return $scope.selected=null!=items?(_ref=_($scope.selected)).without.apply(_ref,items):[]},$scope.highlightItems=function(items){var item,starred,toggle,_i,_len;for(starred=_(items).any(function(item){return item.starred}),toggle=starred?"$unstar":"$star",_i=0,_len=items.length;_len>_i;_i++)item=items[_i],item[toggle]();return $scope.deselect()},$scope.filterItems=function(items){var heuristics;return heuristics=new TokenHeuristics(items),heuristics.singular("level","channel","req.method","res.status","req.host","req.uri"),$scope.suggestions=heuristics.suggestions(),$scope.deselect()},$scope.trashItems=function(items){var item,_i,_len;for(_i=0,_len=items.length;_len>_i;_i++)item=items[_i],item.$delete(function(item){return $scope.search.remove(item)});return $scope.deselect(items)},$scope.toggleItem=function(item){return item?$scope.selected.indexOf(item)>=0?$scope.selected=_($scope.selected).without(item):$scope.selected.push(item):void 0}}).directive("controlBox",function(){return{"templateUrl":"/search/control_box.html","controller":"ControlBoxCtrl","replace":!0,"restrict":"EA"}}).directive("loadMore",function(){return{"restrict":"E","replace":!0,"transclude":!0,"template":'\n \n
'}}).directive("toggleItem",function(){return{"replace":!0,"template":'',"scope":!0,"link":function(scope,element,attributes){return scope.$watch("selected.indexOf(item) >= 0",function(selected){return scope.checked=selected,element.addClass("slug-item-check")}),scope.$watch(attributes.toggleItem,function(item){return scope.item=item})}}}).directive("toggleAllItems",function(){return{"replace":!0,"template":'',"link":function(scope,element){var areSame,input;return input=element.filter("input"),areSame=function(){return scope.selected===scope.search.results},input.bind("click",function(){return scope.toggleAllItems(),input.prop("checked",areSame())}),scope.$watch(areSame,function(same){return input.prop("checked",same)})}}})}.call(this),function(){var service_submenu;angular.module("slug.service_submenu.service",[]).constant("ServiceSubmenu",service_submenu={"service":null,"show":!0,"active":!1,"isSelected":function(service){var _ref;return(null!=(_ref=service_submenu.service)?_ref._id:void 0)===(null!=service?service._id:void 0)},"use":function(service){return service_submenu.service=service},"update":function(service){return service_submenu.isSelected(service)?service_submenu.use(service):void 0}}),angular.module("slug.service_submenu",["slug.service","slug.utils","slug.service_submenu.service"]).factory("ActiveDocsCheck",function($http,$state){return function(service_id){return null==service_id&&(service_id=$state.params.serviceId),service_id?$http({"method":"GET","url":"/api/services/"+service_id+"/docs"}):void 0}}).controller("ServiceSubmenuCtrl",function($scope,$rootScope,$state,$loop,Service,ServiceSubmenu,ActiveDocsCheck,UserSettings){return $scope.submenu=ServiceSubmenu,$scope.config=UserSettings,$scope.$watch(function(){return ServiceSubmenu.service},function(service){return $scope.service_navigation=(null!=service?service._id:void 0)?"/navigation/service.html":"/navigation/all_services.html"}),$rootScope.$on("serviceReset",function(){return ServiceSubmenu.use(null)}),$rootScope.$on("serviceUpdated",function(event,service){return ServiceSubmenu.services=Service.query(function(){return ServiceSubmenu.update(service)})}),$scope.selectService=function(service){var params,root,scoped,state;return service?(params={"serviceId":service._id},$state.includes("service")?$state.transitionTo($state.current.name,params):(scoped=$state.get("service."+$state.current.name),scoped?$state.transitionTo(scoped,params):$state.transitionTo("service.traces",params))):(ServiceSubmenu.use(service),root=$state.current.name.replace("service.",""),state=$state.get(root),void $state.transitionTo(state&&"service"!==state.parent?state:"services"))}}).directive("serviceSubmenu",function(){return{"templateUrl":"/services/_submenu.html","controller":"ServiceSubmenuCtrl","replace":!0}})}.call(this),function(){var __bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};angular.module("slug.directives.token_input",["slug.directives"]).factory("KEY_CODES",function(){return{"LEFT_ARROW":37,"RIGHT_ARROW":39,"ENTER":13,"BACKSPACE":8,"DELETE":46}}).factory("TokenCollection",function(){var TokenCollection;return TokenCollection=function(){function TokenCollection(tokens){this.tokens=tokens}return TokenCollection.prototype.has=function(token){var existing,string,_i,_len,_ref;for(string=token.toString(),_ref=this.tokens,_i=0,_len=_ref.length;_len>_i;_i++)if(existing=_ref[_i],existing.toString()===string)return existing;return!1},TokenCollection}()}).factory("TokenFormat",function(){var AVAILABLE_OPERATORS,key,ops;return AVAILABLE_OPERATORS=[">=",">","<","<=","=","="],ops=AVAILABLE_OPERATORS.join("|"),key="[^\\s=><]+",new RegExp("("+key+")\\s*("+ops+")\\s*("+key+")")}).factory("Token",function(TokenFormat){var Token;return Token=function(){function Token(attributes){null==attributes&&(attributes={}),angular.extend(this,attributes),delete this.new_token}return Token.prototype.pattern=TokenFormat.source,Token.prototype.toString=function(){return[this.key,this.op,this.value].join(" ")},Token}()}).factory("NewToken",function(Token,TokenFormat){var NewToken;return NewToken=function(_super){function NewToken(attributes){null==attributes&&(attributes={}),this.reset=__bind(this.reset,this),this.parse=__bind(this.parse,this),this.new_token=!0,NewToken.__super__.constructor.call(this,attributes)}return __extends(NewToken,_super),NewToken.prototype.parse=function(){var key,match,op,token,value,_,_ref;return(match=null!=(_ref=this.input)?_ref.match(TokenFormat):void 0)?(_=match[0],key=match[1],op=match[2],value=match[3],token=new Token({"key":key,"op":op,"value":value})):void console.warn(""+this.input+" does not match "+this.pattern)},NewToken.prototype.reset=function(){return this.input=null},NewToken}(Token)}).controller("TokenSuggestionsController",function($scope){return $scope.removeToken=function(token){return $scope.suggestions=_($scope.suggestions).without(token)},$scope.toggleToken=function(token){return token.active=!0,$scope.tokens.push(token),$scope.removeToken(token)}}).controller("TokenInputController",function($scope,NewToken,Token,flash){return $scope.tokens||($scope.tokens=[]),$scope.new_token=new NewToken,$scope.addToken=function(new_token){var token;return(token=new_token.parse())?($scope.tokens.push(token),token.active=!0,new_token.reset()):flash.warning=""+new_token.input+" is not valid filter syntax"},$scope.selectPrev=function(){var index;return index=null!=$scope.selected?$scope.selected:$scope.tokens.length,index=index>0?index-1:0,$scope.select(index)},$scope.selectNext=function(){var index;return index=$scope.selected,index=null!=index?index+1:$scope.tokens.length,$scope.select(index)},$scope.select=function(index){var max;return max=$scope.tokens.length,index=index>max?max:index,index=0>index?0:index,$scope.selected=index},$scope.removeToken=function(token){return $scope.tokens=_($scope.tokens).without(token)},$scope.toggleToken=function(token){return token.active=!token.active},$scope["delete"]=function(){var selected;return selected=$scope.tokens[$scope.selected],$scope.removeToken(selected),!!selected},$scope.edit=function(token){var index,previous;return previous=$scope.editing,index=$scope.tokens.indexOf(token),$scope.editing=null!=index&&token?{"index":index,"token":token,"value":token.toString()}:null},$scope.updateToken=function(token){var new_token,update;return new_token=new NewToken({"input":$scope.editing.value}),(update=new_token.parse())?(angular.extend(token,update),$scope.editing=null):void 0}}).directive("tokenInput",function(){return{"restrict":"E","replace":!0,"transclude":!0,"controller":"TokenInputController","scope":{"tokens":"=tokens"},"template":'',"link":function(scope){return scope}}}).directive("tokenSuggestions",function(TokenCollection){return{"restrict":"E","scope":{"tokens":"=tokens","suggestions":"=suggestions"},"controller":"TokenSuggestionsController","replace":!0,"transclude":!0,"template":'\n \n - \n We don\'t have any more filter suggestions.\n
\n
',"link":function(scope,element){return element.addClass("suggestions"),scope.$watch("suggestions",function(suggestions){var tokens;return tokens=new TokenCollection(scope.tokens),scope.unique_suggestions=_(suggestions).filter(function(suggestion){return!(suggestion.disabled=tokens.has(suggestion))})}),element.on("click",".show-mode",function(event){var token;return token=$(event.target).scope().$eval("token"),token.disabled?!1:scope.toggleToken(token)})}}}).directive("token",function(KEY_CODES,debug){return{"restrict":"E","replace":!0,"transclude":!0,"template":'\n \n \n \n \n \n {{ token.key }}\n {{ token.op }}\n {{ token.value }}\n \n \n\n \n \n \n',"link":function(scope,element){return element.on("keyup","input",function(event){switch(event.keyCode){case KEY_CODES.ENTER:debug(function(){return console.log("ENTER pressed, event: %O",event.keyCode,event)})}return!1})}}}).directive("size",function(){return{"restrict":"A","require":"ngModel","priority":1e3,"link":function(scope,element,attrs,ngModel){var $shadow,FREE_SPACE;return FREE_SPACE=16,element.is("input")&&"auto"===attrs.size?($shadow=angular.element("").css({"font":element.css("font"),"position":"absolute","visibility":"hidden","zIndex":-1,"whiteSpace":"pre"}),$shadow.insertAfter(element),scope.$on("$destroy",function(){return $shadow.remove()}),element.on("keyup focus focusin blur resize",function(){return $shadow.text(ngModel.$viewValue),element.width($shadow.width()+FREE_SPACE)})):void 0}}}).directive("newToken",function(KEY_CODES,debug){return{"restrict":"E","scope":!0,"replace":!0,"template":'\n \n',"link":function(scope,element){var $el,handleEmptyToken,handleToken;return $el=$(element),scope.token=scope.new_token,handleToken=function(code){switch(code){case KEY_CODES.ENTER:return scope.addToken(scope.token),element.children().children().css({"width":"auto"});default:return scope.select(null)}},handleEmptyToken=function(code){switch(code){case KEY_CODES.LEFT_ARROW:return scope.selectPrev();case KEY_CODES.RIGHT_ARROW:return scope.selectNext();case KEY_CODES.DELETE:return scope["delete"]();case KEY_CODES.BACKSPACE:if(scope["delete"]())return scope.selectPrev();break;case KEY_CODES.ENTER:return scope.$emit("search");default:return scope.select(null),debug(function(){return console.log("keycode",event.keyCode)})}},$el.on("focusin",function(){return scope.$apply(function(){return scope.edit(null)})}),$el.on("keydown",function(event){var code,length,_ref;switch(code=event.keyCode,length=(null!=(_ref=event.target.value)?_ref.length:void 0)>0,code){case KEY_CODES.ENTER:if(!(length>0))return!1}}),$el.on("keyup",function(event){var code;return code=event.keyCode,scope.$apply(function(){var _ref;return(null!=(_ref=event.target.value)?_ref.length:void 0)>0?handleToken(code):handleEmptyToken(code)})})}}})}.call(this),function(){angular.module("slug.filters",[]).filter("moment",function(){return function(time,format){return null==format&&(format="LLLL"),moment.utc(time).format(format)}}).filter("unix",function(){return function(input){return moment.unix(input).valueOf()}}).filter("truncate",function(){return function(input,length){return input?(input=String(input),!input||(null!=input?input.length:void 0)<=length?input:input.substring(0,length)+"..."):void 0}}).filter("ms",function(){return function(input){return input?""+Math.round(1e3*input)+" ms":"cached"}}).filter("status",function(){return function(input){switch(!1){case!(300>input&&input>=100):return"success";case!(400>input&&input>=300):return"redirect";case!(500>input&&input>=400):return"client-error";case!(600>input&&input>=500):return"server-error";default:return"unknown"}}})}.call(this),function(){angular.module("slug.analytics",["angulartics","angulartics.segment.io"]).factory("errorception",function($window){return function(error){var _ref,_ref1;return null!=(_ref=$window._errs)&&(_ref.allow||(_ref.allow=function(){return-1===$window.navigator.userAgent.indexOf("Conkeror")})),"localhost"!==$window.location.hostname&&null!=(_ref1=$window._errs)?_ref1.push(error):void 0}}).run(function($analytics,$rootScope,$location,$window){var host,service,user,_ref,_ref1;return $analytics.settings.pageTracking.autoTrackFirstPage=!1,$rootScope.$on("$stateChangeSuccess",function(){return $analytics.settings.pageTracking.autoTrackVirtualPages?$analytics.pageTrack($location.path()):void 0}),"localhost"===$location.host()?($analytics.pageTrack=function(page){return console.log("$analytics.pageTrack("+page+")")},$analytics.eventTrack=function(event,properties){return console.log("$analytics.eventTrack("+event+", "+properties+")")}):(_ref=$location.host().match(/^(\w+\-)?(\w+)/),host=_ref[0],service=_ref[1],user=_ref[2],null!=(_ref1=$window.analytics)?_ref1.identify(user,{"username":user}):void 0)}),angular.mock&&angular.module("ngMock").provider({"$analytics":{"$get":function(){return{"eventTrack":function(){},"pageTrack":function(){},"settings":{"pageTracking":{}}}}}})}.call(this),function(){angular.module("slug.documentation",["ngResource"]).directive("docsRef",function(Documentation){return{"scope":{"docsRef":"@"},"link":function(scope,element){return element.attr("href",Documentation[scope.docsRef])}}}).factory("Documentation",function(){var host;return host="http://docs.apitools.com",{"home":host+"/docs/","middlewares":host+"/docs/pipeline/","pipeline":host+"/docs/pipeline/","tour":host+"/docs/tour/","getting_started":host+"/docs/using-services/ ","notifications":host+"/docs/notifications/","active_docs":host+"/docs/active-docs/","analytics":host+"/docs/tour/#service-analytics","filters":host+"/docs/filters/","traces":host+"/docs/"}})}.call(this),function(){var RickshawHover;RickshawHover=Rickshaw.Class.create(Rickshaw.Graph.HoverDetail,{"render":function(args){var $element,$label,d,dot,graph,i,label_height,leftAlignError,line,points,rightAlignError,_i,_len;
+for($element=$(this.element),graph=this.graph,points=args.detail.sort(function(a,b){return a.order-b.order}),$label=$("",{"class":"super-label"}),i=_i=0,_len=points.length;_len>_i;i=++_i)d=points[i],d.formattedYValue&&$.isNumeric(d.value.y)&&(0===i&&$label.append($("",{"class":"title"}).html(d.formattedXValue)),line=$("").append($("",{"class":"swatch"}).css("background-color",d.series.color)).append($("").html(d.name+": ")).append($("",{"class":"value"}).html(d.formattedYValue)),$label.append(line),dot=$("",{"class":"dot active"}).css("border-color",d.series.color).css("top",graph.y(d.value.y0+d.value.y)+"px"),$element.append(dot));return $label.addClass("left"),$element.append($label),this.show(),leftAlignError=this._calcLayoutError([$label[0]]),leftAlignError>0&&($label.removeClass("left").addClass("right"),rightAlignError=this._calcLayoutError([$label[0]]),rightAlignError>leftAlignError&&$label.removeClass("right").addClass("left")),label_height=$label.height(),$label.css("top",Math.max(0,Math.min(args.mouseY-label_height/2,graph.height-label_height-20)))}}),angular.module("slug.stats",["slug.utils","ngResource","slug.utils"]).directive("rickshaw",function(RickshawSeries,$window,$compile,defer){return{"restrict":"A","template":"","link":function(scope,element,attrs){var dimensions,getAvailableDimensions,graph,graph_height,graph_width,hoverDetail,lastDimensions,oldDomain,parent,renderer,resize,series,strokeWidth,triggerUpdate,window,xAxis,yAxis;return series=[{"data":[{"x":0,"y":0}]}],parent=element.parent(),graph_height=attrs.rickshawHeight,graph_width=attrs.rickshawWidth,renderer=attrs.rickshawRenderer||"line",strokeWidth=attrs.rickshawStrokeWidth||1,graph=new Rickshaw.Graph({"height":graph_height,"width":graph_width,"renderer":renderer,"strokeWidth":strokeWidth,"element":element.find(".graph")[0],"interpolation":"linear","stroke":!0,"series":series,"min":0,"padding":{"top":.1,"bottom":.1}}),oldDomain=graph.renderer.domain,graph.renderer.domain=function(data){var domain;return domain=oldDomain.call(this,data),domain.y[0]===domain.y[1]&&(domain.y[1]+=12),domain},xAxis=new Rickshaw.Graph.Axis.Time({"graph":graph,"timeFixture":new Rickshaw.Fixtures.Time}),xAxis.render(),yAxis=new Rickshaw.Graph.Axis.Y({"graph":graph,"tickFormat":Rickshaw.Fixtures.Number.formatKMBT}),yAxis.render(),hoverDetail=new RickshawHover({"graph":graph,"xFormatter":function(x){return d3.time.format("%A, %b %e, %H:%M UTC")(new Date(1e3*x))}}),lastDimensions=null,dimensions=null,resize=function(){return lastDimensions=dimensions,dimensions=getAvailableDimensions(),angular.equals(dimensions,lastDimensions)?void 0:graph.configure({"height":dimensions.height,"width":dimensions.width})},getAvailableDimensions=function(){var newHeight,newWidth;return parent.children().hide(),newHeight=graph_height||parent.height()-(element.outerHeight(!0)-element.height()),newWidth=graph_width||parent.width()-(element.outerWidth(!0)-element.width()),parent.children().show(),{"height":newHeight,"width":newWidth}},graph.onUpdate(function(){return defer(function(){return resize()})}),graph.onConfigure(function(){return graph.update()}),triggerUpdate=_.debounce(function(){return graph.update()},50),window=angular.element($window),window.bind("resize",triggerUpdate),scope.$on("$destroy",function(){return window.unbind("resize",triggerUpdate)}),graph.render(),scope.$watch(attrs.rickshaw,function(analytics){var i,item,newSeries,_i,_len;if(newSeries=RickshawSeries(analytics,renderer,attrs.rickshawColor)){for(i=_i=0,_len=newSeries.length;_len>_i;i=++_i)item=newSeries[i],series[i]=item;for(;series.length>newSeries.length;)series.pop();return graph.update()}})}}}).directive("rickshawMaximizer",function($modal){return{"restrict":"A","template":"","link":function(scope,element){var graph;return graph=element.siblings("[rickshaw]"),element.on("click",function(){var modal;return modal=$modal.open({"templateUrl":"/stats/maximized.html","controller":"MaximizedStatsCtrl","scope":scope,"backdrop":"static","windowClass":"modal modal-full-graph modal-fill-flex modal-slug","resolve":{"analytics":function(){return graph.attr("rickshaw")},"color":function(){return graph.attr("rickshaw-color")},"renderer":function(){return graph.attr("rickshaw-renderer")||"line"},"strokeWidth":function(){return graph.attr("rickshaw-stroke-width")||1}}})})}}}).controller("MaximizedStatsCtrl",function($scope,$timeout,analytics,color,renderer,strokeWidth){return $scope.close=$scope.$close,$scope.color=color,$scope.renderer=renderer,$scope.strokeWidth=strokeWidth,$scope.$watch(analytics,function(analytics){return $scope.analytics=analytics})}).factory("RickshawSeries",function(RickshawColor){return function(analytics,renderer,color){var data,i,name,normalized_query,resolution,serie,serie_color,start,stroke_color,value,_i,_len,_ref,_ref1,_results;if(!analytics)return null;for(normalized_query=analytics.normalized_query,resolution=normalized_query.range.granularity,start=normalized_query.range.start,_ref=analytics.results,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)serie=_ref[_i],0===serie.data[serie.data.length-1]&&(serie.data[serie.data.length-1]=serie.data[serie.data.length-2]),data=function(){var _j,_len1,_ref1,_results1;for(_ref1=serie.data,_results1=[],i=_j=0,_len1=_ref1.length;_len1>_j;i=++_j)value=_ref1[i],_results1.push({"x":start+i*resolution,"y":value});return _results1}(),name=serie.metric,_ref1=RickshawColor(name,color,renderer),serie_color=_ref1[0],stroke_color=_ref1[1],_results.push({"color":serie_color,"stroke":stroke_color,"data":data,"name":name});return _results}}).factory("StringToColor",function(){return function(str){var color,hash,i,_i,_ref;for(hash=0,i=_i=0,_ref=str.length-1;_ref>=_i;i=_i+=1)hash=str.charCodeAt(i)+((hash<<3)-hash);return color=Math.abs(hash).toString(16).substring(0,6),"#"+"000000".substring(0,6-color.length)+color}}).factory("RickshawColor",function(StringToColor){return function(serie_name,color,renderer){var serie_color,stroke_color;return serie_color=color||StringToColor(serie_name),stroke_color=serie_color,"area"===renderer&&(serie_color=d3.interpolateRgb(serie_color,"white")(.7)),[serie_color,stroke_color]}}).factory("ServiceStats",function($resource,$state){return $resource("/api/services/:serviceId/stats/analytics",{"serviceId":function(){return $state.params.serviceId}})}).factory("Stats",function($resource){return $resource("/api/stats/analytics",{})}).factory("LoadChart",function($q,ServiceStats,jsonify){var group_by,query,range;return group_by=function(group){return[!!group.methods,!!group.paths,!!group.statuses,!!group.service]},range=function(query){var rng;return rng=query.range,rng=angular.copy(rng[rng.type]),angular.extend(rng,{"granularity":query.range.granularity})},query=function(query){var enabled,methods,metric,metrics,name,names,pluck,projections;return pluck=function(array){return _.isArray(array)?_(array).pluck("value"):array||[]},methods=query.methods?_(query.methods).keys():[],0===methods.length&&(methods="*"),metrics=[query.paths],"status"===query.metric&&metrics.push(query.statuses),metrics=function(){var _i,_len,_results;for(_results=[],_i=0,_len=metrics.length;_len>_i;_i++)metric=metrics[_i],names=pluck(metric),_.isArray(names)&&0===names.length&&(names="*"),_results.push(names);return _results}(),metrics.unshift(methods),projections=function(){var _ref,_results;_ref=query.projections,_results=[];for(name in _ref)enabled=_ref[name],_results.push(enabled?name:void 0);return _results}(),{"query":jsonify({"metrics":metrics,"projections":_.filter(projections,_.identity),"range":range(query),"metric":query.metric,"group_by":group_by(query.group_by||{})})}},function(chart,resource){var deferred,promise,stats;return null==resource&&(resource=ServiceStats),deferred=$q.defer(),promise=deferred.promise,chart?(stats=query(chart.query),resource.get(stats).$promise):(deferred.reject("Missing chart"),promise)}})}.call(this),function(){angular.module("slug.user_settings",["ngResource"]).factory("UserSettings",function(StoredUserSettings,$q){var cache,deferred,reject,resolve,saveCache,settings;return deferred=$q.defer(),resolve=function(){return deferred.resolve(settings)},reject=function(reason){return deferred.reject(reason)},cache=StoredUserSettings.get(resolve,reject),saveCache=function(){return deferred=$q.defer(),settings.$promise=deferred.promise,cache.$save(resolve,reject)},settings={"$promise":deferred.promise,"get":function(property,callback){return callback?cache.$promise.then(function(cache){return callback(cache[property])}):cache[property]},"extend":function(object){return angular.extend(cache,object),saveCache()},"set":function(property,value){return cache[property]=value,saveCache()},"raw":cache,"reset_settings":function(){return deferred=$q.defer(),settings.$promise=deferred.promise,cache.$delete(function(){return cache=StoredUserSettings.get(reject,resolve)})}}}).factory("StoredUserSettings",function($resource){return $resource("/api/config")})}.call(this),function(){var __slice=[].slice;angular.module("slug.utils",[]).factory("deepMerge",function(){return function(){var objects;return objects=1<=arguments.length?__slice.call(arguments,0):[],$.extend.apply($,[!0].concat(__slice.call(objects)))}}).factory("debugMode",function($location){return function(){return"debug"===$location.hash()}}).factory("debug",function(debugMode){return function(statement){return debugMode()?statement():void 0}}).factory("JSON",function($window){return $window.JSON}).factory("jsonify",function(JSON){return JSON.stringify}).factory("$loop",function($timeout){return function($scope,fn,interval){var $loop;return null==interval&&(interval=1e3),$loop={"interval":interval,"run":function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],fn.apply(null,[$loop].concat(__slice.call(args)))},"schedule":function(wait){return null==wait&&(wait=$loop.interval),$loop.last_timeout=$timeout($loop.run,wait)},"listen":function($scope){return $scope.$on("$destroy",$loop.destroy)},"destroy":function(){return $timeout.cancel($loop.last_timeout)}},$loop.listen($scope),$loop.run(),$loop}})}.call(this),function(){angular.module("slug.services",["ngResource","slug.github","slug.search"]).factory("Middleware",function($resource){return $resource("/api/middlewares/:uuid",{"uuid":"@uuid"})}).factory("toArray",function(){return function(object){return _.isArray(object)?object:[object]}}).factory("uuid",function(){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r,v;return r=16*Math.random()|0,v="x"===c?r:3&r|8,v.toString(16)})}})}.call(this),function(){angular.module("slug.services.brain",[]).factory("Brain",function($http){var brain;return brain={"$promise":$http({"method":"GET","url":"/api/brain"})},brain.$promise.success(function(data){return brain.host=data.host}),brain}).factory("OnPremise",function($http){return{"register":function(uuid){return $http.post("/api/brain/register",{"uuid":uuid})},"link":function(key){return $http.post("/api/brain/link",{"key":key})},"unlink":function(){return $http.post("/api/brain/unlink",{})}}})}.call(this),function(){angular.module("slug.services.filters",["ngResource"]).factory("TracesFilter",function($resource){return $resource("/api/filters/traces/:id",{"id":"@_id"})}).factory("AnalyticsFilter",function($resource){var AnalyticsFilter;return AnalyticsFilter=$resource("/api/filters/analytics/:id",{"id":"@_id"}),angular.extend(AnalyticsFilter.prototype,{"query":function(){var metrics,projections,query;return projections=this.projections.map(function(p){return p.name}),metrics=[this.methods,this.paths,this.metrics].map(function(m){var values;switch(values=m.map(function(v){return v.name}),values.length){case 0:return"*";case 1:return values[0];default:return values}}),query={"range":this.range,"metrics":metrics,"projections":projections},JSON.stringify(query)}}),AnalyticsFilter})}.call(this),function(){var GitHub,GitHubIntegration,GitHubMessages,TokenHandler,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};TokenHandler=function(){function TokenHandler(){this.params=__bind(this.params,this),this.get=__bind(this.get,this),this.set=__bind(this.set,this),this.token=null}return TokenHandler.prototype.set=function(token){return this.token=token},TokenHandler.prototype.get=function(){return this.token},TokenHandler.prototype.params=function(params){return angular.extend({"access_token":this.get},params||{})},TokenHandler}(),GitHubIntegration=function(){function GitHubIntegration(protocol,host){this.redirect_uri="http://localhost:8089/auth/"+protocol+"/"+host,this.client_id="75a7ae9e68e3fd530b9a",this.url="https://github.com/login/oauth/authorize? client_id="+this.client_id+"&redirect_uri="+this.redirect_uri}return GitHubIntegration}(),GitHub=function(){function GitHub(){}return GitHub.prototype.repoSuggestion=function(spec){var param;return param=spec.name.replace(/[^\w]+|[\s]+/g,"-"),param.toLowerCase()},GitHub}(),GitHubMessages=function(){function GitHubMessages(spec,github){this.github=github,this.spec=angular.copy(spec),this.code=this.spec.code,this.spec.code=this.github.repo+".lua",this.should={},this.messages=[]}return GitHubMessages.prototype.reset=function(){return this.should={},this.messages=[]},GitHubMessages.prototype.isValid=function(){return _(this.messages).all(function(msg){return msg.confirm?msg.confirmed:!0})},GitHubMessages.prototype.highlight=function(message){var code,needle,owner,repo,strong;return strong=function(str){return""+str+""},needle=/{{\s*([^\}\s]+)\s*}}/g,owner=this.github.owner,repo=this.github.repo,code=this.spec.code,message.replace(needle,function(match,key){switch(key){case"owner/repo":return strong(""+owner+"/"+repo);case"visibility":return strong("public");case"spec":return strong("brainslug.json");case"code":return strong(code);default:throw Error("Unknown key: "+key)}})},GitHubMessages.prototype.add=function(msg,options){var message;return null==options&&(options={}),message=angular.copy(options),message.text=this.highlight(msg),this.messages.push(message)},GitHubMessages.prototype.repo_exists=function(){return this.add("I'm aware that {{owner/repo}} already exists as {{visibility}} repository",{"level":"warning","confirm":!0})},GitHubMessages.prototype.repo_missing=function(){return this.add("{{visibility}} repository {{owner/repo}} will be created",{"level":"notify"})},GitHubMessages.prototype.push_spec=function(){return this.add("We will push {{spec}} middleware specification",{"level":"info"})},GitHubMessages.prototype.push_code=function(){return this.add("We will push {{code}} middleware code",{"level":"info"})},GitHubMessages.prototype.override_spec=function(){return this.add("I'm aware that {{owner/repo}} already contains different middleware spec",{"level":"error","confirm":!0})},GitHubMessages.prototype.override_code=function(){return this.add("I'm aware that {{owner/repo}} already contains different middleware code",{"level":"warning","confirm":!0})},GitHubMessages}(),angular.module("slug.github",["ngResource"]).factory("GitHub",function(GitHubToken,GitHubIntegration){var gh;return gh=new GitHub,gh.token=GitHubToken,gh.integration=GitHubIntegration,gh}).factory("GitHubToken",function(){return new TokenHandler}).factory("GitHubMessages",function(){return GitHubMessages}).factory("GitHubIntegration",function($location){return new GitHubIntegration($location.protocol(),window.location.host)}).factory("GitHubSpec",function($resource,GitHubToken){return $resource("/api/test/test",GitHubToken.params())}).factory("GitHubFile",function($resource,GitHubToken){return $resource("https://api.github.com/repos/:owner/:repo/contents/:path",GitHubToken.params(),{"save":{"method":"PUT"}})}).factory("GitHubRepo",function($resource,GitHubToken){return $resource("https://api.github.com/:scope/:owner/:repo",GitHubToken.params({"scope":"repos"}),{"create":{"method":"POST","params":{"scope":"user","owner":"repos"}}})}).factory("GitHubSearchCode",function($resource,GitHubToken){return $resource("https://api.github.com/search/code",GitHubToken.params(),{"get":{"method":"GET","headers":{"Accept":"application/vnd.github.preview"}}})}).factory("GitHubValidator",function($q,GitHubFile,GitHubRepo){return function(messages){var code_exists,code_missing,d,defer_code,defer_repo,defer_spec,defers,github,params,repo_exists,repo_missing,spec,spec_exists,spec_missing,_;return defers=function(){var _i,_results;for(_results=[],_=_i=1;3>=_i;_=++_i)_results.push($q.defer());return _results}(),defer_repo=defers[0],defer_spec=defers[1],defer_code=defers[2],spec=messages.spec,github=messages.github,params=function(params){var gh;return null==params&&(params={}),gh={"owner":github.owner,"repo":github.repo},angular.extend(params,gh)},code_exists=function(c){return messages.override_code(c),messages.should.update_code=c,defer_code.resolve("code exists")},code_missing=function(){return messages.push_code(),defer_code.resolve("code missing")},spec_exists=function(s){return messages.override_spec(s),messages.should.update_spec=s,defer_spec.resolve("spec exists"),GitHubFile.get(params({"path":spec.code}),code_exists,code_missing)},spec_missing=function(){return messages.push_spec(),defer_spec.resolve("spec missing"),GitHubFile.get(params({"path":spec.code}),code_exists,code_missing)},repo_exists=function(){return messages.repo_exists(),defer_repo.resolve("repo exists"),GitHubFile.get(params({"path":"brainslug.json"}),spec_exists,spec_missing)},repo_missing=function(){var d,_i,_len,_results;for(messages.should.create_repo=!0,messages.repo_missing(),messages.push_spec(),messages.push_code(),_results=[],_i=0,_len=defers.length;_len>_i;_i++)d=defers[_i],_results.push(d.resolve("repo missing"));return _results},GitHubRepo.get(github,repo_exists,repo_missing),$q.all(function(){var _i,_len,_results;for(_results=[],_i=0,_len=defers.length;_len>_i;_i++)d=defers[_i],_results.push(d.promise);return _results}())}}).factory("GitHubIntegrator",function($q,GitHubFile,GitHubRepo){return function(messages){var code,code_failed,code_updated,create_code,create_spec,d,defer_code,defer_repo,defer_spec,defers,do_code,do_spec,encode,github,params,repo_created,repo_failed,should,spec,spec_failed,spec_updated,update_code,update_spec,_;return should=messages.should,spec=messages.spec,code=messages.code,console.log(should),github={"owner":messages.github.owner,"repo":messages.github.repo},defers=function(){var _i,_results;for(_results=[],_=_i=1;3>=_i;_=++_i)_results.push($q.defer());return _results}(),defer_repo=defers[0],defer_spec=defers[1],defer_code=defers[2],params=function(params){return angular.extend(params,github)},messages.reset(),do_spec=function(){var previous;return(previous=should.update_spec)?update_spec(previous):create_spec()},do_code=function(){var previous;return(previous=should.update_code)?update_code(previous):create_code()},encode=function(object){return Base64.encode(angular.toJson(object,!0))},spec_updated=function(){return console.log("spec updated"),defer_spec.resolve("spec updated"),do_code()},code_updated=function(){return console.log("code updated"),defer_code.resolve("code updated")},repo_created=function(){return console.log("repo created"),defer_repo.resolve("repo created"),do_spec()},repo_failed=function(){return console.log("repo failed"),defer_repo.reject("repo failed")},code_failed=function(){return console.log("code failed"),defer_code.reject("code failed")},spec_failed=function(){return console.log("spec failed"),defer_spec.reject("spec failed")},create_spec=function(){return GitHubFile.save(params({"path":"brainslug.json"}),{"message":"Create middleware spec","content":encode(spec)},spec_updated,spec_failed)},update_spec=function(previous){return GitHubFile.save(params({"path":"brainslug.json"}),{"sha":previous.sha,"message":"Update middleware spec","content":encode(spec)},spec_updated,spec_failed)},create_code=function(){return GitHubFile.save(params({"path":spec.code}),{"message":"Create middleware code","content":encode(code)},code_updated,code_failed)},update_code=function(previous){return GitHubFile.save(params({"path":spec.code}),{"sha":previous.sha,"message":"Update middleware code","content":encode(code)},code_updated,code_failed)},should.create_repo?GitHubRepo.create({"name":github.repo,"auto_init":!0},repo_created,repo_failed):(defer_repo.resolve("repo already exists"),do_spec()),$q.all(function(){var _i,_len,_results;for(_results=[],_i=0,_len=defers.length;_len>_i;_i++)d=defers[_i],_results.push(d.promise);return _results}())}})}.call(this),function(){angular.module("slug.services.pretty_print",[]).factory("prettyPrintJson",function(){return function(string){var json;return json=angular.fromJson(string),angular.toJson(json,!0)}}).factory("prettyPrint",function(prettyPrintJson){var extractContentType;return extractContentType=function(contentType){return contentType.split(";")[0]},function(contentType,code){switch(contentType&&extractContentType(contentType)){case"application/json":return prettyPrintJson(code);default:return code}}})}.call(this),function(){var HeuristicsOperator,NumericOperator,Operator,SetOperator,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__slice=[].slice;Operator=function(){function Operator(key){this.key=key}return Operator.prototype.valueOf=function(){return this.key},Operator.prototype.convert=function(value){return value},Operator.prototype.toJSON=function(){return this.valueOf()},Operator.prototype.toString=function(){return this.valueOf()},Operator}(),NumericOperator=function(_super){function NumericOperator(){return NumericOperator.__super__.constructor.apply(this,arguments)}return __extends(NumericOperator,_super),NumericOperator.prototype.convert=function(value){return parseFloat(value,10)},NumericOperator}(Operator),SetOperator=function(_super){function SetOperator(){return SetOperator.__super__.constructor.apply(this,arguments)}return __extends(SetOperator,_super),SetOperator.prototype.convert=function(value,original){var part,_i,_len,_ref;for(null==original&&(original=[]),_ref=value.split(/,\s*/),_i=0,_len=_ref.length;_len>_i;_i++)part=_ref[_i],original.push(part);return original},SetOperator}(Operator),HeuristicsOperator=function(){function HeuristicsOperator(){this.number=new NumericOperator}return HeuristicsOperator.prototype.convert=function(value){var numeric;return numeric=this.number.convert(value),numeric.toString()===value?numeric:value},HeuristicsOperator}(),angular.module("slug.search",["slug.directives.token_input","slug.directives.search","slug.utils"]).factory("FilterBar",function(Token){var FilterBar;return FilterBar=function(){function FilterBar(){this.type="basic",this.tokens=[]}var DOT;return DOT=/\./,FilterBar.prototype.use=function(filter){var token,_i,_len,_ref,_results;for(this.reset(),_ref=filter.tokens,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)token=_ref[_i],_results.push(this.tokens.push(new Token(token)));return _results},FilterBar.prototype.operator=function(token){var op;switch(token.op){case"=":case"==":return null}return(op=function(){switch(token.op){case">":return"$gt";case">=":return"$gte";case"<":return"$lt";case"<=":return"$lte"}}())?new NumericOperator(op):(op||(op=function(){switch(token.op){case"@":return"$in";case"|":return"$all"}}()),op?new SetOperator(op):op)},FilterBar.prototype.reset=function(){return this.tokens.splice(0,this.tokens.length)},FilterBar.prototype.query=function(){var groups,heuristics,leafs,op,part,partial,partial_path,parts,path,paths,prev,query,root,token,tokens,_i,_j,_k,_len,_len1,_len2;for(query={},tokens=_(this.tokens).filter(function(t){return t.active}),groups=_(tokens).groupBy(function(t){return t.key}),paths=_(groups).keys().sort(),heuristics=new HeuristicsOperator,_i=0,_len=paths.length;_len>_i;_i++)for(path=paths[_i],parts=path.split(DOT),root=query,partial_path=[],_j=0,_len1=parts.length;_len1>_j;_j++)if(part=parts[_j],partial_path.push(part),partial=partial_path.join("."),prev=root,root=root[part]||(root[part]={}),leafs=groups[partial])for(_k=0,_len2=leafs.length;_len2>_k;_k++)token=leafs[_k],(op=this.operator(token))?root[op]=op.convert(token.value,root[op]):prev[part]=heuristics.convert(token.value);return query},FilterBar}()}).factory("TokenHeuristics",function(Token){var TokenHeuristics;return TokenHeuristics=function(){function TokenHeuristics(collection){this.collection=collection}return TokenHeuristics.prototype.singular=function(){var properties;return properties=1<=arguments.length?__slice.call(arguments,0):[],this._singular=properties},TokenHeuristics.prototype.singularProperties=function(){var conditions,key,path,piece,resource,value,_i,_j,_len,_len1,_ref;for(resource=_.isArray(this.collection)?this.collection[0]:this.collection,conditions=[],_ref=this._singular,_i=0,_len=_ref.length;_len>_i;_i++){for(key=_ref[_i],path=key.split("."),value=resource,_j=0,_len1=path.length;_len1>_j;_j++)piece=path[_j],value=null!=value?value[piece]:void 0;value&&conditions.push({"key":key,"op":"=","value":value})}return conditions},TokenHeuristics.prototype.collectionProperties=function(){var all,common_keys,key,keys,match,object_keys,primitive_keys,reference,resource,values,_i,_len,_ref,_results;for(all=_.chain(this.collection),keys=function(){var _i,_len,_ref,_results;for(_ref=this.collection,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)resource=_ref[_i],_results.push(_.keys(resource));return _results}.call(this),common_keys=_.intersection.apply(_,keys),common_keys=_(common_keys).filter(function(key){return!key.match(/^(\$|_)/)}),object_keys=_(common_keys).filter(function(key){return all.pluck(key).all(_.isObject).value()}),primitive_keys=(_ref=_(common_keys)).without.apply(_ref,object_keys),_results=[],_i=0,_len=primitive_keys.length;_len>_i;_i++)key=primitive_keys[_i],values=all.pluck(key).value(),reference=_.first(values),match=_(values).all(function(value){return value===reference}),_results.push(reference&&match?{"key":key,"op":"=","value":reference}:void 0);return _results},TokenHeuristics.prototype.suggestions=function(){var token,_i,_len,_ref,_results;for(_ref=this.compare(),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)token=_ref[_i],_.isEmpty(token)||(token.suggestion=!0,_results.push(new Token(token)));return _results},TokenHeuristics.prototype.compare=function(){return!_.isArray(this.collection)||this.collection.length<=1?this.singularProperties():this.collectionProperties()},TokenHeuristics}()}).factory("Search",function(FilterBar,$timeout,animationFrame,jsonify){var Search;return Search=function(){function Search(resource,scope){this.resource=resource,this.tokens=__bind(this.tokens,this),this.ticker=__bind(this.ticker,this),this.stop_refresh=__bind(this.stop_refresh,this),this.append=__bind(this.append,this),this.prepend=__bind(this.prepend,this),this.replace=__bind(this.replace,this),this.last_id=__bind(this.last_id,this),this["do"]=__bind(this["do"],this),this.last_updated=__bind(this.last_updated,this),this.infinite=__bind(this.infinite,this),this.filter=new FilterBar,null!=scope&&scope.$on("search",this["do"]),null!=scope&&scope.$on("$destroy",this.stop_refresh),this.reversed=!0,this["do"]()}var CHECK_FOR_NEW_MS;return CHECK_FOR_NEW_MS=1e3,Search.prototype.infinite=function(){return!this.loading&&this.results.length_i;_i++)result=results[_i],_results.push(this.results.unshift(result));return _results},Search.prototype.append=function(results){var result,_i,_len,_results;for(_results=[],_i=0,_len=results.length;_len>_i;_i++)result=results[_i],_results.push(this.results.push(result));return _results},Search.prototype.stop_refresh=function(){return"function"==typeof this.stop_tick&&this.stop_tick(),$timeout.cancel(this.last_timer)},Search.prototype.ticker=function(params){var enabled,tick;return enabled=!0,tick=function(_this){return function(){return params.last_id=_this.last_id("max"),_this.resource.count(params,function(count){return _this.has_more=count.document_count,enabled?animationFrame.withFallback(function(){return _this.last_timer=$timeout(tick,CHECK_FOR_NEW_MS)}):void 0})}}(this),this.reversed&&tick(),function(){return enabled=!1}},Search.prototype.tokens=function(){return this.filter.tokens},Search.prototype.remove=function(results){var original,removed,_ref;return results=_.isArray(results)?results:[results],original=this.results.length,this.results=(_ref=_(this.results)).without.apply(_ref,results),removed=original-this.results.length,this.count-=removed},Search.prototype.use=function(filter){return this.stop_refresh(),this.filter.use(filter),this.using_filter=filter,this["do"]()},Search.prototype.clear=function(){return this.stop_refresh(),this.filter.reset(),this.using_filter=null,this["do"]()},Search}()})}.call(this);
diff --git a/app/assets/v2.css b/app/assets/v2.css
index 4e3289a..4a58a46 100644
--- a/app/assets/v2.css
+++ b/app/assets/v2.css
@@ -1 +1 @@
-*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#content{margin-top:1em}.modal-slug{position:absolute}.inline-title{display:inline-block;padding-right:0.25em}.modal-dialog,.modal-content{height:100%}.modal{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.modal-fill-flex{height:100%;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.modal-fill-flex .modal-body{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;-webkit-flex:2;-moz-flex:2;-ms-flex:2;flex:2;max-height:initial;margin:0}.modal-tall{top:1em !important;bottom:1em !important}.modal-full{left:1em !important;right:1em !important;top:1em !important;bottom:1em !important;width:auto;height:auto;margin:0}.log-console{border-radius:0.25em}.is-log-open{border:1px solid gray}.is-log-open.collapse{min-height:10em !important}.logs.is-empty{min-height:3em !important}.logs{height:10em;overflow-y:auto}.log-log pre{padding:2px 0.5em;margin:1px}.logs .log-empty{padding:0.7em}.code-wrap{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row}.code{width:70%;overflow:auto}.docs{width:30.0%;overflow:auto}.code .CodeMirror{height:auto;max-height:100%}.code-wrap{overflow:auto;margin-bottom:1em}.middleware-edit .modal-content{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .modal-body{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable .tab-content{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1;overflow:auto;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex}.middleware-edit .tabbable .tab-pane{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-metadata{min-height:2em}input,.search-tokens .token,.dashboard-box{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.control-box.btn-toolbar{clear:both}
+*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#content{margin-top:1em}.modal-slug{position:absolute}.modal-dialog,.modal-content{height:100%}.modal{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.modal-fill-flex{height:100%;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.modal-fill-flex .modal-body{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;-webkit-flex:2;-moz-flex:2;-ms-flex:2;flex:2;max-height:initial;margin:0}.modal-tall{top:1em !important;bottom:1em !important}.modal-full,.modal-full-graph{left:1em !important;right:1em !important;top:1em !important;bottom:1em !important;width:auto;height:auto;margin:0}.modal-full-graph{position:fixed}.modal-full-graph .modal-body{height:100%}.log-console{border-radius:0.25em}.is-log-open{border:1px solid gray}.is-log-open.collapse{min-height:10em !important;max-height:16em !important}.logs.is-empty{min-height:3em !important}.logs{height:10em;overflow-y:auto}.log-log pre{padding:2px 0.5em;margin:1px}.logs .log-empty{padding:0.7em}.code-wrap{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;margin-top:1em}.code{width:70%;overflow:auto}.docs{width:30.0%;overflow:auto}.code .CodeMirror{height:auto;max-height:100%}.code-wrap{overflow:auto;margin-bottom:1em}.middleware-edit .modal-content{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .modal-body{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable .tab-content{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1;overflow:auto;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex}.middleware-edit .tabbable .tab-pane{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit-title{display:inline-block}.middleware-metadata{min-height:3em}.middleware-edit-description{display:inline-block;max-width:98%;max-height:3em;overflow:auto}.middleware-edit-description.is-input{width:98%}.middleware-edit-action{display:inline-block;vertical-align:top}input,.search-tokens .token,.dashboard-box{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.control-box.btn-toolbar{clear:both}
diff --git a/app/assets/v2/modal.css b/app/assets/v2/modal.css
index c3c6548..f8977a0 100644
--- a/app/assets/v2/modal.css
+++ b/app/assets/v2/modal.css
@@ -1 +1 @@
-.modal-slug{position:absolute}.inline-title{display:inline-block;padding-right:0.25em}.modal-dialog,.modal-content{height:100%}.modal{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.modal-fill-flex{height:100%;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.modal-fill-flex .modal-body{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;-webkit-flex:2;-moz-flex:2;-ms-flex:2;flex:2;max-height:initial;margin:0}.modal-tall{top:1em !important;bottom:1em !important}.modal-full{left:1em !important;right:1em !important;top:1em !important;bottom:1em !important;width:auto;height:auto;margin:0}.log-console{border-radius:0.25em}.is-log-open{border:1px solid gray}.is-log-open.collapse{min-height:10em !important}.logs.is-empty{min-height:3em !important}.logs{height:10em;overflow-y:auto}.log-log pre{padding:2px 0.5em;margin:1px}.logs .log-empty{padding:0.7em}.code-wrap{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row}.code{width:70%;overflow:auto}.docs{width:30.0%;overflow:auto}.code .CodeMirror{height:auto;max-height:100%}.code-wrap{overflow:auto;margin-bottom:1em}.middleware-edit .modal-content{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .modal-body{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable .tab-content{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1;overflow:auto;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex}.middleware-edit .tabbable .tab-pane{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-metadata{min-height:2em}
+.modal-slug{position:absolute}.modal-dialog,.modal-content{height:100%}.modal{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.modal-fill-flex{height:100%;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.modal-fill-flex .modal-body{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;-webkit-flex:2;-moz-flex:2;-ms-flex:2;flex:2;max-height:initial;margin:0}.modal-tall{top:1em !important;bottom:1em !important}.modal-full,.modal-full-graph{left:1em !important;right:1em !important;top:1em !important;bottom:1em !important;width:auto;height:auto;margin:0}.modal-full-graph{position:fixed}.modal-full-graph .modal-body{height:100%}.log-console{border-radius:0.25em}.is-log-open{border:1px solid gray}.is-log-open.collapse{min-height:10em !important;max-height:16em !important}.logs.is-empty{min-height:3em !important}.logs{height:10em;overflow-y:auto}.log-log pre{padding:2px 0.5em;margin:1px}.logs .log-empty{padding:0.7em}.code-wrap{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;flex-direction:row;-ms-flex-direction:row;margin-top:1em}.code{width:70%;overflow:auto}.docs{width:30.0%;overflow:auto}.code .CodeMirror{height:auto;max-height:100%}.code-wrap{overflow:auto;margin-bottom:1em}.middleware-edit .modal-content{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .modal-body{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit .tabbable .tab-content{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1;overflow:auto;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex}.middleware-edit .tabbable .tab-pane{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;flex-direction:column;-ms-flex-direction:column}.middleware-edit-title{display:inline-block}.middleware-metadata{min-height:3em}.middleware-edit-description{display:inline-block;max-width:98%;max-height:3em;overflow:auto}.middleware-edit-description.is-input{width:98%}.middleware-edit-action{display:inline-block;vertical-align:top}
diff --git a/app/dashboard/show.html b/app/dashboard/show.html
index f40ec8f..82ece95 100644
--- a/app/dashboard/show.html
+++ b/app/dashboard/show.html
@@ -47,14 +47,18 @@
-
+ id="dashboard-{{ selected_dashboard }}">
+