From 66a84dadfc621a89b797f6fb9ce17810d33a2e4d Mon Sep 17 00:00:00 2001 From: Jerome Velociter Date: Mon, 21 Nov 2011 20:28:49 +0100 Subject: [PATCH] Renamed the skin to Lyrebird --- pom.xml | 8 +- src/main/resources/Bootstrap/Skin.xml | 3270 -------------- src/main/resources/Lyrebird/Skin.xml | 5261 +++++++++++++++++++++++ src/main/resources/Lyrebird/WebHome.xml | 25 + src/main/resources/XWiki/XWikiSkins.xml | 66 +- 5 files changed, 5352 insertions(+), 3278 deletions(-) delete mode 100644 src/main/resources/Bootstrap/Skin.xml create mode 100644 src/main/resources/Lyrebird/Skin.xml create mode 100644 src/main/resources/Lyrebird/WebHome.xml diff --git a/pom.xml b/pom.xml index 40c92fc..13f3d0a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,13 +1,11 @@ 4.0.0 - org.xwiki.contrib xwiki-skin-bootstrap XWiki Contrib - Skin - Bootstrap diff --git a/src/main/resources/Bootstrap/Skin.xml b/src/main/resources/Bootstrap/Skin.xml deleted file mode 100644 index 8140bb5..0000000 --- a/src/main/resources/Bootstrap/Skin.xml +++ /dev/null @@ -1,3270 +0,0 @@ - - -Bootstrap -Skin - - -0 -XWiki.XWikiPreferences -XWiki.Admin -XWiki.Admin - -XWiki.Admin -1167576476000 -1321878460000 -1321878460000 -2.30 - - - - -Copied from xwiki:XWiki.DefaultSkin -false -xwiki/2.1 -false - - -XWiki.XWikiSkins - - - - - - - - - -0 -baseskin -2 -0 -Base Skin -30 -0 - - -com.xpn.xwiki.objects.classes.StringClass - - - -0 ---- -bootstrap.css -12 -0 -bootstrap.css -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -PureText -edit.vm -9 -0 -Edit -15 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 ---- -endpage.vm -14 -0 -endpage.vm -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -PureText -footer.vm -6 -0 -Footer -15 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -PureText -header.vm -5 -0 -Header -15 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 ---- -hierarchy.vm -16 -0 -hierarchy.vm -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -logo -3 -0 -Logo -30 -0 - - -com.xpn.xwiki.objects.classes.StringClass - - - -0 -name -1 -0 -Name -30 -0 - - -com.xpn.xwiki.objects.classes.StringClass - - - -0 ---- -sidebar.vm -13 -0 -sidebar.vm -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 ---- -startpage.vm -10 -0 -startpage.vm -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -PureText -style.css -4 -0 -Style -15 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 ---- -topbar.vm -11 -0 -topbar.vm -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -PureText -view.vm -8 -0 -View -15 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 -PureText -viewheader.vm -7 -0 -View Header -15 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - - -0 ---- -xwiki.css -15 -0 -xwiki.css -20 -80 -0 - - -com.xpn.xwiki.objects.classes.TextAreaClass - - -Bootstrap.Skin -0 -XWiki.XWikiSkins -200c60f1-b883-4db8-9262-cdfc141d7653 - -colibri - - -/*! - * Bootstrap v1.4.0 - * - * Copyright 2011 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - * Date: Wed Nov 16 00:28:10 PST 2011 - */ -/* Reset.less - * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc). - * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ -html, body { - margin: 0; - padding: 0; -} -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -cite, -code, -del, -dfn, -em, -img, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -dd, -dl, -dt, -li, -ol, -ul, -fieldset, -form, -label, -legend, -button, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td { - margin: 0; - padding: 0; - border: 0; - font-weight: normal; - font-style: normal; - font-size: 100%; - line-height: 1; - font-family: inherit; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -ol, ul { - list-style: none; -} -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; -} -html { - overflow-y: scroll; - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -a:focus { - outline: thin dotted; -} -a:hover, a:active { - outline: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} -audio, canvas, video { - display: inline-block; - *display: inline; - *zoom: 1; -} -audio:not([controls]) { - display: none; -} -sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; - -ms-interpolation-mode: bicubic; -} -button, -input, -select, -textarea { - font-size: 100%; - margin: 0; - vertical-align: baseline; - *vertical-align: middle; -} -button, input { - line-height: normal; - *overflow: visible; -} -button::-moz-focus-inner, input::-moz-focus-inner { - border: 0; - padding: 0; -} -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} -input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -textarea { - overflow: auto; - vertical-align: top; -} -/* Variables.less - * Variables to customize the look and feel of Bootstrap - * ----------------------------------------------------- */ -/* Mixins.less - * Snippets of reusable CSS to develop faster and keep code readable - * ----------------------------------------------------------------- */ -/* - * Scaffolding - * Basic and global styles for generating a grid system, structural layout, and page templates - * ------------------------------------------------------------------------------------------- */ -body { - background-color: #ffffff; - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 18px; - color: #404040; -} -.container { - width: 940px; - margin-left: auto; - margin-right: auto; - zoom: 1; -} -.container:before, .container:after { - display: table; - content: ""; - zoom: 1; -} -.container:after { - clear: both; -} -.container-fluid { - position: relative; - min-width: 940px; - padding-left: 20px; - padding-right: 20px; - zoom: 1; -} -.container-fluid:before, .container-fluid:after { - display: table; - content: ""; - zoom: 1; -} -.container-fluid:after { - clear: both; -} -.container-fluid > .sidebar { - position: absolute; - top: 0; - left: 20px; - width: 220px; -} -.container-fluid > .content { - margin-left: 240px; -} -a { - color: #0069d6; - text-decoration: none; - line-height: inherit; - font-weight: inherit; -} -a:hover { - color: #00438a; - text-decoration: underline; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.hide { - display: none; -} -.show { - display: block; -} -.row { - zoom: 1; - margin-left: -20px; -} -.row:before, .row:after { - display: table; - content: ""; - zoom: 1; -} -.row:after { - clear: both; -} -.row > [class*="span"] { - display: inline; - float: left; - margin-left: 20px; -} -.span1 { - width: 40px; -} -.span2 { - width: 100px; -} -.span3 { - width: 160px; -} -.span4 { - width: 220px; -} -.span5 { - width: 280px; -} -.span6 { - width: 340px; -} -.span7 { - width: 400px; -} -.span8 { - width: 460px; -} -.span9 { - width: 520px; -} -.span10 { - width: 580px; -} -.span11 { - width: 640px; -} -.span12 { - width: 700px; -} -.span13 { - width: 760px; -} -.span14 { - width: 820px; -} -.span15 { - width: 880px; -} -.span16 { - width: 940px; -} -.span17 { - width: 1000px; -} -.span18 { - width: 1060px; -} -.span19 { - width: 1120px; -} -.span20 { - width: 1180px; -} -.span21 { - width: 1240px; -} -.span22 { - width: 1300px; -} -.span23 { - width: 1360px; -} -.span24 { - width: 1420px; -} -.row > .offset1 { - margin-left: 80px; -} -.row > .offset2 { - margin-left: 140px; -} -.row > .offset3 { - margin-left: 200px; -} -.row > .offset4 { - margin-left: 260px; -} -.row > .offset5 { - margin-left: 320px; -} -.row > .offset6 { - margin-left: 380px; -} -.row > .offset7 { - margin-left: 440px; -} -.row > .offset8 { - margin-left: 500px; -} -.row > .offset9 { - margin-left: 560px; -} -.row > .offset10 { - margin-left: 620px; -} -.row > .offset11 { - margin-left: 680px; -} -.row > .offset12 { - margin-left: 740px; -} -.span-one-third { - width: 300px; -} -.span-two-thirds { - width: 620px; -} -.row > .offset-one-third { - margin-left: 340px; -} -.row > .offset-two-thirds { - margin-left: 660px; -} -/* Typography.less - * Headings, body text, lists, code, and more for a versatile and durable typography system - * ---------------------------------------------------------------------------------------- */ -p { - font-size: 13px; - font-weight: normal; - line-height: 18px; - margin-bottom: 9px; -} -p small { - font-size: 11px; - color: #bfbfbf; -} -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: bold; - color: #404040; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - color: #bfbfbf; -} -h1 { - margin-bottom: 18px; - font-size: 30px; - line-height: 36px; -} -h1 small { - font-size: 18px; -} -h2 { - font-size: 24px; - line-height: 36px; -} -h2 small { - font-size: 14px; -} -h3, -h4, -h5, -h6 { - line-height: 36px; -} -h3 { - font-size: 18px; -} -h3 small { - font-size: 14px; -} -h4 { - font-size: 16px; -} -h4 small { - font-size: 12px; -} -h5 { - font-size: 14px; -} -h6 { - font-size: 13px; - color: #bfbfbf; - text-transform: uppercase; -} -ul, ol { - margin: 0 0 18px 25px; -} -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; -} -ul { - list-style: disc; -} -ol { - list-style: decimal; -} -li { - line-height: 18px; - color: #808080; -} -ul.unstyled { - list-style: none; - margin-left: 0; -} -dl { - margin-bottom: 18px; -} -dl dt, dl dd { - line-height: 18px; -} -dl dt { - font-weight: bold; -} -dl dd { - margin-left: 9px; -} -hr { - margin: 20px 0 19px; - border: 0; - border-bottom: 1px solid #eee; -} -strong { - font-style: inherit; - font-weight: bold; -} -em { - font-style: italic; - font-weight: inherit; - line-height: inherit; -} -.muted { - color: #bfbfbf; -} -blockquote { - margin-bottom: 18px; - border-left: 5px solid #eee; - padding-left: 15px; -} -blockquote p { - font-size: 14px; - font-weight: 300; - line-height: 18px; - margin-bottom: 0; -} -blockquote small { - display: block; - font-size: 12px; - font-weight: 300; - line-height: 18px; - color: #bfbfbf; -} -blockquote small:before { - content: '\2014 \00A0'; -} -address { - display: block; - line-height: 18px; - margin-bottom: 18px; -} -code, pre { - padding: 0 3px 2px; - font-family: Monaco, Andale Mono, Courier New, monospace; - font-size: 12px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -code { - background-color: #fee9cc; - color: rgba(0, 0, 0, 0.75); - padding: 1px 3px; -} -pre { - background-color: #f5f5f5; - display: block; - padding: 8.5px; - margin: 0 0 18px; - line-height: 18px; - font-size: 12px; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; -} -/* Forms.less - * Base styles for various input types, form layouts, and states - * ------------------------------------------------------------- */ -form { - margin-bottom: 18px; -} -fieldset { - margin-bottom: 18px; - padding-top: 18px; -} -fieldset legend { - display: block; - padding-left: 150px; - font-size: 19.5px; - line-height: 1; - color: #404040; - *padding: 0 0 5px 145px; - /* IE6-7 */ - - *line-height: 1.5; - /* IE6-7 */ - -} -form .clearfix { - margin-bottom: 18px; - zoom: 1; -} -form .clearfix:before, form .clearfix:after { - display: table; - content: ""; - zoom: 1; -} -form .clearfix:after { - clear: both; -} -label, -input, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: normal; -} -label { - padding-top: 6px; - font-size: 13px; - line-height: 18px; - float: left; - width: 130px; - text-align: right; - color: #404040; -} -form .input { - margin-left: 150px; -} -input[type=checkbox], input[type=radio] { - cursor: pointer; -} -input, -textarea, -select, -.uneditable-input { - display: inline-block; - width: 210px; - height: 18px; - padding: 4px; - font-size: 13px; - line-height: 18px; - color: #808080; - border: 1px solid #ccc; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -select { - padding: initial; -} -input[type=checkbox], input[type=radio] { - width: auto; - height: auto; - padding: 0; - margin: 3px 0; - *margin-top: 0; - /* IE6-7 */ - - line-height: normal; - border: none; -} -input[type=file] { - background-color: #ffffff; - padding: initial; - border: initial; - line-height: initial; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -input[type=button], input[type=reset], input[type=submit] { - width: auto; - height: auto; -} -select, input[type=file] { - height: 27px; - *height: auto; - line-height: 27px; - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - -} -select[multiple] { - height: inherit; - background-color: #ffffff; -} -textarea { - height: auto; -} -.uneditable-input { - background-color: #ffffff; - display: block; - border-color: #eee; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - cursor: not-allowed; -} -:-moz-placeholder { - color: #bfbfbf; -} -::-webkit-input-placeholder { - color: #bfbfbf; -} -input, textarea { - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -ms-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); -} -input:focus, textarea:focus { - outline: 0; - border-color: rgba(82, 168, 236, 0.8); - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); -} -input[type=file]:focus, input[type=checkbox]:focus, select:focus { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - outline: 1px dotted #666; -} -form .clearfix.error > label, form .clearfix.error .help-block, form .clearfix.error .help-inline { - color: #b94a48; -} -form .clearfix.error input, form .clearfix.error textarea { - color: #b94a48; - border-color: #ee5f5b; -} -form .clearfix.error input:focus, form .clearfix.error textarea:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} -form .clearfix.error .input-prepend .add-on, form .clearfix.error .input-append .add-on { - color: #b94a48; - background-color: #fce6e6; - border-color: #b94a48; -} -form .clearfix.warning > label, form .clearfix.warning .help-block, form .clearfix.warning .help-inline { - color: #c09853; -} -form .clearfix.warning input, form .clearfix.warning textarea { - color: #c09853; - border-color: #ccae64; -} -form .clearfix.warning input:focus, form .clearfix.warning textarea:focus { - border-color: #be9a3f; - -webkit-box-shadow: 0 0 6px #e5d6b1; - -moz-box-shadow: 0 0 6px #e5d6b1; - box-shadow: 0 0 6px #e5d6b1; -} -form .clearfix.warning .input-prepend .add-on, form .clearfix.warning .input-append .add-on { - color: #c09853; - background-color: #d2b877; - border-color: #c09853; -} -form .clearfix.success > label, form .clearfix.success .help-block, form .clearfix.success .help-inline { - color: #468847; -} -form .clearfix.success input, form .clearfix.success textarea { - color: #468847; - border-color: #57a957; -} -form .clearfix.success input:focus, form .clearfix.success textarea:focus { - border-color: #458845; - -webkit-box-shadow: 0 0 6px #9acc9a; - -moz-box-shadow: 0 0 6px #9acc9a; - box-shadow: 0 0 6px #9acc9a; -} -form .clearfix.success .input-prepend .add-on, form .clearfix.success .input-append .add-on { - color: #468847; - background-color: #bcddbc; - border-color: #468847; -} -.input-mini, -input.mini, -textarea.mini, -select.mini { - width: 60px; -} -.input-small, -input.small, -textarea.small, -select.small { - width: 90px; -} -.input-medium, -input.medium, -textarea.medium, -select.medium { - width: 150px; -} -.input-large, -input.large, -textarea.large, -select.large { - width: 210px; -} -.input-xlarge, -input.xlarge, -textarea.xlarge, -select.xlarge { - width: 270px; -} -.input-xxlarge, -input.xxlarge, -textarea.xxlarge, -select.xxlarge { - width: 530px; -} -textarea.xxlarge { - overflow-y: auto; -} -input.span1, textarea.span1 { - display: inline-block; - float: none; - width: 30px; - margin-left: 0; -} -input.span2, textarea.span2 { - display: inline-block; - float: none; - width: 90px; - margin-left: 0; -} -input.span3, textarea.span3 { - display: inline-block; - float: none; - width: 150px; - margin-left: 0; -} -input.span4, textarea.span4 { - display: inline-block; - float: none; - width: 210px; - margin-left: 0; -} -input.span5, textarea.span5 { - display: inline-block; - float: none; - width: 270px; - margin-left: 0; -} -input.span6, textarea.span6 { - display: inline-block; - float: none; - width: 330px; - margin-left: 0; -} -input.span7, textarea.span7 { - display: inline-block; - float: none; - width: 390px; - margin-left: 0; -} -input.span8, textarea.span8 { - display: inline-block; - float: none; - width: 450px; - margin-left: 0; -} -input.span9, textarea.span9 { - display: inline-block; - float: none; - width: 510px; - margin-left: 0; -} -input.span10, textarea.span10 { - display: inline-block; - float: none; - width: 570px; - margin-left: 0; -} -input.span11, textarea.span11 { - display: inline-block; - float: none; - width: 630px; - margin-left: 0; -} -input.span12, textarea.span12 { - display: inline-block; - float: none; - width: 690px; - margin-left: 0; -} -input.span13, textarea.span13 { - display: inline-block; - float: none; - width: 750px; - margin-left: 0; -} -input.span14, textarea.span14 { - display: inline-block; - float: none; - width: 810px; - margin-left: 0; -} -input.span15, textarea.span15 { - display: inline-block; - float: none; - width: 870px; - margin-left: 0; -} -input.span16, textarea.span16 { - display: inline-block; - float: none; - width: 930px; - margin-left: 0; -} -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - background-color: #f5f5f5; - border-color: #ddd; - cursor: not-allowed; -} -.actions { - background: #f5f5f5; - margin-top: 18px; - margin-bottom: 18px; - padding: 17px 20px 18px 150px; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; -} -.actions .secondary-action { - float: right; -} -.actions .secondary-action a { - line-height: 30px; -} -.actions .secondary-action a:hover { - text-decoration: underline; -} -.help-inline, .help-block { - font-size: 13px; - line-height: 18px; - color: #bfbfbf; -} -.help-inline { - padding-left: 5px; - *position: relative; - /* IE6-7 */ - - *top: -5px; - /* IE6-7 */ - -} -.help-block { - display: block; - max-width: 600px; -} -.inline-inputs { - color: #808080; -} -.inline-inputs span { - padding: 0 2px 0 1px; -} -.input-prepend input, .input-append input { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-prepend .add-on, .input-append .add-on { - position: relative; - background: #f5f5f5; - border: 1px solid #ccc; - z-index: 2; - float: left; - display: block; - width: auto; - min-width: 16px; - height: 18px; - padding: 4px 4px 4px 5px; - margin-right: -1px; - font-weight: normal; - line-height: 18px; - color: #bfbfbf; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-prepend .active, .input-append .active { - background: #a9dba9; - border-color: #46a546; -} -.input-prepend .add-on { - *margin-top: 1px; - /* IE6-7 */ - -} -.input-append input { - float: left; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-append .add-on { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; - margin-right: 0; - margin-left: -1px; -} -.inputs-list { - margin: 0 0 5px; - width: 100%; -} -.inputs-list li { - display: block; - padding: 0; - width: 100%; -} -.inputs-list label { - display: block; - float: none; - width: auto; - padding: 0; - margin-left: 20px; - line-height: 18px; - text-align: left; - white-space: normal; -} -.inputs-list label strong { - color: #808080; -} -.inputs-list label small { - font-size: 11px; - font-weight: normal; -} -.inputs-list .inputs-list { - margin-left: 25px; - margin-bottom: 10px; - padding-top: 0; -} -.inputs-list:first-child { - padding-top: 6px; -} -.inputs-list li + li { - padding-top: 2px; -} -.inputs-list input[type=radio], .inputs-list input[type=checkbox] { - margin-bottom: 0; - margin-left: -20px; - float: left; -} -.form-stacked { - padding-left: 20px; -} -.form-stacked fieldset { - padding-top: 9px; -} -.form-stacked legend { - padding-left: 0; -} -.form-stacked label { - display: block; - float: none; - width: auto; - font-weight: bold; - text-align: left; - line-height: 20px; - padding-top: 0; -} -.form-stacked .clearfix { - margin-bottom: 9px; -} -.form-stacked .clearfix div.input { - margin-left: 0; -} -.form-stacked .inputs-list { - margin-bottom: 0; -} -.form-stacked .inputs-list li { - padding-top: 0; -} -.form-stacked .inputs-list li label { - font-weight: normal; - padding-top: 0; -} -.form-stacked div.clearfix.error { - padding-top: 10px; - padding-bottom: 10px; - padding-left: 10px; - margin-top: 0; - margin-left: -10px; -} -.form-stacked .actions { - margin-left: -20px; - padding-left: 20px; -} -/* - * Tables.less - * Tables for, you guessed it, tabular data - * ---------------------------------------- */ -table { - width: 100%; - margin-bottom: 18px; - padding: 0; - font-size: 13px; - border-collapse: collapse; -} -table th, table td { - padding: 10px 10px 9px; - line-height: 18px; - text-align: left; -} -table th { - padding-top: 9px; - font-weight: bold; - vertical-align: middle; -} -table td { - vertical-align: top; - border-top: 1px solid #ddd; -} -table tbody th { - border-top: 1px solid #ddd; - vertical-align: top; -} -.condensed-table th, .condensed-table td { - padding: 5px 5px 4px; -} -.bordered-table { - border: 1px solid #ddd; - border-collapse: separate; - *border-collapse: collapse; - /* IE7, collapse table to remove spacing */ - - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.bordered-table th + th, .bordered-table td + td, .bordered-table th + td { - border-left: 1px solid #ddd; -} -.bordered-table thead tr:first-child th:first-child, .bordered-table tbody tr:first-child td:first-child { - -webkit-border-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; - border-radius: 4px 0 0 0; -} -.bordered-table thead tr:first-child th:last-child, .bordered-table tbody tr:first-child td:last-child { - -webkit-border-radius: 0 4px 0 0; - -moz-border-radius: 0 4px 0 0; - border-radius: 0 4px 0 0; -} -.bordered-table tbody tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; -} -.bordered-table tbody tr:last-child td:last-child { - -webkit-border-radius: 0 0 4px 0; - -moz-border-radius: 0 0 4px 0; - border-radius: 0 0 4px 0; -} -table .span1 { - width: 20px; -} -table .span2 { - width: 60px; -} -table .span3 { - width: 100px; -} -table .span4 { - width: 140px; -} -table .span5 { - width: 180px; -} -table .span6 { - width: 220px; -} -table .span7 { - width: 260px; -} -table .span8 { - width: 300px; -} -table .span9 { - width: 340px; -} -table .span10 { - width: 380px; -} -table .span11 { - width: 420px; -} -table .span12 { - width: 460px; -} -table .span13 { - width: 500px; -} -table .span14 { - width: 540px; -} -table .span15 { - width: 580px; -} -table .span16 { - width: 620px; -} -.zebra-striped tbody tr:nth-child(odd) td, .zebra-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} -.zebra-striped tbody tr:hover td, .zebra-striped tbody tr:hover th { - background-color: #f5f5f5; -} -table .header { - cursor: pointer; -} -table .header:after { - content: ""; - float: right; - margin-top: 7px; - border-width: 0 4px 4px; - border-style: solid; - border-color: #000 transparent; - visibility: hidden; -} -table .headerSortUp, table .headerSortDown { - background-color: rgba(141, 192, 219, 0.25); - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); -} -table .header:hover:after { - visibility: visible; -} -table .headerSortDown:after, table .headerSortDown:hover:after { - visibility: visible; - filter: alpha(opacity=60); - -khtml-opacity: 0.6; - -moz-opacity: 0.6; - opacity: 0.6; -} -table .headerSortUp:after { - border-bottom: none; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #000; - visibility: visible; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - filter: alpha(opacity=60); - -khtml-opacity: 0.6; - -moz-opacity: 0.6; - opacity: 0.6; -} -table .blue { - color: #049cdb; - border-bottom-color: #049cdb; -} -table .headerSortUp.blue, table .headerSortDown.blue { - background-color: #ade6fe; -} -table .green { - color: #46a546; - border-bottom-color: #46a546; -} -table .headerSortUp.green, table .headerSortDown.green { - background-color: #cdeacd; -} -table .red { - color: #9d261d; - border-bottom-color: #9d261d; -} -table .headerSortUp.red, table .headerSortDown.red { - background-color: #f4c8c5; -} -table .yellow { - color: #ffc40d; - border-bottom-color: #ffc40d; -} -table .headerSortUp.yellow, table .headerSortDown.yellow { - background-color: #fff6d9; -} -table .orange { - color: #f89406; - border-bottom-color: #f89406; -} -table .headerSortUp.orange, table .headerSortDown.orange { - background-color: #fee9cc; -} -table .purple { - color: #7a43b6; - border-bottom-color: #7a43b6; -} -table .headerSortUp.purple, table .headerSortDown.purple { - background-color: #e2d5f0; -} -/* Patterns.less - * Repeatable UI elements outside the base styles provided from the scaffolding - * ---------------------------------------------------------------------------- */ -.topbar { - height: 40px; - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 10000; - overflow: visible; -} -.topbar a { - color: #bfbfbf; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.topbar h3 a:hover, .topbar .brand:hover, .topbar ul .active > a { - background-color: #333; - background-color: rgba(255, 255, 255, 0.05); - color: #ffffff; - text-decoration: none; -} -.topbar h3 { - position: relative; -} -.topbar h3 a, .topbar .brand { - float: left; - display: block; - padding: 8px 20px 12px; - margin-left: -20px; - color: #ffffff; - font-size: 20px; - font-weight: 200; - line-height: 1; -} -.topbar p { - margin: 0; - line-height: 40px; -} -.topbar p a:hover { - background-color: transparent; - color: #ffffff; -} -.topbar form { - float: left; - margin: 5px 0 0 0; - position: relative; - filter: alpha(opacity=100); - -khtml-opacity: 1; - -moz-opacity: 1; - opacity: 1; -} -.topbar form.pull-right { - float: right; -} -.topbar input { - background-color: #444; - background-color: rgba(255, 255, 255, 0.3); - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: normal; - font-weight: 13px; - line-height: 1; - padding: 4px 9px; - color: #ffffff; - color: rgba(255, 255, 255, 0.75); - border: 1px solid #111; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - -o-transition: none; - transition: none; -} -.topbar input:-moz-placeholder { - color: #e6e6e6; -} -.topbar input::-webkit-input-placeholder { - color: #e6e6e6; -} -.topbar input:hover { - background-color: #bfbfbf; - background-color: rgba(255, 255, 255, 0.5); - color: #ffffff; -} -.topbar input:focus, .topbar input.focused { - outline: 0; - background-color: #ffffff; - color: #404040; - text-shadow: 0 1px 0 #ffffff; - border: 0; - padding: 5px 10px; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} -.topbar-inner, .topbar .fill { - background-color: #222; - background-color: #222222; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222)); - background-image: -moz-linear-gradient(top, #333333, #222222); - background-image: -ms-linear-gradient(top, #333333, #222222); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222)); - background-image: -webkit-linear-gradient(top, #333333, #222222); - background-image: -o-linear-gradient(top, #333333, #222222); - background-image: linear-gradient(top, #333333, #222222); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); -} -.topbar div > ul, .nav { - display: block; - float: left; - margin: 0 10px 0 0; - position: relative; - left: 0; -} -.topbar div > ul > li, .nav > li { - display: block; - float: left; -} -.topbar div > ul a, .nav a { - display: block; - float: none; - padding: 10px 10px 11px; - line-height: 19px; - text-decoration: none; -} -.topbar div > ul a:hover, .nav a:hover { - color: #ffffff; - text-decoration: none; -} -.topbar div > ul .active > a, .nav .active > a { - background-color: #222; - background-color: rgba(0, 0, 0, 0.5); -} -.topbar div > ul.secondary-nav, .nav.secondary-nav { - float: right; - margin-left: 10px; - margin-right: 0; -} -.topbar div > ul.secondary-nav .menu-dropdown, -.nav.secondary-nav .menu-dropdown, -.topbar div > ul.secondary-nav .dropdown-menu, -.nav.secondary-nav .dropdown-menu { - right: 0; - border: 0; -} -.topbar div > ul a.menu:hover, -.nav a.menu:hover, -.topbar div > ul li.open .menu, -.nav li.open .menu, -.topbar div > ul .dropdown-toggle:hover, -.nav .dropdown-toggle:hover, -.topbar div > ul .dropdown.open .dropdown-toggle, -.nav .dropdown.open .dropdown-toggle { - background: #444; - background: rgba(255, 255, 255, 0.05); -} -.topbar div > ul .menu-dropdown, -.nav .menu-dropdown, -.topbar div > ul .dropdown-menu, -.nav .dropdown-menu { - background-color: #333; -} -.topbar div > ul .menu-dropdown a.menu, -.nav .menu-dropdown a.menu, -.topbar div > ul .dropdown-menu a.menu, -.nav .dropdown-menu a.menu, -.topbar div > ul .menu-dropdown .dropdown-toggle, -.nav .menu-dropdown .dropdown-toggle, -.topbar div > ul .dropdown-menu .dropdown-toggle, -.nav .dropdown-menu .dropdown-toggle { - color: #ffffff; -} -.topbar div > ul .menu-dropdown a.menu.open, -.nav .menu-dropdown a.menu.open, -.topbar div > ul .dropdown-menu a.menu.open, -.nav .dropdown-menu a.menu.open, -.topbar div > ul .menu-dropdown .dropdown-toggle.open, -.nav .menu-dropdown .dropdown-toggle.open, -.topbar div > ul .dropdown-menu .dropdown-toggle.open, -.nav .dropdown-menu .dropdown-toggle.open { - background: #444; - background: rgba(255, 255, 255, 0.05); -} -.topbar div > ul .menu-dropdown li a, -.nav .menu-dropdown li a, -.topbar div > ul .dropdown-menu li a, -.nav .dropdown-menu li a { - color: #999; - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); -} -.topbar div > ul .menu-dropdown li a:hover, -.nav .menu-dropdown li a:hover, -.topbar div > ul .dropdown-menu li a:hover, -.nav .dropdown-menu li a:hover { - background-color: #191919; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919)); - background-image: -moz-linear-gradient(top, #292929, #191919); - background-image: -ms-linear-gradient(top, #292929, #191919); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919)); - background-image: -webkit-linear-gradient(top, #292929, #191919); - background-image: -o-linear-gradient(top, #292929, #191919); - background-image: linear-gradient(top, #292929, #191919); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0); - color: #ffffff; -} -.topbar div > ul .menu-dropdown .active a, -.nav .menu-dropdown .active a, -.topbar div > ul .dropdown-menu .active a, -.nav .dropdown-menu .active a { - color: #ffffff; -} -.topbar div > ul .menu-dropdown .divider, -.nav .menu-dropdown .divider, -.topbar div > ul .dropdown-menu .divider, -.nav .dropdown-menu .divider { - background-color: #222; - border-color: #444; -} -.topbar ul .menu-dropdown li a, .topbar ul .dropdown-menu li a { - padding: 4px 15px; -} -li.menu, .dropdown { - position: relative; -} -a.menu:after, .dropdown-toggle:after { - width: 0; - height: 0; - display: inline-block; - content: "&darr;"; - text-indent: -99999px; - vertical-align: top; - margin-top: 8px; - margin-left: 4px; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #ffffff; - filter: alpha(opacity=50); - -khtml-opacity: 0.5; - -moz-opacity: 0.5; - opacity: 0.5; -} -.menu-dropdown, .dropdown-menu { - background-color: #ffffff; - float: left; - display: none; - position: absolute; - top: 40px; - z-index: 900; - min-width: 160px; - max-width: 220px; - _width: 160px; - margin-left: 0; - margin-right: 0; - padding: 6px 0; - zoom: 1; - border-color: #999; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 0 1px 1px; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.menu-dropdown li, .dropdown-menu li { - float: none; - display: block; - background-color: none; -} -.menu-dropdown .divider, .dropdown-menu .divider { - height: 1px; - margin: 5px 0; - overflow: hidden; - background-color: #eee; - border-bottom: 1px solid #ffffff; -} -.topbar .dropdown-menu a, .dropdown-menu a { - display: block; - padding: 4px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #808080; - text-shadow: 0 1px 0 #ffffff; -} -.topbar .dropdown-menu a:hover, -.dropdown-menu a:hover, -.topbar .dropdown-menu a.hover, -.dropdown-menu a.hover { - background-color: #dddddd; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd)); - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -ms-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(top, #eeeeee, #dddddd); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0); - color: #404040; - text-decoration: none; - -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); -} -.open .menu, -.dropdown.open .menu, -.open .dropdown-toggle, -.dropdown.open .dropdown-toggle { - color: #ffffff; - background: #ccc; - background: rgba(0, 0, 0, 0.3); -} -.open .menu-dropdown, -.dropdown.open .menu-dropdown, -.open .dropdown-menu, -.dropdown.open .dropdown-menu { - display: block; -} -.tabs, .pills { - margin: 0 0 18px; - padding: 0; - list-style: none; - zoom: 1; -} -.tabs:before, -.pills:before, -.tabs:after, -.pills:after { - display: table; - content: ""; - zoom: 1; -} -.tabs:after, .pills:after { - clear: both; -} -.tabs > li, .pills > li { - float: left; -} -.tabs > li > a, .pills > li > a { - display: block; -} -.tabs { - border-color: #ddd; - border-style: solid; - border-width: 0 0 1px; -} -.tabs > li { - position: relative; - margin-bottom: -1px; -} -.tabs > li > a { - padding: 0 15px; - margin-right: 2px; - line-height: 34px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.tabs > li > a:hover { - text-decoration: none; - background-color: #eee; - border-color: #eee #eee #ddd; -} -.tabs .active > a, .tabs .active > a:hover { - color: #808080; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; -} -.tabs .menu-dropdown, .tabs .dropdown-menu { - top: 35px; - border-width: 1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px 6px; - border-radius: 0 6px 6px 6px; -} -.tabs a.menu:after, .tabs .dropdown-toggle:after { - border-top-color: #999; - margin-top: 15px; - margin-left: 5px; -} -.tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle { - border-color: #999; -} -.tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after { - border-top-color: #555; -} -.pills a { - margin: 5px 3px 5px 0; - padding: 0 15px; - line-height: 30px; - text-shadow: 0 1px 1px #ffffff; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} -.pills a:hover { - color: #ffffff; - text-decoration: none; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); - background-color: #00438a; -} -.pills .active a { - color: #ffffff; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); - background-color: #0069d6; -} -.pills-vertical > li { - float: none; -} -.tab-content > .tab-pane, -.pill-content > .pill-pane, -.tab-content > div, -.pill-content > div { - display: none; -} -.tab-content > .active, .pill-content > .active { - display: block; -} -.breadcrumb { - padding: 7px 14px; - margin: 0 0 18px; - background-color: #f5f5f5; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5)); - background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5)); - background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); - background-image: linear-gradient(top, #ffffff, #f5f5f5); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} -.breadcrumb li { - display: inline; - text-shadow: 0 1px 0 #ffffff; -} -.breadcrumb .divider { - padding: 0 5px; - color: #bfbfbf; -} -.breadcrumb .active a { - color: #404040; -} -.hero-unit { - background-color: #f5f5f5; - margin-bottom: 30px; - padding: 60px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; -} -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 27px; -} -footer { - margin-top: 17px; - padding-top: 17px; - border-top: 1px solid #eee; -} -.page-header { - margin-bottom: 17px; - border-bottom: 1px solid #ddd; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -.page-header h1 { - margin-bottom: 8px; -} -.btn.danger, -.alert-message.danger, -.btn.danger:hover, -.alert-message.danger:hover, -.btn.error, -.alert-message.error, -.btn.error:hover, -.alert-message.error:hover, -.btn.success, -.alert-message.success, -.btn.success:hover, -.alert-message.success:hover, -.btn.info, -.alert-message.info, -.btn.info:hover, -.alert-message.info:hover { - color: #ffffff; -} -.btn .close, .alert-message .close { - font-family: Arial, sans-serif; - line-height: 18px; -} -.btn.danger, -.alert-message.danger, -.btn.error, -.alert-message.error { - background-color: #c43c35; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(top, #ee5f5b, #c43c35); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - border-color: #c43c35 #c43c35 #882a25; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); -} -.btn.success, .alert-message.success { - background-color: #57a957; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -ms-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(top, #62c462, #57a957); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - border-color: #57a957 #57a957 #3d773d; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); -} -.btn.info, .alert-message.info { - background-color: #339bb9; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9)); - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(top, #5bc0de, #339bb9); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - border-color: #339bb9 #339bb9 #22697d; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); -} -.btn { - cursor: pointer; - display: inline-block; - background-color: #e6e6e6; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); - background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); - padding: 5px 14px 6px; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - color: #333; - font-size: 13px; - line-height: normal; - border: 1px solid #ccc; - border-bottom-color: #bbb; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -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); - -webkit-transition: 0.1s linear all; - -moz-transition: 0.1s linear all; - -ms-transition: 0.1s linear all; - -o-transition: 0.1s linear all; - transition: 0.1s linear all; -} -.btn:hover { - background-position: 0 -15px; - color: #333; - text-decoration: none; -} -.btn:focus { - outline: 1px dotted #666; -} -.btn.primary { - color: #ffffff; - background-color: #0064cd; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); - background-image: -moz-linear-gradient(top, #049cdb, #0064cd); - background-image: -ms-linear-gradient(top, #049cdb, #0064cd); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); - background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); - background-image: -o-linear-gradient(top, #049cdb, #0064cd); - background-image: linear-gradient(top, #049cdb, #0064cd); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - border-color: #0064cd #0064cd #003f81; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); -} -.btn.active, .btn:active { - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); -} -.btn.disabled { - cursor: default; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - filter: alpha(opacity=65); - -khtml-opacity: 0.65; - -moz-opacity: 0.65; - opacity: 0.65; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.btn[disabled] { - cursor: default; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - filter: alpha(opacity=65); - -khtml-opacity: 0.65; - -moz-opacity: 0.65; - opacity: 0.65; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.btn.large { - font-size: 15px; - line-height: normal; - padding: 9px 14px 9px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.btn.small { - padding: 7px 9px 7px; - font-size: 11px; -} -:root .alert-message, :root .btn { - border-radius: 0 \0; -} -button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { - padding: 0; - border: 0; -} -.close { - float: right; - color: #000000; - font-size: 20px; - font-weight: bold; - line-height: 13.5px; - text-shadow: 0 1px 0 #ffffff; - filter: alpha(opacity=25); - -khtml-opacity: 0.25; - -moz-opacity: 0.25; - opacity: 0.25; -} -.close:hover { - color: #000000; - text-decoration: none; - filter: alpha(opacity=40); - -khtml-opacity: 0.4; - -moz-opacity: 0.4; - opacity: 0.4; -} -.alert-message { - position: relative; - padding: 7px 15px; - margin-bottom: 18px; - color: #404040; - background-color: #eedc94; - background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); - background-image: -moz-linear-gradient(top, #fceec1, #eedc94); - background-image: -ms-linear-gradient(top, #fceec1, #eedc94); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); - background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); - background-image: -o-linear-gradient(top, #fceec1, #eedc94); - background-image: linear-gradient(top, #fceec1, #eedc94); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - border-color: #eedc94 #eedc94 #e4c652; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - border-width: 1px; - border-style: solid; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); -} -.alert-message .close { - margin-top: 1px; - *margin-top: 0; -} -.alert-message a { - font-weight: bold; - color: #404040; -} -.alert-message.danger p a, -.alert-message.error p a, -.alert-message.success p a, -.alert-message.info p a { - color: #ffffff; -} -.alert-message h5 { - line-height: 18px; -} -.alert-message p { - margin-bottom: 0; -} -.alert-message div { - margin-top: 5px; - margin-bottom: 2px; - line-height: 28px; -} -.alert-message .btn { - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); -} -.alert-message.block-message { - background-image: none; - background-color: #fdf5d9; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - padding: 14px; - border-color: #fceec1; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.alert-message.block-message ul, .alert-message.block-message p { - margin-right: 30px; -} -.alert-message.block-message ul { - margin-bottom: 0; -} -.alert-message.block-message li { - color: #404040; -} -.alert-message.block-message .alert-actions { - margin-top: 5px; -} -.alert-message.block-message.error, .alert-message.block-message.success, .alert-message.block-message.info { - color: #404040; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -.alert-message.block-message.error { - background-color: #fddfde; - border-color: #fbc7c6; -} -.alert-message.block-message.success { - background-color: #d1eed1; - border-color: #bfe7bf; -} -.alert-message.block-message.info { - background-color: #ddf4fb; - border-color: #c6edf9; -} -.alert-message.block-message.danger p a, -.alert-message.block-message.error p a, -.alert-message.block-message.success p a, -.alert-message.block-message.info p a { - color: #404040; -} -.pagination { - height: 36px; - margin: 18px 0; -} -.pagination ul { - float: left; - margin: 0; - border: 1px solid #ddd; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} -.pagination li { - display: inline; -} -.pagination a { - float: left; - padding: 0 14px; - line-height: 34px; - border-right: 1px solid; - border-right-color: #ddd; - border-right-color: rgba(0, 0, 0, 0.15); - *border-right-color: #ddd; - /* IE6-7 */ - - text-decoration: none; -} -.pagination a:hover, .pagination .active a { - background-color: #c7eefe; -} -.pagination .disabled a, .pagination .disabled a:hover { - background-color: transparent; - color: #bfbfbf; -} -.pagination .next a { - border: 0; -} -.well { - background-color: #f5f5f5; - margin-bottom: 20px; - padding: 19px; - min-height: 20px; - border: 1px solid #eee; - border: 1px solid rgba(0, 0, 0, 0.05); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.modal-backdrop { - background-color: #000000; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 10000; -} -.modal-backdrop.fade { - opacity: 0; -} -.modal-backdrop, .modal-backdrop.fade.in { - filter: alpha(opacity=80); - -khtml-opacity: 0.8; - -moz-opacity: 0.8; - opacity: 0.8; -} -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 11000; - width: 560px; - margin: -250px 0 0 -280px; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - /* IE6-7 */ - - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.modal .close { - margin-top: 7px; -} -.modal.fade { - -webkit-transition: opacity .3s linear, top .3s ease-out; - -moz-transition: opacity .3s linear, top .3s ease-out; - -ms-transition: opacity .3s linear, top .3s ease-out; - -o-transition: opacity .3s linear, top .3s ease-out; - transition: opacity .3s linear, top .3s ease-out; - top: -25%; -} -.modal.fade.in { - top: 50%; -} -.modal-header { - border-bottom: 1px solid #eee; - padding: 5px 15px; -} -.modal-body { - padding: 15px; -} -.modal-body form { - margin-bottom: 0; -} -.modal-footer { - background-color: #f5f5f5; - padding: 14px 15px 15px; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; - zoom: 1; - margin-bottom: 0; -} -.modal-footer:before, .modal-footer:after { - display: table; - content: ""; - zoom: 1; -} -.modal-footer:after { - clear: both; -} -.modal-footer .btn { - float: right; - margin-left: 5px; -} -.modal .popover, .modal .twipsy { - z-index: 12000; -} -.twipsy { - display: block; - position: absolute; - visibility: visible; - padding: 5px; - font-size: 11px; - z-index: 1000; - filter: alpha(opacity=80); - -khtml-opacity: 0.8; - -moz-opacity: 0.8; - opacity: 0.8; -} -.twipsy.fade.in { - filter: alpha(opacity=80); - -khtml-opacity: 0.8; - -moz-opacity: 0.8; - opacity: 0.8; -} -.twipsy.above .twipsy-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.twipsy.left .twipsy-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.twipsy.below .twipsy-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.twipsy.right .twipsy-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.twipsy-inner { - padding: 3px 8px; - background-color: #000000; - color: white; - text-align: center; - max-width: 200px; - text-decoration: none; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.twipsy-arrow { - position: absolute; - width: 0; - height: 0; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1000; - padding: 5px; - display: none; -} -.popover.above .arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.popover.right .arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.popover.below .arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.popover.left .arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.popover .arrow { - position: absolute; - width: 0; - height: 0; -} -.popover .inner { - background: #000000; - background: rgba(0, 0, 0, 0.8); - padding: 3px; - overflow: hidden; - width: 280px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -} -.popover .title { - background-color: #f5f5f5; - padding: 9px 15px; - line-height: 1; - -webkit-border-radius: 3px 3px 0 0; - -moz-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - border-bottom: 1px solid #eee; -} -.popover .content { - background-color: #ffffff; - padding: 14px; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.popover .content p, .popover .content ul, .popover .content ol { - margin-bottom: 0; -} -.fade { - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -ms-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; - opacity: 0; -} -.fade.in { - opacity: 1; -} -.label { - padding: 1px 3px 2px; - font-size: 9.75px; - font-weight: bold; - color: #ffffff; - text-transform: uppercase; - white-space: nowrap; - background-color: #bfbfbf; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.label.important { - background-color: #c43c35; -} -.label.warning { - background-color: #f89406; -} -.label.success { - background-color: #46a546; -} -.label.notice { - background-color: #62cffc; -} -.media-grid { - margin-left: -20px; - margin-bottom: 0; - zoom: 1; -} -.media-grid:before, .media-grid:after { - display: table; - content: ""; - zoom: 1; -} -.media-grid:after { - clear: both; -} -.media-grid li { - display: inline; -} -.media-grid a { - float: left; - padding: 4px; - margin: 0 0 18px 20px; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); -} -.media-grid a img { - display: block; -} -.media-grid a:hover { - border-color: #0069d6; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} - #set ($version = $xwiki.getSpacePreference('version')) - #if ("$!version" == "") - #set ($version = $xwiki.getXWikiPreference("version")) - #end - #if ("$!version" != "") - #set ($version = $xwiki.parseContent($version)) - #else - #set ($version = $!xwiki.version) - #end - <footer> - <p>$!copyright | $!version</p> - </footer> - </div> - </div> - - </body> -</html> - - - - - - - - -#template('xwikivars.vm') -#set($parents = $util.arrayList) -#set($discard = $parents.add($doc.fullName)) -#macro(computeHierarchy $doc $result $level) - #set($parent = $doc.parent) - #if(($parent != '') && ($level < 6) && (!$parents.contains($parent))) - #set($discard = $parents.add($parent)) - #set($pdoc = $xwiki.getDocument($parent).getTranslatedDocument()) - #if ($pdoc) - #set ($pdocurl = $pdoc.getURL('view')) - #set ($nstring = "<li><a href='$pdocurl'>$escapetool.xml(${pdoc.getPlainTitle()})</a> <span class='divider'>/</span> $result</li>") - #set ($level = $level + 1) - #computeHierarchy($pdoc $nstring $level) - #else - ## No access to the parent document - <li><a href='$xwiki.getURL($parent)'>$escapetool.xml(${parent})</a><span class="divider">/</span></li> $result - #end - #else - $result - #end -#end -#if($isInServletMode) ## Visible only in a page -<ul class="breadcrumb"> - #if ($doc.fullName != 'Main.WebHome') - #if ($xcontext.action == 'edit' || $xcontext.action == 'inline') - #computeHierarchy($doc "<a href='${doc.getURL('view')}'>$escapetool.xml($tdoc.getPlainTitle())</a>" 0) - #else - #computeHierarchy($doc "<span class='active'>$escapetool.xml($tdoc.getPlainTitle())</span>" 0) - #end - #end -</ul> -#end - - -logo.png - - -Default XWiki Skin - - - <div class="well"> - <h5>Sidebar</h5> - <ul> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - </ul> - <h5>Sidebar</h5> - <ul> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - </ul> - <h5>Sidebar</h5> - <ul> - <li><a href="#">Link</a></li> - <li><a href="#">Link</a></li> - </ul> - </div> - - -#template("xwikivars.vm") -<!DOCTYPE html> -<html lang="$xcontext.language"> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=$xwiki.encoding" /> - - #if(!$title) - #set($title = $!xwiki.getSpacePreference('title')) - #if($title != '') - #set($title = "$escapetool.xml($xwiki.parseContent($title))") - #else - #set($title = "$escapetool.xml($!tdoc.displayTitle)") - #end - #else - #set($title = $escapetool.xml($title)) - #end - <title>$title</title> - - <meta name="description" content=""> - <meta name="author" content=""> - - ## --------------------------------------------------------------------------------------------------------------- - ## Define the default scripting language that is used for intrinsic events (e.g. onmouseover attributes). - ## --------------------------------------------------------------------------------------------------------------- - <meta http-equiv="Content-Script-Type" content="text/javascript" /> - - <meta http-equiv="imagetoolbar" content="no"/> - ## --------------------------------------------------------------------------------------------------------------- - ## Disable the toolbar that comes up when you mouse over an image in MSIE - ## --------------------------------------------------------------------------------------------------------------- - - ## --------------------------------------------------------------------------------------------------------------- - ## Make sure search engine spiders give the plain page instead of ?viewer=comments, ?viewer=code etc. - ## --------------------------------------------------------------------------------------------------------------- - <link rel="canonical" href="$doc.getURL('view')" /> - ## --------------------------------------------------------------------------------------------------------------- - ## Store the space name, page name, wiki name, full document name (for convenience since it can be reconstructed - ## from the individual wiki/space/page names), and other metadata, so that it can be accessed from Javascript code. - ## For example, to pass it to the server side using an Ajax query. - ## Usage example: var name = $$("meta[name='page']")[0].content; - ## --------------------------------------------------------------------------------------------------------------- - <meta name="document" content="$escapetool.xml($doc.fullName)"/> - <meta name="wiki" content="$escapetool.xml($doc.wiki)"/> - <meta name="space" content="$escapetool.xml($doc.space)"/> - <meta name="page" content="$escapetool.xml($doc.name)"/> - <meta name="version" content="$doc.version"/> - <meta name="restURL" content="${request.contextPath}/rest/wikis/${xcontext.database}/spaces/$escapetool.url(${doc.space})/pages/$escapetool.url(${doc.name})"/> - ## --------------------------------------------------------------------------------------------------------------- - ## Localize GWT applications. - ## --------------------------------------------------------------------------------------------------------------- - <meta name="gwt:property" content="locale=$!{xcontext.language}" /> - ## --------------------------------------------------------------------------------------------------------------- - ## Add user-defined Meta directives - ## --------------------------------------------------------------------------------------------------------------- - $xwiki.parseContent($!xwiki.getSpacePreference("meta")) - ## --------------------------------------------------------------------------------------------------------------- - ## Hook for inserting Link extensions. This will be replaced with the pulled link references. - ## --------------------------------------------------------------------------------------------------------------- - <!-- com.xpn.xwiki.plugin.skinx.LinkExtensionPlugin --> - - <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> - <!--[if lt IE 9]> - <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> - <![endif]--> - - <!-- Le styles --> - <link href="$xwiki.getSkinFile('bootstrap.css')" rel="stylesheet"> - <link href="$xwiki.getSkinFile('xwiki.css', true)" rel="stylesheet"> - <style type="text/css"> - body { - padding-top: 60px; - } - </style> - <link href="$xwiki.getSkinFile("uicomponents/suggest/suggest.css", true)" rel="stylesheet" type="text/css" /> - - ## Hook for inserting CSS skin extensions - <!-- com.xpn.xwiki.plugin.skinx.CssSkinExtensionPlugin --> - <!-- com.xpn.xwiki.plugin.skinx.CssSkinFileExtensionPlugin --> - - $xwiki.jsfx.use('uicomponents/widgets/list/xlist.js') - $xwiki.jsfx.use('uicomponents/suggest/suggest.js') - - <script type="text/javascript" src="$xwiki.getSkinFile("js/prototype/prototype.js")"></script> - <script type="text/javascript" src="$xwiki.getSkinFile("js/xwiki/xwiki.js", true)"></script> - <script type="text/javascript"> -// <![CDATA[ -document.observe("dom:loaded", function(event){ - document.fire("xwiki:dom:loaded", event.memo); -}); -XWiki.webapppath = "${xwiki.webAppPath}"; -XWiki.servletpath = "${xwiki.servletPath}"; -XWiki.contextPath = "${request.contextPath}"; -XWiki.mainWiki = "$!{escapetool.javascript(${xcontext.mainWikiName})}"; -XWiki.currentWiki = "$!{escapetool.javascript(${xcontext.database})}"; -XWiki.currentSpace = "$!{escapetool.javascript($doc.space)}"; -XWiki.currentPage = "$!{escapetool.javascript($doc.name)}"; -XWiki.editor = "$!{escapetool.javascript($editor)}"; -XWiki.viewer = "$!{escapetool.javascript($viewer)}"; -XWiki.contextaction = "${xcontext.getAction()}"; -XWiki.docisnew = $!doc.isNew(); -XWiki.docsyntax = "$!doc.getSyntax().toIdString()"; -XWiki.blacklistedSpaces = [ #foreach($space in $blacklistedSpaces)#if($velocityCount > 1),#end"$space"#end ]; -XWiki.hasEdit = $hasEdit; -XWiki.hasProgramming = $hasProgramming; -XWiki.hasBackupPackImportRights =#if ($xwiki.package) $xwiki.package.hasBackupPackImportRights()#else false#end; -window.docviewurl = "${doc.getURL('view')}"; -window.docediturl = "${doc.getURL('edit')}"; -window.docsaveurl = "${doc.getURL('save')}"; -window.docgeturl = "${doc.getURL('get')}"; -// ]]> - </script> - - - ## - ## Hooks for inserting JavaScript skin extensions - ## - ## - Skin file extension hook. Placed first since skin extensions might need to have xwiki or external libraries included first to be able to work properly - <!-- com.xpn.xwiki.plugin.skinx.JsSkinFileExtensionPlugin --> - ## - Skin extension hook - <!-- com.xpn.xwiki.plugin.skinx.JsSkinExtensionPlugin --> - - <!-- Le fav and touch icons --> - <link rel="shortcut icon" href="images/favicon.ico"> - <link rel="apple-touch-icon" href="$xwiki.getSkinFile('apple-touch-icon.png')"> - <link rel="apple-touch-icon" sizes="72x72" href="$xwiki.getSkinFile('apple-touch-icon-72x72.png')"> - <link rel="apple-touch-icon" sizes="114x114" href="$xwiki.getSkinFile('apple-touch-icon-114x114.png')"> - </head> - - <body> - - #template("topbar.vm") - - <div class="container-fluid"> - <div class="sidebar"> - #template('sidebar.vm') - </div> - <div class="content"> - - -<div class="topbar"> - <div class="topbar-inner"> - <div class="container-fluid"> - <a class="brand" href="#">$!xcontext.database</a> - <ul class="nav"> - <li class="active"><a href="#">Home</a></li> - <li><a href="#about">About</a></li> - <li><a href="#contact">Contact</a></li> - </ul> - #if(!$isGuest) - <p class="pull-right">Logged in as $xwiki.getUserName($xcontext.user, true)</p> - #else - #set ($loginurl = $xwiki.getURL('XWiki.XWikiLogin', 'login', "xredirect=$escapetool.url($xwiki.getRequestURL())")) - <p class="pull-right"><a href="$loginurl">Connexion</a></p> - #end - </div> - </div> -</div> - - - - - - - - -#template('colorThemeInit.vm') - -.clearfloats { - clear: both; - height: 1px; - margin: -1px 220px 0; - overflow: hidden; -} - -.hidden { - display: none !important; -} - -.invisible { - visibility: hidden !important; -} - -.loading { - background: transparent url("$xwiki.getSkinFile('icons/xwiki/spinner.gif')") no-repeat center; -} - -.separator { - color: $theme.textSecondaryColor; -} - -.column { - float: left; -} -.full { - /* Leave a bit of space for borders. */ - width: 99.8%; -} -.half { - /* Rounding errors with 50%, might end up with one more pixel which pushes the column down. */ - width: 49.9%; -} -.third { - /* Rounding errors with 33.3%, might end up with one more pixel which pushes the column down. */ - width: 33.2%; -} - -.avatar_30 { - max-width: 30px; - max-height: 30px; -} -* html .avatar_30 { - width: 30px; -} -.avatar_50 { - max-width: 50px; - max-height: 50px; -} -* html .avatar_50 { - width: 50px; -} -.avatar_120 { - max-width: 120px; - max-height: 120px; -} -* html .avatar_120 { - width: 120px; -} -th.avatar { - width: 50px; -} - -form div.activityContent { - margin-bottom:50px; -} - -#document-title h1 { - font-size: 36px; -} - -.edit_section { - display: block; - height: 24px; - line-height: 24px; - margin: -19px 0 0; - overflow: hidden; - position: relative; - visibility:hidden; -} - -.edit_section a { - background: transparent url("$xwiki.getSkinFile('icons/xwiki/edit-section.png')") no-repeat left top; - line-height: 999px; - margin: 0; - overflow: hidden; - padding: 0; - position: absolute; - right: 0; - top: 0; - visibility:visible; - width: 20px; -} - -/* @group COMPONENTS*/ -/* --------------XWiki items types list -----------------*/ -ul.xlist { - margin: 0 0 0 .5em !important; - overflow: hidden; - padding: 0 !important; -} - -ul.xlist li.xunderline { - border-bottom: solid 1px $theme.borderColor !important; -} - -ul.xlist li.xhighlight:hover { - background-color: $theme.highlightColor; -} - -ul.xlist li { - float: right; - height: 100%; - list-style-type: none; - padding-top: .2em; - width: 100% !important; -} - -ul.xlist li.space, ul.xlist li.page, ul.xlist li.comment, ul.xlist li.attachment { - background-position: 2px 3px; - background-repeat: no-repeat; -} - -ul.xlist li.space { - background-image: url("$xwiki.getSkinFile('icons/silk/folder.gif')"); -} - -ul.xlist li.page { - background-image: url("$xwiki.getSkinFile('icons/silk/page_white_text.gif')"); -} - -ul.xlist li.comment { - background-image: url("$xwiki.getSkinFile('icons/silk/comment.gif')"); -} - -ul.xlist li.attachment { - background-image: url("$xwiki.getSkinFile('icons/silk/attach.gif')"); - padding-bottom: 0; -} - -ul.xlist li.create a { - background: url("$xwiki.getSkinFile('icons/silk/bullet_add.gif')") 7px 3px no-repeat; - color: $theme.textSecondaryColor; - text-decoration: none; - padding-left: 1.5em; -} - -ul.xlist li.xitem div.xitemcontainer { - text-indent: 1.5em; -} - -ul.xlist li.xitem div.xitemcontainer ul.xlist { - text-indent: 0; -} - -.xspacer { - display: none; -} - -/* @group forms */ - -.xform fieldset { - margin: 2em 0; -} -.xform fieldset:first-of-type { - margin-top: 1em; -} -.xform fieldset:last-of-type { - margin-bottom: 1em; -} - -.xform input[type="text"], .xform input[type="password"] { - width: 99%; -} -/* Duplicated because IE6 chokes on the first two selectors. Don't recombine! */ -.xform select, .xform textarea { - width: 99%; -} - -/* @group VERTICAL MENU */ -/* General styling */ -.vertical-menu { - border: 1px solid $theme.borderColor; - border-top-width: 0; - float: left; - font-size: .857em;/* 14px -> 12px */ - margin: 0 2em 2em 0; - width: 15em; -} - -.vertical-menu ul { - list-style-type: none; - margin: 0; -} -.vertical-menu ul ul ul { - margin-left: 2em; -} - -.vertical-menu li { - border-top: 1px solid $theme.borderColor; - position: relative; -} - -.vertical-menu span { - background: none no-repeat scroll 7px transparent; - display: block; -} - -.vertical-menu a { - display: block; - padding: .5em .5em .5em 30px; - text-decoration: none; - word-wrap: break-word; -} - -/* Section titles */ -.vertical-menu .group { - background-color: $theme.panelCollapsedBackgroundColor; - font-weight: 700; - font-variant: small-caps; -} -.vertical-menu .group * { - color: $theme.panelCollapsedTextColor; -} - -/* Highlight items when hovering */ -.vertical-menu span:hover { - background-color: $theme.highlightColor; -} -.vertical-menu .group:hover { - background-color: $theme.panelHeaderBackgroundColor; -} -.vertical-menu .group:hover * { - color: $theme.panelHeaderTextColor; -} - -/* Selected item */ -.vertical-menu .current { - background-color: $theme.highlightColor; - font-weight: bold; -} -.vertical-menu .current-group { - background-color: $theme.panelHeaderBackgroundColor; - color: $theme.panelHeaderTextColor; -} -.vertical-menu .current-group *, .vertical-menu .current-group *:visited, .vertical-menu .current-group *:active { - color: $theme.panelHeaderTextColor; -} - -/* Draw an arrow pointing right for the selected item */ -.vertical-menu .current:after, .vertical-menu .current a:after { - border-left: 10px solid $theme.highlightColor; - border-top: 1.2em solid transparent; - border-bottom: 1.2em solid transparent; - content: ""; - display: block; - position: absolute; - right: -10px; - top: 0%; -} -.vertical-menu .current a:after { - border-left-color: $theme.borderColor; - right: -11px; -} -.vertical-menu .current-group:after { - border-left-color: $theme.panelHeaderBackgroundColor !important; -} - \ No newline at end of file diff --git a/src/main/resources/Lyrebird/Skin.xml b/src/main/resources/Lyrebird/Skin.xml new file mode 100644 index 0000000..9223dc9 --- /dev/null +++ b/src/main/resources/Lyrebird/Skin.xml @@ -0,0 +1,5261 @@ + + +Lyrebird +Skin + + +0 +XWiki.XWikiPreferences +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1167576476000 +1321903154000 +1321903154000 +5.8 + + + + +Updated class property name +true +xwiki/2.1 +false +patterns.less +22353 +XWiki.Admin +1321900318000 +1.2 +LyogUGF0dGVybnMubGVzcw0KICogUmVwZWF0YWJsZSBVSSBlbGVtZW50cyBvdXRzaWRlIHRoZSBi +YXNlIHN0eWxlcyBwcm92aWRlZCBmcm9tIHRoZSBzY2FmZm9sZGluZw0KICogLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLSAqLw0KDQoNCi8vIFRPUEJBUg0KLy8gLS0tLS0tDQoNCi8vIFRvcGJhciBmb3IgQnJh +bmRpbmcgYW5kIE5hdg0KLnRvcGJhciB7DQogIGhlaWdodDogNDBweDsNCiAgcG9zaXRpb246IGZp +eGVkOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIHJpZ2h0OiAwOw0KICB6LWluZGV4OiAxMDAw +MDsNCiAgb3ZlcmZsb3c6IHZpc2libGU7DQoNCiAgLy8gTGlua3MgZ2V0IHRleHQgc2hhZG93DQog +IGEgew0KICAgIGNvbG9yOiBAZ3JheUxpZ2h0Ow0KICAgIHRleHQtc2hhZG93OiAwIC0xcHggMCBy +Z2JhKDAsMCwwLC4yNSk7DQogIH0NCg0KICAvLyBIb3ZlciBhbmQgYWN0aXZlIHN0YXRlcw0KICAv +LyBoMyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkNCiAgaDMgYTpob3ZlciwNCiAgLmJyYW5k +OmhvdmVyLA0KICB1bCAuYWN0aXZlID4gYSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsN +CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4wNSk7DQogICAgY29sb3I6 +IEB3aGl0ZTsNCiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogIH0NCg0KICAvLyBXZWJzaXRl +IG5hbWUNCiAgLy8gaDMgbGVmdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkNCiAgaDMgew0K +ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgfQ0KICBoMyBhLA0KICAuYnJhbmQgew0KICAgIGZs +b2F0OiBsZWZ0Ow0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIHBhZGRpbmc6IDhweCAyMHB4IDEy +cHg7DQogICAgbWFyZ2luLWxlZnQ6IC0yMHB4OyAvLyBuZWdhdGl2ZSBpbmRlbnQgdG8gbGVmdC1h +bGlnbiB0aGUgdGV4dCBkb3duIHRoZSBwYWdlDQogICAgY29sb3I6IEB3aGl0ZTsNCiAgICBmb250 +LXNpemU6IDIwcHg7DQogICAgZm9udC13ZWlnaHQ6IDIwMDsNCiAgICBsaW5lLWhlaWdodDogMTsN +CiAgfQ0KDQogIC8vIFBsYWluIHRleHQgaW4gdG9wYmFyDQogIHAgew0KICAgIG1hcmdpbjogMDsN +CiAgICBsaW5lLWhlaWdodDogNDBweDsNCiAgICBhOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt +Y29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgY29sb3I6IEB3aGl0ZTsNCiAgICB9DQogIH0NCg0K +ICAvLyBTZWFyY2ggRm9ybQ0KICBmb3JtIHsNCiAgICBmbG9hdDogbGVmdDsNCiAgICBtYXJnaW46 +IDVweCAwIDAgMDsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgLm9wYWNpdHkoMTAwKTsN +CiAgfQ0KICAvLyBUb2RvOiByZW1vdmUgZnJvbSB2Mi4wIHdoZW4gcmVhZHksIGFkZGVkIGZvciBs +ZWdhY3kNCiAgZm9ybS5wdWxsLXJpZ2h0IHsNCiAgICBmbG9hdDogcmlnaHQ7DQogIH0NCiAgaW5w +dXQgew0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYmFja2dyb3VuZC1jb2xvcjog +cmdiYSgyNTUsMjU1LDI1NSwuMyk7DQogICAgI2ZvbnQgPiAuc2Fucy1zZXJpZigxM3B4LCBub3Jt +YWwsIDEpOw0KICAgIHBhZGRpbmc6IDRweCA5cHg7DQogICAgY29sb3I6IEB3aGl0ZTsNCiAgICBj +b2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNzUpOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkICMxMTE7 +DQogICAgLmJvcmRlci1yYWRpdXMoNHB4KTsNCiAgICBAc2hhZG93OiBpbnNldCAwIDFweCAycHgg +cmdiYSgwLDAsMCwuMSksIDAgMXB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4yNSk7DQogICAgLmJv +eC1zaGFkb3coQHNoYWRvdyk7DQogICAgLnRyYW5zaXRpb24obm9uZSk7DQoNCiAgICAvLyBQbGFj +ZWhvbGRlciB0ZXh0IGdldHMgc3BlY2lhbCBzdHlsZXM7IGNhbid0IGJlIGJ1bmRsZWQgdG9nZXRo +ZXIgdGhvdWdoIGZvciBzb21lIHJlYXNvbg0KICAgICY6LW1vei1wbGFjZWhvbGRlciB7DQogICAg +ICBjb2xvcjogQGdyYXlMaWdodGVyOw0KICAgIH0NCiAgICAmOjotd2Via2l0LWlucHV0LXBsYWNl +aG9sZGVyIHsNCiAgICAgIGNvbG9yOiBAZ3JheUxpZ2h0ZXI7DQogICAgfQ0KICAgIC8vIEhvdmVy +IHN0YXRlcw0KICAgICY6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXlMaWdo +dDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjUpOw0KICAgICAg +Y29sb3I6IEB3aGl0ZTsNCiAgICB9DQogICAgLy8gRm9jdXMgc3RhdGVzICh3ZSB1c2UgLmZvY3Vz +ZWQgc2luY2UgSUU4IGFuZCBkb3duIGRvZXNuJ3Qgc3VwcG9ydCA6Zm9jdXMpDQogICAgJjpmb2N1 +cywNCiAgICAmLmZvY3VzZWQgew0KICAgICAgb3V0bGluZTogMDsNCiAgICAgIGJhY2tncm91bmQt +Y29sb3I6IEB3aGl0ZTsNCiAgICAgIGNvbG9yOiBAZ3JheURhcms7DQogICAgICB0ZXh0LXNoYWRv +dzogMCAxcHggMCBAd2hpdGU7DQogICAgICBib3JkZXI6IDA7DQogICAgICBwYWRkaW5nOiA1cHgg +MTBweDsNCiAgICAgIC5ib3gtc2hhZG93KDAgMCAzcHggcmdiYSgwLDAsMCwuMTUpKTsNCiAgICB9 +DQogIH0NCn0NCg0KLy8gZ3JhZGllbnQgaXMgYXBwbGllZCB0byBpdCdzIG93biBlbGVtZW50IGJl +Y2F1c2Ugb3ZlcmZsb3cgdmlzaWJsZSBpcyBub3QgaG9ub3JlZCBieSBpZSB3aGVuIGZpbHRlciBp +cyBwcmVzZW50DQovLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGluY2x1ZGUgLnRvcGJh +ciAuZmlsbA0KLnRvcGJhci1pbm5lciwNCi50b3BiYXIgLmZpbGwgew0KICBiYWNrZ3JvdW5kLWNv +bG9yOiAjMjIyOw0KICAjZ3JhZGllbnQgPiAudmVydGljYWwoIzMzMywgIzIyMik7DQogIEBzaGFk +b3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4yNSksIGluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAs +LjEpOw0KICAuYm94LXNoYWRvdyhAc2hhZG93KTsNCn0NCg0KDQovLyBOQVZJR0FUSU9ODQovLyAt +LS0tLS0tLS0tDQoNCi8vIFRvcGJhciBOYXYNCi8vIHVsLm5hdiBmb3IgYWxsIHRvcGJhciBiYXNl +ZCBuYXZpZ2F0aW9uIHRvIGF2b2lkIGluaGVyaXRhbmNlIGlzc3VlcyBhbmQgb3Zlci1zcGVjaWZp +Y2l0eQ0KLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBsZWF2ZSBpbiAudG9wYmFyIGRp +diA+IHVsDQoudG9wYmFyIGRpdiA+IHVsLA0KLm5hdiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBm +bG9hdDogbGVmdDsNCiAgbWFyZ2luOiAwIDEwcHggMCAwOw0KICBwb3NpdGlvbjogcmVsYXRpdmU7 +DQogIGxlZnQ6IDA7DQogID4gbGkgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGZsb2F0OiBs +ZWZ0Ow0KICB9DQogIGEgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGZsb2F0OiBub25lOw0K +ICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMXB4Ow0KICAgIGxpbmUtaGVpZ2h0OiAxOXB4Ow0KICAg +IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAmOmhvdmVyIHsNCiAgICAgIGNvbG9yOiBAd2hp +dGU7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgfQ0KICB9DQogIC5hY3RpdmUg +PiBhIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICAgIGJhY2tncm91bmQtY29sb3I6 +IHJnYmEoMCwwLDAsLjUpOw0KICB9DQoNCiAgLy8gU2Vjb25kYXJ5IChmbG9hdGVkIHJpZ2h0KSBu +YXYgaW4gdG9wYmFyDQogICYuc2Vjb25kYXJ5LW5hdiB7DQogICAgZmxvYXQ6IHJpZ2h0Ow0KICAg +IG1hcmdpbi1sZWZ0OiAxMHB4Ow0KICAgIG1hcmdpbi1yaWdodDogMDsNCiAgICAvLyBiYWNrd2Fy +ZHMgY29tcGF0aWJpbGl0eQ0KICAgIC5tZW51LWRyb3Bkb3duLA0KICAgIC5kcm9wZG93bi1tZW51 +IHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm9yZGVyOiAwOw0KICAgIH0NCiAgfQ0KICAvLyBE +cm9wZG93bnMgd2l0aGluIHRoZSAubmF2DQogIC8vIGEubWVudTpob3ZlciBhbmQgbGkub3BlbiAu +bWVudSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkNCiAgYS5tZW51OmhvdmVyLA0KICBsaS5v +cGVuIC5tZW51LA0KICAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLA0KICAuZHJvcGRvd24ub3BlbiAu +ZHJvcGRvd24tdG9nZ2xlIHsNCiAgICBiYWNrZ3JvdW5kOiAjNDQ0Ow0KICAgIGJhY2tncm91bmQ6 +IHJnYmEoMjU1LDI1NSwyNTUsLjA1KTsNCiAgfQ0KICAvLyAubWVudS1kcm9wZG93biBmb3IgYmFj +a3dhcmRzIGNvbXBhdGliaWxpdHkNCiAgLm1lbnUtZHJvcGRvd24sDQogIC5kcm9wZG93bi1tZW51 +IHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOw0KICAgIC8vIGEubWVudSBmb3IgYmFja3dh +cmRzIGNvbXBhdGliaWxpdHkNCiAgICBhLm1lbnUsDQogICAgLmRyb3Bkb3duLXRvZ2dsZSB7DQog +ICAgICBjb2xvcjogQHdoaXRlOw0KICAgICAgJi5vcGVuIHsNCiAgICAgICAgYmFja2dyb3VuZDog +IzQ0NDsNCiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMDUpOw0KICAgICAg +fQ0KICAgIH0NCiAgICBsaSBhIHsNCiAgICAgIGNvbG9yOiAjOTk5Ow0KICAgICAgdGV4dC1zaGFk +b3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwuNSk7DQogICAgICAmOmhvdmVyIHsNCiAgICAgICAgI2dy +YWRpZW50ID4gLnZlcnRpY2FsKCMyOTI5MjksIzE5MTkxOSk7DQogICAgICAgIGNvbG9yOiBAd2hp +dGU7DQogICAgICB9DQogICAgfQ0KICAgIC5hY3RpdmUgYSB7DQogICAgICBjb2xvcjogQHdoaXRl +Ow0KICAgIH0NCiAgICAuZGl2aWRlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0K +ICAgICAgYm9yZGVyLWNvbG9yOiAjNDQ0Ow0KICAgIH0NCiAgfQ0KfQ0KDQovLyBGb3IgYmFja3dh +cmRzIGNvbXBhdGliaWxpdHkgd2l0aCBuZXcgZHJvcGRvd25zLCByZWRlY2xhcmUgZHJvcGRvd24g +bGluayBwYWRkaW5nDQoudG9wYmFyIHVsIC5tZW51LWRyb3Bkb3duIGxpIGEsDQoudG9wYmFyIHVs +IC5kcm9wZG93bi1tZW51IGxpIGEgew0KICBwYWRkaW5nOiA0cHggMTVweDsNCn0NCg0KLy8gRHJv +cGRvd24gTWVudXMNCi8vIFVzZSB0aGUgLm1lbnUgY2xhc3Mgb24gYW55IDxsaT4gZWxlbWVudCB3 +aXRoaW4gdGhlIHRvcGJhciBvciB1bC50YWJzIGFuZCB5b3UnbGwgZ2V0IHNvbWUgc3VwZXJmYW5j +eSBkcm9wZG93bnMNCi8vIGxpLm1lbnUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5DQpsaS5t +ZW51LA0KLmRyb3Bkb3duIHsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KfQ0KLy8gVGhlIGxpbmsg +dGhhdCBpcyBjbGlja2VkIHRvIHRvZ2dsZSB0aGUgZHJvcGRvd24NCi8vIGEubWVudSBmb3IgYmFj +a3dhcmRzIGNvbXBhdGliaWxpdHkNCmEubWVudTphZnRlciwNCi5kcm9wZG93bi10b2dnbGU6YWZ0 +ZXIgew0KICB3aWR0aDogMDsNCiAgaGVpZ2h0OiAwOw0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 +DQogIGNvbnRlbnQ6ICImZGFycjsiOw0KICB0ZXh0LWluZGVudDogLTk5OTk5cHg7DQogIHZlcnRp +Y2FsLWFsaWduOiB0b3A7DQogIG1hcmdpbi10b3A6IDhweDsNCiAgbWFyZ2luLWxlZnQ6IDRweDsN +CiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgYm9yZGVyLXJpZ2h0OiA0 +cHggc29saWQgdHJhbnNwYXJlbnQ7DQogIGJvcmRlci10b3A6IDRweCBzb2xpZCBAd2hpdGU7DQog +IC5vcGFjaXR5KDUwKTsNCn0NCi8vIFRoZSBkcm9wZG93biBtZW51ICh1bCkNCi8vIC5tZW51LWRy +b3Bkb3duIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KLm1lbnUtZHJvcGRvd24sDQouZHJv +cGRvd24tbWVudSB7DQogIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZTsNCiAgZmxvYXQ6IGxlZnQ7 +DQogIGRpc3BsYXk6IG5vbmU7IC8vIE5vbmUgYnkgZGVmYXVsdCwgYnV0IGJsb2NrIG9uICJvcGVu +IiBvZiB0aGUgbWVudQ0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHRvcDogNDBweDsNCiAgei1p +bmRleDogOTAwOw0KICBtaW4td2lkdGg6IDE2MHB4Ow0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBf +d2lkdGg6IDE2MHB4Ow0KICBtYXJnaW4tbGVmdDogMDsgLy8gb3ZlcnJpZGUgZGVmYXVsdCB1bCBz +dHlsZXMNCiAgbWFyZ2luLXJpZ2h0OiAwOw0KICBwYWRkaW5nOiA2cHggMDsNCiAgem9vbTogMTsg +Ly8gZG8gd2UgbmVlZCB0aGlzPw0KICBib3JkZXItY29sb3I6ICM5OTk7DQogIGJvcmRlci1jb2xv +cjogcmdiYSgwLDAsMCwuMik7DQogIGJvcmRlci1zdHlsZTogc29saWQ7DQogIGJvcmRlci13aWR0 +aDogMCAxcHggMXB4Ow0KICAuYm9yZGVyLXJhZGl1cygwIDAgNnB4IDZweCk7DQogIC5ib3gtc2hh +ZG93KDAgMnB4IDRweCByZ2JhKDAsMCwwLC4yKSk7DQogIC5iYWNrZ3JvdW5kLWNsaXAocGFkZGlu +Zy1ib3gpOw0KDQogIC8vIFVuZmxvYXQgYW55IGxpJ3MgdG8gbWFrZSB0aGVtIHN0YWNrDQogIGxp +IHsNCiAgICBmbG9hdDogbm9uZTsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBiYWNrZ3JvdW5k +LWNvbG9yOiBub25lOw0KICB9DQogIC8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhp +biB0aGUgZHJvcGRvd24NCiAgLmRpdmlkZXIgew0KICAgIGhlaWdodDogMXB4Ow0KICAgIG1hcmdp +bjogNXB4IDA7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj +ZWVlOw0KICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAd2hpdGU7DQogIH0NCn0NCg0KLnRv +cGJhciAuZHJvcGRvd24tbWVudSwNCi5kcm9wZG93bi1tZW51IHsNCiAgLy8gTGlua3Mgd2l0aGlu +IHRoZSBkcm9wZG93biBtZW51DQogIGEgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIHBhZGRp +bmc6IDRweCAxNXB4Ow0KICAgIGNsZWFyOiBib3RoOw0KICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7 +DQogICAgbGluZS1oZWlnaHQ6IDE4cHg7DQogICAgY29sb3I6IEBncmF5Ow0KICAgIHRleHQtc2hh +ZG93OiAwIDFweCAwIEB3aGl0ZTsNCiAgICAvLyBIb3ZlciBzdGF0ZQ0KICAgICY6aG92ZXIsDQog +ICAgJi5ob3ZlciB7DQogICAgICAjZ3JhZGllbnQgPiAudmVydGljYWwoI2VlZWVlZSwgI2RkZGRk +ZCk7DQogICAgICBjb2xvcjogQGdyYXlEYXJrOw0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25l +Ow0KICAgICAgQHNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDAsMCwwLC4wMjUpLCBpbnNldCAw +IC0xcHggcmdiYSgwLDAsMCwuMDI1KTsNCiAgICAgIC5ib3gtc2hhZG93KEBzaGFkb3cpOw0KICAg +IH0NCiAgfQ0KfQ0KDQovLyBPcGVuIHN0YXRlIGZvciB0aGUgZHJvcGRvd24NCi8vIC5vcGVuIGZv +ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KLm9wZW4sDQouZHJvcGRvd24ub3BlbiB7DQogIC8v +IC5tZW51IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KICAubWVudSwNCiAgLmRyb3Bkb3du +LXRvZ2dsZSB7DQogICAgY29sb3I6IEB3aGl0ZTsNCiAgICBiYWNrZ3JvdW5kOiAjY2NjOw0KICAg +IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjMpOw0KICB9DQogIC8vIC5tZW51LWRyb3Bkb3duIGZv +ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KICAubWVudS1kcm9wZG93biwNCiAgLmRyb3Bkb3du +LW1lbnUgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICB9DQp9DQoNCg0KLy8gVEFCUyBBTkQgUElM +TFMNCi8vIC0tLS0tLS0tLS0tLS0tDQoNCi8vIENvbW1vbiBzdHlsZXMNCi50YWJzLA0KLnBpbGxz +IHsNCiAgbWFyZ2luOiAwIDAgQGJhc2VsaW5lOw0KICBwYWRkaW5nOiAwOw0KICBsaXN0LXN0eWxl +OiBub25lOw0KICAuY2xlYXJmaXgoKTsNCiAgPiBsaSB7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAg +PiBhIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCiAgfQ0KfQ0KDQovLyBUYWJzDQou +dGFicyB7DQogIGJvcmRlci1jb2xvcjogI2RkZDsNCiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsNCiAg +Ym9yZGVyLXdpZHRoOiAwIDAgMXB4Ow0KICA+IGxpIHsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7 +IC8vIEZvciB0aGUgZHJvcGRvd25zIG1vc3RseQ0KICAgIG1hcmdpbi1ib3R0b206IC0xcHg7DQog +ICAgPiBhIHsNCiAgICAgIHBhZGRpbmc6IDAgMTVweDsNCiAgICAgIG1hcmdpbi1yaWdodDogMnB4 +Ow0KICAgICAgbGluZS1oZWlnaHQ6IChAYmFzZWxpbmUgKiAyKSAtIDI7DQogICAgICBib3JkZXI6 +IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICAgIC5ib3JkZXItcmFkaXVzKDRweCA0cHggMCAw +KTsNCiAgICAgICY6aG92ZXIgew0KICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAg +ICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7DQogICAgICAgIGJvcmRlci1jb2xvcjogI2VlZSAj +ZWVlICNkZGQ7DQogICAgICB9DQogICAgfQ0KICB9DQogIC8vIEFjdGl2ZSBzdGF0ZSwgYW5kIGl0 +J3MgOmhvdmVyIHRvIG92ZXJyaWRlIG5vcm1hbCA6aG92ZXINCiAgLmFjdGl2ZSA+IGEsDQogIC5h +Y3RpdmUgPiBhOmhvdmVyIHsNCiAgICBjb2xvcjogQGdyYXk7DQogICAgYmFja2dyb3VuZC1jb2xv +cjogQHdoaXRlOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7DQogICAgYm9yZGVyLWJvdHRv +bS1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgY3Vyc29yOiBkZWZhdWx0Ow0KICB9DQp9DQoNCi8v +IERyb3Bkb3ducyBpbiB0YWJzDQoudGFicyB7DQogIC8vIGZpcnN0IG9uZSBmb3IgYmFja3dhcmRz +IGNvbXBhdGliaWxpdHkNCiAgLm1lbnUtZHJvcGRvd24sDQogIC5kcm9wZG93bi1tZW51IHsNCiAg +ICB0b3A6IDM1cHg7DQogICAgYm9yZGVyLXdpZHRoOiAxcHg7DQogICAgLmJvcmRlci1yYWRpdXMo +MCA2cHggNnB4IDZweCk7DQogIH0NCiAgLy8gZmlyc3Qgb25lIGZvciBiYWNrd2FyZHMgY29tcGF0 +aWJpbGl0eQ0KICBhLm1lbnU6YWZ0ZXIsDQogIC5kcm9wZG93bi10b2dnbGU6YWZ0ZXIgew0KICAg +IGJvcmRlci10b3AtY29sb3I6ICM5OTk7DQogICAgbWFyZ2luLXRvcDogMTVweDsNCiAgICBtYXJn +aW4tbGVmdDogNXB4Ow0KICB9DQogIC8vIGZpcnN0IG9uZSBmb3IgYmFja3dhcmRzIGNvbXBhdGli +aWxpdHkNCiAgbGkub3Blbi5tZW51IC5tZW51LA0KICAub3Blbi5kcm9wZG93biAuZHJvcGRvd24t +dG9nZ2xlIHsNCiAgICBib3JkZXItY29sb3I6ICM5OTk7DQogIH0NCiAgLy8gZmlyc3Qgb25lIGZv +ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KICBsaS5vcGVuIGEubWVudTphZnRlciwNCiAgLmRy +b3Bkb3duLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZTphZnRlciB7DQogICAgYm9yZGVyLXRvcC1jb2xv +cjogIzU1NTsNCiAgfQ0KfQ0KDQovLyBQaWxscw0KLnBpbGxzIHsNCiAgYSB7DQogICAgbWFyZ2lu +OiA1cHggM3B4IDVweCAwOw0KICAgIHBhZGRpbmc6IDAgMTVweDsNCiAgICBsaW5lLWhlaWdodDog +MzBweDsNCiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IEB3aGl0ZTsNCiAgICAuYm9yZGVyLXJh +ZGl1cygxNXB4KTsNCiAgICAmOmhvdmVyIHsNCiAgICAgIGNvbG9yOiBAd2hpdGU7DQogICAgICB0 +ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEo +MCwwLDAsLjI1KTsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBsaW5rQ29sb3JIb3ZlcjsNCiAg +ICB9DQogIH0NCiAgLmFjdGl2ZSBhIHsNCiAgICBjb2xvcjogQHdoaXRlOw0KICAgIHRleHQtc2hh +ZG93OiAwIDFweCAxcHggcmdiYSgwLDAsMCwuMjUpOw0KICAgIGJhY2tncm91bmQtY29sb3I6IEBs +aW5rQ29sb3I7DQogIH0NCn0NCg0KLy8gU3RhY2tlZCBwaWxscw0KLnBpbGxzLXZlcnRpY2FsID4g +bGkgew0KICBmbG9hdDogbm9uZTsNCn0NCg0KLy8gVGFiYmFibGUgYXJlYXMNCi50YWItY29udGVu +dCwNCi5waWxsLWNvbnRlbnQgew0KfQ0KLnRhYi1jb250ZW50ID4gLnRhYi1wYW5lLA0KLnBpbGwt +Y29udGVudCA+IC5waWxsLXBhbmUsDQoudGFiLWNvbnRlbnQgPiBkaXYsDQoucGlsbC1jb250ZW50 +ID4gZGl2IHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCi50YWItY29udGVudCA+IC5hY3RpdmUsDQou +cGlsbC1jb250ZW50ID4gLmFjdGl2ZSB7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQoNCi8vIEJS +RUFEQ1JVTUJTDQovLyAtLS0tLS0tLS0tLQ0KDQouYnJlYWRjcnVtYiB7DQogIHBhZGRpbmc6IDdw +eCAxNHB4Ow0KICBtYXJnaW46IDAgMCBAYmFzZWxpbmU7DQogICNncmFkaWVudCA+IC52ZXJ0aWNh +bCgjZmZmZmZmLCAjZjVmNWY1KTsNCiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsNCiAgLmJvcmRl +ci1yYWRpdXMoM3B4KTsNCiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMCBAd2hpdGUpOw0KICBs +aSB7DQogICAgZGlzcGxheTogaW5saW5lOw0KICAgIHRleHQtc2hhZG93OiAwIDFweCAwIEB3aGl0 +ZTsNCiAgfQ0KICAuZGl2aWRlciB7DQogICAgcGFkZGluZzogMCA1cHg7DQogICAgY29sb3I6IEBn +cmF5TGlnaHQ7DQogIH0NCiAgLmFjdGl2ZSBhIHsNCiAgICBjb2xvcjogQGdyYXlEYXJrOw0KICB9 +DQp9DQoNCg0KLy8gUEFHRSBIRUFERVJTDQovLyAtLS0tLS0tLS0tLS0NCg0KLmhlcm8tdW5pdCB7 +DQogIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7DQogIG1hcmdpbi1ib3R0b206IDMwcHg7DQog +IHBhZGRpbmc6IDYwcHg7DQogIC5ib3JkZXItcmFkaXVzKDZweCk7DQogIGgxIHsNCiAgICBtYXJn +aW4tYm90dG9tOiAwOw0KICAgIGZvbnQtc2l6ZTogNjBweDsNCiAgICBsaW5lLWhlaWdodDogMTsN +CiAgICBsZXR0ZXItc3BhY2luZzogLTFweDsNCiAgfQ0KICBwIHsNCiAgICBmb250LXNpemU6IDE4 +cHg7DQogICAgZm9udC13ZWlnaHQ6IDIwMDsNCiAgICBsaW5lLWhlaWdodDogQGJhc2VsaW5lICog +MS41Ow0KICB9DQp9DQpmb290ZXIgew0KICBtYXJnaW4tdG9wOiBAYmFzZWxpbmUgLSAxOw0KICBw +YWRkaW5nLXRvcDogQGJhc2VsaW5lIC0gMTsNCiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7 +DQp9DQoNCg0KLy8gUEFHRSBIRUFERVJTDQovLyAtLS0tLS0tLS0tLS0NCg0KLnBhZ2UtaGVhZGVy +IHsNCiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC0gMTsNCiAgYm9yZGVyLWJvdHRvbTogMXB4 +IHNvbGlkICNkZGQ7DQogIC5ib3gtc2hhZG93KDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuNSkp +Ow0KICBoMSB7DQogICAgbWFyZ2luLWJvdHRvbTogKEBiYXNlbGluZSAvIDIpIC0gMXB4Ow0KICB9 +DQp9DQoNCg0KLy8gQlVUVE9OIFNUWUxFUw0KLy8gLS0tLS0tLS0tLS0tLQ0KDQovLyBTaGFyZWQg +Y29sb3JzIGZvciBidXR0b25zIGFuZCBhbGVydHMNCi5idG4sDQouYWxlcnQtbWVzc2FnZSB7DQog +IC8vIFNldCB0ZXh0IGNvbG9yDQogICYuZGFuZ2VyLA0KICAmLmRhbmdlcjpob3ZlciwNCiAgJi5l +cnJvciwNCiAgJi5lcnJvcjpob3ZlciwNCiAgJi5zdWNjZXNzLA0KICAmLnN1Y2Nlc3M6aG92ZXIs +DQogICYuaW5mbywNCiAgJi5pbmZvOmhvdmVyIHsNCiAgICBjb2xvcjogQHdoaXRlDQogIH0NCiAg +Ly8gU2V0cyB0aGUgY2xvc2UgYnV0dG9uIHRvIHRoZSBtaWRkbGUgb2YgbWVzc2FnZQ0KICAuY2xv +c2V7DQogICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOw0KICAgIGxpbmUtaGVpZ2h0 +OiAxOHB4Ow0KICB9DQogIC8vIERhbmdlciBhbmQgZXJyb3IgYXBwZWFyIGFzIHJlZA0KICAmLmRh +bmdlciwNCiAgJi5lcnJvciB7DQogICAgLmdyYWRpZW50QmFyKCNlZTVmNWIsICNjNDNjMzUpOw0K +ICB9DQogIC8vIFN1Y2Nlc3MgYXBwZWFycyBhcyBncmVlbg0KICAmLnN1Y2Nlc3Mgew0KICAgIC5n +cmFkaWVudEJhcigjNjJjNDYyLCAjNTdhOTU3KTsNCiAgfQ0KICAvLyBJbmZvIGFwcGVhcnMgYXMg +YSBuZXV0cmFsIGJsdWUNCiAgJi5pbmZvIHsNCiAgICAuZ3JhZGllbnRCYXIoIzViYzBkZSwgIzMz +OWJiOSk7DQogIH0NCn0NCg0KLy8gQmFzZSAuYnRuIHN0eWxlcw0KLmJ0biB7DQogIC8vIEJ1dHRv +biBCYXNlDQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAj +Z3JhZGllbnQgPiAudmVydGljYWwtdGhyZWUtY29sb3JzKCNmZmZmZmYsICNmZmZmZmYsIDI1JSwg +ZGFya2VuKCNmZmZmZmYsIDEwJSkpOyAvLyBEb24ndCB1c2UgLmdyYWRpZW50YmFyKCkgaGVyZSBz +aW5jZSBpdCBkb2VzIGEgdGhyZWUtY29sb3IgZ3JhZGllbnQNCiAgcGFkZGluZzogNXB4IDE0cHgg +NnB4Ow0KICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjc1KTsNCiAg +Y29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogQGJhc2Vmb250Ow0KICBsaW5lLWhlaWdodDogbm9y +bWFsOw0KICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KICBib3JkZXItYm90dG9tLWNvbG9yOiAj +YmJiOw0KICAuYm9yZGVyLXJhZGl1cyg0cHgpOw0KICBAc2hhZG93OiBpbnNldCAwIDFweCAwIHJn +YmEoMjU1LDI1NSwyNTUsLjIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwuMDUpOw0KICAuYm94LXNo +YWRvdyhAc2hhZG93KTsNCg0KICAmOmhvdmVyIHsNCiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAw +IC0xNXB4Ow0KICAgIGNvbG9yOiAjMzMzOw0KICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAg +fQ0KDQogIC8vIEZvY3VzIHN0YXRlIGZvciBrZXlib2FyZCBhbmQgYWNjZXNzaWJpbGl0eQ0KICAm +OmZvY3VzIHsNCiAgICBvdXRsaW5lOiAxcHggZG90dGVkICM2NjY7DQogIH0NCg0KICAvLyBQcmlt +YXJ5IEJ1dHRvbiBUeXBlDQogICYucHJpbWFyeSB7DQogICAgY29sb3I6IEB3aGl0ZTsNCiAgICAu +Z3JhZGllbnRCYXIoQGJsdWUsIEBibHVlRGFyaykNCiAgfQ0KDQogICAvLyBUcmFuc2l0aW9ucw0K +ICAudHJhbnNpdGlvbiguMXMgbGluZWFyIGFsbCk7DQoNCiAgLy8gQWN0aXZlIGFuZCBEaXNhYmxl +ZCBzdGF0ZXMNCiAgJi5hY3RpdmUsDQogICY6YWN0aXZlIHsNCiAgICBAc2hhZG93OiBpbnNldCAw +IDJweCA0cHggcmdiYSgwLDAsMCwuMjUpLCAwIDFweCAycHggcmdiYSgwLDAsMCwuMDUpOw0KICAg +IC5ib3gtc2hhZG93KEBzaGFkb3cpOw0KICB9DQogICYuZGlzYWJsZWQgew0KICAgIGN1cnNvcjog +ZGVmYXVsdDsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOw0KICAgIC5yZXNldC1maWx0ZXIo +KTsNCiAgICAub3BhY2l0eSg2NSk7DQogICAgLmJveC1zaGFkb3cobm9uZSk7DQogIH0NCiAgJltk +aXNhYmxlZF0gew0KICAgIC8vIGRpc2FibGVkIHBzZXVkbyBjYW4ndCBiZSBpbmNsdWRlZCB3aXRo +IC5kaXNhYmxlZA0KICAgIC8vIGRlZiBiZWNhdXNlIElFOCBhbmQgYmVsb3cgd2lsbCBkcm9wIGl0 +IDtfOw0KICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOw0K +ICAgIC5yZXNldC1maWx0ZXIoKTsNCiAgICAub3BhY2l0eSg2NSk7DQogICAgLmJveC1zaGFkb3co +bm9uZSk7DQogIH0NCg0KICAvLyBCdXR0b24gU2l6ZXMNCiAgJi5sYXJnZSB7DQogICAgZm9udC1z +aXplOiBAYmFzZWZvbnQgKyAycHg7DQogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCiAgICBwYWRk +aW5nOiA5cHggMTRweCA5cHg7DQogICAgLmJvcmRlci1yYWRpdXMoNnB4KTsNCiAgfQ0KICAmLnNt +YWxsIHsNCiAgICBwYWRkaW5nOiA3cHggOXB4IDdweDsNCiAgICBmb250LXNpemU6IEBiYXNlZm9u +dCAtIDJweDsNCiAgfQ0KfQ0KLy8gU3VwZXIgamFuayBoYWNrIGZvciByZW1vdmluZyBib3JkZXIt +cmFkaXVzIGZyb20gSUU5IHNvIHdlIGNhbiBrZWVwIGZpbHRlciBncmFkaWVudHMgb24gYWxlcnRz +IGFuZCBidXR0b25zDQo6cm9vdCAuYWxlcnQtbWVzc2FnZSwNCjpyb290IC5idG4gew0KICBib3Jk +ZXItcmFkaXVzOiAwIFwwOw0KfQ0KDQovLyBIZWxwIEZpcmVmb3ggbm90IGJlIGEgamVyayBhYm91 +dCBhZGRpbmcgZXh0cmEgcGFkZGluZyB0byBidXR0b25zDQpidXR0b24uYnRuLA0KaW5wdXRbdHlw +ZT1zdWJtaXRdLmJ0biB7DQogICY6Oi1tb3otZm9jdXMtaW5uZXIgew0KICAJcGFkZGluZzogMDsN +CiAgCWJvcmRlcjogMDsNCiAgfQ0KfQ0KDQoNCi8vIENMT1NFIElDT05TDQovLyAtLS0tLS0tLS0t +LQ0KLmNsb3NlIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBjb2xvcjogQGJsYWNrOw0KICBmb250LXNp +emU6IDIwcHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBsaW5lLWhlaWdodDogQGJhc2VsaW5l +ICogLjc1Ow0KICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDEpOw0KICAu +b3BhY2l0eSgyNSk7DQogICY6aG92ZXIgew0KICAgIGNvbG9yOiBAYmxhY2s7DQogICAgdGV4dC1k +ZWNvcmF0aW9uOiBub25lOw0KICAgIC5vcGFjaXR5KDQwKTsNCiAgfQ0KfQ0KDQoNCi8vIEVSUk9S +IFNUWUxFUw0KLy8gLS0tLS0tLS0tLS0tDQoNCi8vIEJhc2UgYWxlcnQgc3R5bGVzDQouYWxlcnQt +bWVzc2FnZSB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogN3B4IDE1cHg7DQog +IG1hcmdpbi1ib3R0b206IEBiYXNlbGluZTsNCiAgY29sb3I6IEBncmF5RGFyazsNCiAgLmdyYWRp +ZW50QmFyKCNmY2VlYzEsICNlZWRjOTQpOyAvLyB3YXJuaW5nIGJ5IGRlZmF1bHQNCiAgdGV4dC1z +aGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuNSk7DQogIGJvcmRlci13aWR0aDogMXB4 +Ow0KICBib3JkZXItc3R5bGU6IHNvbGlkOw0KICAuYm9yZGVyLXJhZGl1cyg0cHgpOw0KICAuYm94 +LXNoYWRvdyhpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjI1KSk7DQoNCiAgLy8gQWRq +dXN0IGNsb3NlIGljb24NCiAgLmNsb3NlIHsNCiAgICBtYXJnaW4tdG9wOiAxcHg7DQogICAgKm1h +cmdpbi10b3A6IDA7IC8vIEZvciBJRTcNCiAgfQ0KDQogIC8vIE1ha2UgbGlua3Mgc2FtZSBjb2xv +ciBhcyB0ZXh0IGFuZCBzdGFuZCBvdXQgbW9yZQ0KICBhIHsNCiAgICBmb250LXdlaWdodDogYm9s +ZDsNCiAgICBjb2xvcjogQGdyYXlEYXJrOw0KICB9DQogICYuZGFuZ2VyIHAgYSwNCiAgJi5lcnJv +ciBwIGEsDQogICYuc3VjY2VzcyBwIGEsDQogICYuaW5mbyBwIGEgew0KICAgIGNvbG9yOiBAd2hp +dGU7DQogIH0NCg0KICAvLyBSZW1vdmUgZXh0cmEgbWFyZ2luIGZyb20gY29udGVudA0KICBoNSB7 +DQogICAgbGluZS1oZWlnaHQ6IEBiYXNlbGluZTsNCiAgfQ0KICBwIHsNCiAgICBtYXJnaW4tYm90 +dG9tOiAwOw0KICB9DQogIGRpdiB7DQogICAgbWFyZ2luLXRvcDogNXB4Ow0KICAgIG1hcmdpbi1i +b3R0b206IDJweDsNCiAgICBsaW5lLWhlaWdodDogMjhweDsNCiAgfQ0KICAuYnRuIHsNCiAgICAv +LyBQcm92aWRlIGFjdGlvbnMgd2l0aCBidXR0b25zDQogICAgLmJveC1zaGFkb3coMCAxcHggMCBy +Z2JhKDI1NSwyNTUsMjU1LC4yNSkpOw0KICB9DQoNCiAgJi5ibG9jay1tZXNzYWdlIHsNCiAgICBi +YWNrZ3JvdW5kLWltYWdlOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oI2Zj +ZWVjMSwgNSUpOw0KICAgIC5yZXNldC1maWx0ZXIoKTsNCiAgICBwYWRkaW5nOiAxNHB4Ow0KICAg +IGJvcmRlci1jb2xvcjogI2ZjZWVjMTsNCiAgICAuYm94LXNoYWRvdyhub25lKTsNCiAgICB1bCwg +cCB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7DQogICAgfQ0KICAgIHVsIHsNCiAgICAgIG1h +cmdpbi1ib3R0b206IDA7DQogICAgfQ0KICAgIGxpIHsNCiAgICAgIGNvbG9yOiBAZ3JheURhcms7 +DQogICAgfQ0KICAgIC5hbGVydC1hY3Rpb25zIHsNCiAgICAgIG1hcmdpbi10b3A6IDVweDsNCiAg +ICB9DQogICAgJi5lcnJvciwNCiAgICAmLnN1Y2Nlc3MsDQogICAgJi5pbmZvIHsNCiAgICAgIGNv +bG9yOiBAZ3JheURhcms7DQogICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwyNTUs +MjU1LC41KTsNCiAgICB9DQogICAgJi5lcnJvciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBs +aWdodGVuKCNmNTZhNjYsIDI1JSk7DQogICAgICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oI2Y1NmE2 +NiwgMjAlKTsNCiAgICB9DQogICAgJi5zdWNjZXNzIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 +IGxpZ2h0ZW4oIzYyYzQ2MiwgMzAlKTsNCiAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigjNjJj +NDYyLCAyNSUpOw0KICAgIH0NCiAgICAmLmluZm8gew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog +bGlnaHRlbigjNmJkMGVlLCAyNSUpOw0KICAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCM2YmQw +ZWUsIDIwJSk7DQogICAgfQ0KICAgIC8vIENoYW5nZSBsaW5rIGNvbG9yIGJhY2sNCiAgICAmLmRh +bmdlciBwIGEsDQogICAgJi5lcnJvciBwIGEsDQogICAgJi5zdWNjZXNzIHAgYSwNCiAgICAmLmlu +Zm8gcCBhIHsNCiAgICAgIGNvbG9yOiBAZ3JheURhcms7DQogICAgfQ0KDQogIH0NCn0NCg0KDQov +LyBQQUdJTkFUSU9ODQovLyAtLS0tLS0tLS0tDQoNCi5wYWdpbmF0aW9uIHsNCiAgaGVpZ2h0OiBA +YmFzZWxpbmUgKiAyOw0KICBtYXJnaW46IEBiYXNlbGluZSAwOw0KICB1bCB7DQogICAgZmxvYXQ6 +IGxlZnQ7DQogICAgbWFyZ2luOiAwOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7DQogICAg +Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpOw0KICAgIC5ib3JkZXItcmFkaXVzKDNw +eCk7DQogICAgLmJveC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KSk7DQogIH0NCiAg +bGkgew0KICAgIGRpc3BsYXk6IGlubGluZTsNCiAgfQ0KICBhIHsNCiAgICBmbG9hdDogbGVmdDsN +CiAgICBwYWRkaW5nOiAwIDE0cHg7DQogICAgbGluZS1oZWlnaHQ6IChAYmFzZWxpbmUgKiAyKSAt +IDI7DQogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7DQogICAgYm9yZGVyLXJpZ2h0LWNvbG9y +OiAjZGRkOw0KICAgIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLDAsMCwuMTUpOw0KICAgICpi +b3JkZXItcmlnaHQtY29sb3I6ICNkZGQ7IC8qIElFNi03ICovDQogICAgdGV4dC1kZWNvcmF0aW9u +OiBub25lOw0KICB9DQogIGE6aG92ZXIsDQogIC5hY3RpdmUgYSB7DQogICAgYmFja2dyb3VuZC1j +b2xvcjogbGlnaHRlbihAYmx1ZSwgNDUlKTsNCiAgfQ0KICAuZGlzYWJsZWQgYSwNCiAgLmRpc2Fi +bGVkIGE6aG92ZXIgew0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGNv +bG9yOiBAZ3JheUxpZ2h0Ow0KICB9DQogIC5uZXh0IGEgew0KICAgIGJvcmRlcjogMDsNCiAgfQ0K +fQ0KDQoNCi8vIFdFTExTDQovLyAtLS0tLQ0KDQoud2VsbCB7DQogIGJhY2tncm91bmQtY29sb3I6 +ICNmNWY1ZjU7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIHBhZGRpbmc6IDE5cHg7DQogIG1p +bi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7DQogIGJvcmRlcjogMXB4 +IHNvbGlkIHJnYmEoMCwwLDAsLjA1KTsNCiAgLmJvcmRlci1yYWRpdXMoNHB4KTsNCiAgLmJveC1z +aGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KSk7DQogIGJsb2NrcXVvdGUgew0K +ICAgIGJvcmRlci1jb2xvcjogI2RkZDsNCiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsLjE1 +KTsNCiAgfQ0KfQ0KDQoNCi8vIE1PREFMUw0KLy8gLS0tLS0tDQoNCi5tb2RhbC1iYWNrZHJvcCB7 +DQogIGJhY2tncm91bmQtY29sb3I6IEBibGFjazsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6 +IDA7DQogIGxlZnQ6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIHotaW5kZXg6IDEw +MDAwOw0KICAvLyBGYWRlIGZvciBiYWNrZHJvcA0KICAmLmZhZGUgeyBvcGFjaXR5OiAwOyB9DQp9 +DQoNCi5tb2RhbC1iYWNrZHJvcCwNCi5tb2RhbC1iYWNrZHJvcC5mYWRlLmluIHsNCiAgLm9wYWNp +dHkoODApOw0KfQ0KDQoubW9kYWwgew0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHRvcDogNTAlOw0K +ICBsZWZ0OiA1MCU7DQogIHotaW5kZXg6IDExMDAwOw0KICB3aWR0aDogNTYwcHg7DQogIG1hcmdp +bjogLTI1MHB4IDAgMCAtMjgwcHg7DQogIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZTsNCiAgYm9y +ZGVyOiAxcHggc29saWQgIzk5OTsNCiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMyk7 +DQogICpib3JkZXI6IDFweCBzb2xpZCAjOTk5OyAvKiBJRTYtNyAqLw0KICAuYm9yZGVyLXJhZGl1 +cyg2cHgpOw0KICAuYm94LXNoYWRvdygwIDNweCA3cHggcmdiYSgwLDAsMCwwLjMpKTsNCiAgLmJh +Y2tncm91bmQtY2xpcChwYWRkaW5nLWJveCk7DQogIC5jbG9zZSB7IG1hcmdpbi10b3A6IDdweDsg +fQ0KICAmLmZhZGUgew0KICAgIC50cmFuc2l0aW9uKGUoJ29wYWNpdHkgLjNzIGxpbmVhciwgdG9w +IC4zcyBlYXNlLW91dCcpKTsNCiAgICB0b3A6IC0yNSU7DQogIH0NCiAgJi5mYWRlLmluIHsgdG9w +OiA1MCU7IH0NCn0NCi5tb2RhbC1oZWFkZXIgew0KICBib3JkZXItYm90dG9tOiAxcHggc29saWQg +I2VlZTsNCiAgcGFkZGluZzogNXB4IDE1cHg7DQp9DQoubW9kYWwtYm9keSB7DQogIHBhZGRpbmc6 +IDE1cHg7DQp9DQoubW9kYWwtYm9keSBmb3JtIHsNCiAgbWFyZ2luLWJvdHRvbTogMDsNCn0NCi5t +b2RhbC1mb290ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1Ow0KICBwYWRkaW5nOiAx +NHB4IDE1cHggMTVweDsNCiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7DQogIC5ib3JkZXIt +cmFkaXVzKDAgMCA2cHggNnB4KTsNCiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMCBAd2hpdGUp +Ow0KICAuY2xlYXJmaXgoKTsNCiAgbWFyZ2luLWJvdHRvbTogMDsNCiAgLmJ0biB7DQogICAgZmxv +YXQ6IHJpZ2h0Ow0KICAgIG1hcmdpbi1sZWZ0OiA1cHg7DQogIH0NCn0NCg0KLy8gRml4IHRoZSBz +dGFja2luZyBvZiB0aGVzZSBjb21wb25lbnRzIHdoZW4gaW4gbW9kYWxzDQoubW9kYWwgLnBvcG92 +ZXIsDQoubW9kYWwgLnR3aXBzeSB7DQogIHotaW5kZXg6IDEyMDAwOw0KfQ0KDQoNCi8vIFBPUE9W +RVIgQVJST1dTDQovLyAtLS0tLS0tLS0tLS0tLQ0KDQojcG9wb3ZlckFycm93IHsNCiAgLmFib3Zl +KEBhcnJvd1dpZHRoOiA1cHgpIHsNCiAgICBib3R0b206IDA7DQogICAgbGVmdDogNTAlOw0KICAg +IG1hcmdpbi1sZWZ0OiAtQGFycm93V2lkdGg7DQogICAgYm9yZGVyLWxlZnQ6IEBhcnJvd1dpZHRo +IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1yaWdodDogQGFycm93V2lkdGggc29saWQg +dHJhbnNwYXJlbnQ7DQogICAgYm9yZGVyLXRvcDogQGFycm93V2lkdGggc29saWQgQGJsYWNrOw0K +ICB9DQogIC5sZWZ0KEBhcnJvd1dpZHRoOiA1cHgpIHsNCiAgICB0b3A6IDUwJTsNCiAgICByaWdo +dDogMDsNCiAgICBtYXJnaW4tdG9wOiAtQGFycm93V2lkdGg7DQogICAgYm9yZGVyLXRvcDogQGFy +cm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgYm9yZGVyLWJvdHRvbTogQGFycm93V2lk +dGggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgYm9yZGVyLWxlZnQ6IEBhcnJvd1dpZHRoIHNvbGlk +IEBibGFjazsNCiAgfQ0KICAuYmVsb3coQGFycm93V2lkdGg6IDVweCkgew0KICAgIHRvcDogMDsN +CiAgICBsZWZ0OiA1MCU7DQogICAgbWFyZ2luLWxlZnQ6IC1AYXJyb3dXaWR0aDsNCiAgICBib3Jk +ZXItbGVmdDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgYm9yZGVyLXJpZ2h0 +OiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICBib3JkZXItYm90dG9tOiBAYXJy +b3dXaWR0aCBzb2xpZCBAYmxhY2s7DQogIH0NCiAgLnJpZ2h0KEBhcnJvd1dpZHRoOiA1cHgpIHsN +CiAgICB0b3A6IDUwJTsNCiAgICBsZWZ0OiAwOw0KICAgIG1hcmdpbi10b3A6IC1AYXJyb3dXaWR0 +aDsNCiAgICBib3JkZXItdG9wOiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICBi +b3JkZXItYm90dG9tOiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICBib3JkZXIt +cmlnaHQ6IEBhcnJvd1dpZHRoIHNvbGlkIEBibGFjazsNCiAgfQ0KfQ0KDQovLyBUV0lQU1kNCi8v +IC0tLS0tLQ0KDQoudHdpcHN5IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIHBvc2l0aW9uOiBhYnNv +bHV0ZTsNCiAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgcGFkZGluZzogNXB4Ow0KICBmb250LXNp +emU6IDExcHg7DQogIHotaW5kZXg6IDEwMDA7DQogIC5vcGFjaXR5KDgwKTsNCiAgJi5mYWRlLmlu +IHsNCiAgICAub3BhY2l0eSg4MCk7DQogIH0NCiAgJi5hYm92ZSAudHdpcHN5LWFycm93ICAgeyAj +cG9wb3ZlckFycm93ID4gLmFib3ZlKCk7IH0NCiAgJi5sZWZ0IC50d2lwc3ktYXJyb3cgICAgeyAj +cG9wb3ZlckFycm93ID4gLmxlZnQoKTsgfQ0KICAmLmJlbG93IC50d2lwc3ktYXJyb3cgICB7ICNw +b3BvdmVyQXJyb3cgPiAuYmVsb3coKTsgfQ0KICAmLnJpZ2h0IC50d2lwc3ktYXJyb3cgICB7ICNw +b3BvdmVyQXJyb3cgPiAucmlnaHQoKTsgfQ0KfQ0KLnR3aXBzeS1pbm5lciB7DQogIHBhZGRpbmc6 +IDNweCA4cHg7DQogIGJhY2tncm91bmQtY29sb3I6IEBibGFjazsNCiAgY29sb3I6IHdoaXRlOw0K +ICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIG1heC13aWR0aDogMjAwcHg7DQogIHRleHQtZGVjb3Jh +dGlvbjogbm9uZTsNCiAgLmJvcmRlci1yYWRpdXMoNHB4KTsNCn0NCi50d2lwc3ktYXJyb3cgew0K +ICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHdpZHRoOiAwOw0KICBoZWlnaHQ6IDA7DQp9DQoNCg0K +Ly8gUE9QT1ZFUlMNCi8vIC0tLS0tLS0tDQoNCi5wb3BvdmVyIHsNCiAgcG9zaXRpb246IGFic29s +dXRlOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIHotaW5kZXg6IDEwMDA7DQogIHBhZGRpbmc6 +IDVweDsNCiAgZGlzcGxheTogbm9uZTsNCiAgJi5hYm92ZSAuYXJyb3cgeyAjcG9wb3ZlckFycm93 +ID4gLmFib3ZlKCk7IH0NCiAgJi5yaWdodCAuYXJyb3cgeyAjcG9wb3ZlckFycm93ID4gLnJpZ2h0 +KCk7IH0NCiAgJi5iZWxvdyAuYXJyb3cgeyAjcG9wb3ZlckFycm93ID4gLmJlbG93KCk7IH0NCiAg +Ji5sZWZ0IC5hcnJvdyAgeyAjcG9wb3ZlckFycm93ID4gLmxlZnQoKTsgfQ0KICAuYXJyb3cgew0K +ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB3aWR0aDogMDsNCiAgICBoZWlnaHQ6IDA7DQog +IH0NCiAgLmlubmVyIHsNCiAgICBiYWNrZ3JvdW5kOiBAYmxhY2s7DQogICAgYmFja2dyb3VuZDog +cmdiYSgwLDAsMCwuOCk7DQogICAgcGFkZGluZzogM3B4Ow0KICAgIG92ZXJmbG93OiBoaWRkZW47 +DQogICAgd2lkdGg6IDI4MHB4Ow0KICAgIC5ib3JkZXItcmFkaXVzKDZweCk7DQogICAgLmJveC1z +aGFkb3coMCAzcHggN3B4IHJnYmEoMCwwLDAsMC4zKSk7DQogIH0NCiAgLnRpdGxlIHsNCiAgICBi +YWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1Ow0KICAgIHBhZGRpbmc6IDlweCAxNXB4Ow0KICAgIGxp +bmUtaGVpZ2h0OiAxOw0KICAgIC5ib3JkZXItcmFkaXVzKDNweCAzcHggMCAwKTsNCiAgICBib3Jk +ZXItYm90dG9tOjFweCBzb2xpZCAjZWVlOw0KICB9DQogIC5jb250ZW50IHsNCiAgICBiYWNrZ3Jv +dW5kLWNvbG9yOiBAd2hpdGU7DQogICAgcGFkZGluZzogMTRweDsNCiAgICAuYm9yZGVyLXJhZGl1 +cygwIDAgM3B4IDNweCk7DQogICAgLmJhY2tncm91bmQtY2xpcChwYWRkaW5nLWJveCk7DQogICAg +cCwgdWwsIG9sIHsNCiAgICAgIG1hcmdpbi1ib3R0b206IDA7DQogICAgfQ0KICB9DQp9DQoNCg0K +Ly8gUEFUVEVSTiBBTklNQVRJT05TDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0NCg0KLmZhZGUgew0K +ICAudHJhbnNpdGlvbihvcGFjaXR5IC4xNXMgbGluZWFyKTsNCiAgb3BhY2l0eTogMDsNCiAgJi5p +biB7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQoNCi8vIExBQkVMUw0KLy8gLS0tLS0tDQoN +Ci5sYWJlbCB7DQogIHBhZGRpbmc6IDFweCAzcHggMnB4Ow0KICBmb250LXNpemU6IEBiYXNlZm9u +dCAqIC43NTsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogIGNvbG9yOiBAd2hpdGU7DQogIHRleHQt +dHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogIGJhY2tncm91 +bmQtY29sb3I6IEBncmF5TGlnaHQ7DQogIC5ib3JkZXItcmFkaXVzKDNweCk7DQogICYuaW1wb3J0 +YW50IHsgYmFja2dyb3VuZC1jb2xvcjogI2M0M2MzNTsgfQ0KICAmLndhcm5pbmcgICB7IGJhY2tn +cm91bmQtY29sb3I6IEBvcmFuZ2U7IH0NCiAgJi5zdWNjZXNzICAgeyBiYWNrZ3JvdW5kLWNvbG9y +OiBAZ3JlZW47IH0NCiAgJi5ub3RpY2UgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBi +bHVlLCAyNSUpOyB9DQp9DQoNCg0KLy8gTUVESUEgR1JJRFMNCi8vIC0tLS0tLS0tLS0tDQoNCi5t +ZWRpYS1ncmlkIHsNCiAgbWFyZ2luLWxlZnQ6IC1AZ3JpZEd1dHRlcldpZHRoOw0KICBtYXJnaW4t +Ym90dG9tOiAwOw0KICAuY2xlYXJmaXgoKTsNCiAgbGkgew0KICAgIGRpc3BsYXk6IGlubGluZTsN +CiAgfQ0KICBhIHsNCiAgICBmbG9hdDogbGVmdDsNCiAgICBwYWRkaW5nOiA0cHg7DQogICAgbWFy +Z2luOiAwIDAgQGJhc2VsaW5lIEBncmlkR3V0dGVyV2lkdGg7DQogICAgYm9yZGVyOiAxcHggc29s +aWQgI2RkZDsNCiAgICAuYm9yZGVyLXJhZGl1cyg0cHgpOw0KICAgIC5ib3gtc2hhZG93KDAgMXB4 +IDFweCByZ2JhKDAsMCwwLC4wNzUpKTsNCiAgICBpbWcgew0KICAgICAgZGlzcGxheTogYmxvY2s7 +DQogICAgfQ0KICAgICY6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiBAbGlua0NvbG9yOw0K +ICAgICAgLmJveC1zaGFkb3coMCAxcHggNHB4IHJnYmEoMCwxMDUsMjE0LC4yNSkpOw0KICAgIH0N +CiAgfQ0KfQ0K + +forms.less +9942 +XWiki.Admin +1321900318000 +1.2 +LyogRm9ybXMubGVzcw0KICogQmFzZSBzdHlsZXMgZm9yIHZhcmlvdXMgaW5wdXQgdHlwZXMsIGZv +cm0gbGF5b3V0cywgYW5kIHN0YXRlcw0KICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQoNCi8vIEZPUk0gU1RZTEVTDQov +LyAtLS0tLS0tLS0tLQ0KDQpmb3JtIHsNCiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lOw0KfQ0K +DQovLyBHcm91cHMgb2YgZmllbGRzIHdpdGggbGFiZWxzIG9uIHRvcCAobGVnZW5kcykNCmZpZWxk +c2V0IHsNCiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lOw0KICBwYWRkaW5nLXRvcDogQGJhc2Vs +aW5lOw0KICBsZWdlbmQgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIHBhZGRpbmctbGVmdDog +MTUwcHg7DQogICAgZm9udC1zaXplOiBAYmFzZWZvbnQgKiAxLjU7DQogICAgbGluZS1oZWlnaHQ6 +IDE7DQogICAgY29sb3I6IEBncmF5RGFyazsNCiAgICAqcGFkZGluZzogMCAwIDVweCAxNDVweDsg +LyogSUU2LTcgKi8NCiAgICAqbGluZS1oZWlnaHQ6IDEuNTsgLyogSUU2LTcgKi8NCiAgfQ0KfQ0K +DQovLyBQYXJlbnQgZWxlbWVudCB0aGF0IGNsZWFycyBmbG9hdHMgYW5kIHdyYXBzIGxhYmVscyBh +bmQgZmllbGRzIHRvZ2V0aGVyDQpmb3JtIC5jbGVhcmZpeCB7DQogIG1hcmdpbi1ib3R0b206IEBi +YXNlbGluZTsNCiAgLmNsZWFyZml4KCkNCn0NCg0KLy8gU2V0IGZvbnQgZm9yIGZvcm1zDQpsYWJl +bCwNCmlucHV0LA0Kc2VsZWN0LA0KdGV4dGFyZWEgew0KICAjZm9udCA+IC5zYW5zLXNlcmlmKG5v +cm1hbCwxM3B4LG5vcm1hbCk7DQp9DQoNCi8vIEZsb2F0IGxhYmVscyBsZWZ0DQpsYWJlbCB7DQog +IHBhZGRpbmctdG9wOiA2cHg7DQogIGZvbnQtc2l6ZTogQGJhc2Vmb250Ow0KICBsaW5lLWhlaWdo +dDogQGJhc2VsaW5lOw0KICBmbG9hdDogbGVmdDsNCiAgd2lkdGg6IDEzMHB4Ow0KICB0ZXh0LWFs +aWduOiByaWdodDsNCiAgY29sb3I6IEBncmF5RGFyazsNCn0NCg0KLy8gU2hpZnQgb3ZlciB0aGUg +aW5zaWRlIGRpdiB0byBhbGlnbiBhbGwgbGFiZWwncyByZWxldmFudCBjb250ZW50DQpmb3JtIC5p +bnB1dCB7DQogIG1hcmdpbi1sZWZ0OiAxNTBweDsNCn0NCg0KLy8gQ2hlY2tib3hzIGFuZCByYWRp +byBidXR0b25zDQppbnB1dFt0eXBlPWNoZWNrYm94XSwNCmlucHV0W3R5cGU9cmFkaW9dIHsNCiAg +Y3Vyc29yOiBwb2ludGVyOw0KfQ0KDQovLyBJbnB1dHMsIFRleHRhcmVhcywgU2VsZWN0cw0KaW5w +dXQsDQp0ZXh0YXJlYSwNCnNlbGVjdCwNCi51bmVkaXRhYmxlLWlucHV0IHsNCiAgZGlzcGxheTog +aW5saW5lLWJsb2NrOw0KICB3aWR0aDogMjEwcHg7DQogIGhlaWdodDogQGJhc2VsaW5lOw0KICBw +YWRkaW5nOiA0cHg7DQogIGZvbnQtc2l6ZTogQGJhc2Vmb250Ow0KICBsaW5lLWhlaWdodDogQGJh +c2VsaW5lOw0KICBjb2xvcjogQGdyYXk7DQogIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQogIC5i +b3JkZXItcmFkaXVzKDNweCk7DQp9DQoNCi8vIHJlbW92ZSBwYWRkaW5nIGZyb20gc2VsZWN0DQpz +ZWxlY3Qgew0KICBwYWRkaW5nOiBpbml0aWFsOw0KfQ0KDQovLyBtaW5pIHJlc2V0IGZvciBub24t +aHRtbDUgZmlsZSB0eXBlcw0KaW5wdXRbdHlwZT1jaGVja2JveF0sDQppbnB1dFt0eXBlPXJhZGlv +XSB7DQogIHdpZHRoOiBhdXRvOw0KICBoZWlnaHQ6IGF1dG87DQogIHBhZGRpbmc6IDA7DQogIG1h +cmdpbjogM3B4IDA7DQogICptYXJnaW4tdG9wOiAwOyAvKiBJRTYtNyAqLw0KICBsaW5lLWhlaWdo +dDogbm9ybWFsOw0KICBib3JkZXI6IG5vbmU7DQp9DQoNCmlucHV0W3R5cGU9ZmlsZV0gew0KICBi +YWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGU7DQogIHBhZGRpbmc6IGluaXRpYWw7DQogIGJvcmRlcjog +aW5pdGlhbDsNCiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7DQogIC5ib3gtc2hhZG93KG5vbmUpOw0K +fQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0sDQppbnB1dFt0eXBlPXJlc2V0XSwNCmlucHV0W3R5cGU9 +c3VibWl0XSB7DQogIHdpZHRoOiBhdXRvOw0KICBoZWlnaHQ6IGF1dG87DQp9DQoNCnNlbGVjdCwN +CmlucHV0W3R5cGU9ZmlsZV0gew0KICBoZWlnaHQ6IEBiYXNlbGluZSAqIDEuNTsgLy8gSW4gSUU3 +LCB0aGUgaGVpZ2h0IG9mIHRoZSBzZWxlY3QgZWxlbWVudCBjYW5ub3QgYmUgY2hhbmdlZCBieSBo +ZWlnaHQsIG9ubHkgZm9udC1zaXplDQogICpoZWlnaHQ6IGF1dG87IC8vIFJlc2V0IGZvciBJRTcN +CiAgbGluZS1oZWlnaHQ6IEBiYXNlbGluZSAqIDEuNTsNCiAgKm1hcmdpbi10b3A6IDRweDsgLyog +Rm9yIElFNywgYWRkIHRvcCBtYXJnaW4gdG8gYWxpZ24gc2VsZWN0IHdpdGggbGFiZWxzICovDQp9 +DQoNCi8vIE1ha2UgbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzIGhlaWdodCBub3QgZml4ZWQNCnNl +bGVjdFttdWx0aXBsZV0gew0KICBoZWlnaHQ6IGluaGVyaXQ7DQogIGJhY2tncm91bmQtY29sb3I6 +IEB3aGl0ZTsgLy8gRml4ZXMgQ2hyb21pdW0gYnVnIG9mIHVucmVhZGFibGUgaXRlbXMNCn0NCg0K +dGV4dGFyZWEgew0KICBoZWlnaHQ6IGF1dG87DQp9DQoNCi8vIEZvciB0ZXh0IHRoYXQgbmVlZHMg +dG8gYXBwZWFyIGFzIGFuIGlucHV0IGJ1dCBzaG91bGQgbm90IGJlIGFuIGlucHV0DQoudW5lZGl0 +YWJsZS1pbnB1dCB7DQogIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZTsNCiAgZGlzcGxheTogYmxv +Y2s7DQogIGJvcmRlci1jb2xvcjogI2VlZTsNCiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMnB4 +IHJnYmEoMCwwLDAsLjAyNSkpOw0KICBjdXJzb3I6IG5vdC1hbGxvd2VkOw0KfQ0KDQovLyBQbGFj +ZWhvbGRlciB0ZXh0IGdldHMgc3BlY2lhbCBzdHlsZXM7IGNhbid0IGJlIGJ1bmRsZWQgdG9nZXRo +ZXIgdGhvdWdoIGZvciBzb21lIHJlYXNvbg0KOi1tb3otcGxhY2Vob2xkZXIgew0KICBjb2xvcjog +QGdyYXlMaWdodDsNCn0NCjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7DQogIGNvbG9yOiBA +Z3JheUxpZ2h0Ow0KfQ0KDQovLyBGb2N1cyBzdGF0ZXMNCmlucHV0LA0KdGV4dGFyZWEgew0KICBA +dHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4yczsNCiAg +LnRyYW5zaXRpb24oQHRyYW5zaXRpb24pOw0KICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAzcHgg +cmdiYSgwLDAsMCwuMSkpOw0KfQ0KaW5wdXQ6Zm9jdXMsDQp0ZXh0YXJlYTpmb2N1cyB7DQogIG91 +dGxpbmU6IDA7DQogIGJvcmRlci1jb2xvcjogcmdiYSg4MiwxNjgsMjM2LC44KTsNCiAgQHNoYWRv +dzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsLjEpLCAwIDAgOHB4IHJnYmEoODIsMTY4LDIz +NiwuNik7DQogIC5ib3gtc2hhZG93KEBzaGFkb3cpOw0KfQ0KaW5wdXRbdHlwZT1maWxlXTpmb2N1 +cywNCmlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLA0Kc2VsZWN0OmZvY3VzIHsNCiAgLmJveC1z +aGFkb3cobm9uZSk7IC8vIG92ZXJyaWRlIGZvciBmaWxlIGlucHV0cw0KICBvdXRsaW5lOiAxcHgg +ZG90dGVkICM2NjY7IC8vIFNlbGV0IGVsZW1lbnRzIGRvbid0IGdldCBib3gtc2hhZG93IHN0eWxl +cywgc28gaW5zdGVhZCB3ZSBkbyBvdXRsaW5lDQp9DQoNCg0KLy8gRk9STSBGSUVMRCBGRUVEQkFD +SyBTVEFURVMNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIE1peGluIGZvciBm +b3JtIGZpZWxkIHN0YXRlcw0KLmZvcm1GaWVsZFN0YXRlKEB0ZXh0Q29sb3I6ICM1NTUsIEBib3Jk +ZXJDb2xvcjogI2NjYywgQGJhY2tncm91bmRDb2xvcjogI2Y1ZjVmNSkgew0KICAvLyBTZXQgdGhl +IHRleHQgY29sb3INCiAgPiBsYWJlbCwNCiAgLmhlbHAtYmxvY2ssDQogIC5oZWxwLWlubGluZSB7 +DQogICAgY29sb3I6IEB0ZXh0Q29sb3I7DQogIH0NCiAgLy8gU3R5bGUgaW5wdXRzIGFjY29yZGlu +Z2x5DQogIGlucHV0LA0KICB0ZXh0YXJlYSB7DQogICAgY29sb3I6IEB0ZXh0Q29sb3I7DQogICAg +Ym9yZGVyLWNvbG9yOiBAYm9yZGVyQ29sb3I7DQogICAgJjpmb2N1cyB7DQogICAgICBib3JkZXIt +Y29sb3I6IGRhcmtlbihAYm9yZGVyQ29sb3IsIDEwJSk7DQogICAgICAuYm94LXNoYWRvdygwIDAg +NnB4IGxpZ2h0ZW4oQGJvcmRlckNvbG9yLCAyMCUpKTsNCiAgICB9DQogIH0NCiAgLy8gR2l2ZSBh +IHNtYWxsIGJhY2tncm91bmQgY29sb3IgZm9yIGlucHV0LXByZXBlbmQvLWFwcGVuZA0KICAuaW5w +dXQtcHJlcGVuZCAuYWRkLW9uLA0KICAuaW5wdXQtYXBwZW5kIC5hZGQtb24gew0KICAgIGNvbG9y +OiBAdGV4dENvbG9yOw0KICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kQ29sb3I7DQog +ICAgYm9yZGVyLWNvbG9yOiBAdGV4dENvbG9yOw0KICB9DQp9DQovLyBFcnJvcg0KZm9ybSAuY2xl +YXJmaXguZXJyb3Igew0KICAuZm9ybUZpZWxkU3RhdGUoI2I5NGE0OCwgI2VlNWY1YiwgbGlnaHRl +bigjZWU1ZjViLCAzMCUpKTsNCn0NCi8vIFdhcm5pbmcNCmZvcm0gLmNsZWFyZml4Lndhcm5pbmcg +ew0KICAuZm9ybUZpZWxkU3RhdGUoI2MwOTg1MywgI2NjYWU2NCwgbGlnaHRlbigjQ0NBRTY0LCA1 +JSkpOw0KfQ0KLy8gU3VjY2Vzcw0KZm9ybSAuY2xlYXJmaXguc3VjY2VzcyB7DQogIC5mb3JtRmll +bGRTdGF0ZSgjNDY4ODQ3LCAjNTdhOTU3LCBsaWdodGVuKCM1N2E5NTcsIDMwJSkpOw0KfQ0KDQoN +Ci8vIEZvcm0gZWxlbWVudCBzaXplcw0KLy8gVE9ETyB2MjogcmVtb3ZlIGR1cGxpY2F0aW9uIGhl +cmUgYW5kIGp1c3Qgc3RpY2sgdG8gLmlucHV0LVtzaXplXSBpbiBsaWdodCBvZiBhZGRpbmcgLnNw +YW5OIHNpemVzDQouaW5wdXQtbWluaSwNCmlucHV0Lm1pbmksDQp0ZXh0YXJlYS5taW5pLA0Kc2Vs +ZWN0Lm1pbmkgew0KICB3aWR0aDogNjBweDsNCn0NCi5pbnB1dC1zbWFsbCwNCmlucHV0LnNtYWxs +LA0KdGV4dGFyZWEuc21hbGwsDQpzZWxlY3Quc21hbGwgew0KICB3aWR0aDogOTBweDsNCn0NCi5p +bnB1dC1tZWRpdW0sDQppbnB1dC5tZWRpdW0sDQp0ZXh0YXJlYS5tZWRpdW0sDQpzZWxlY3QubWVk +aXVtIHsNCiAgd2lkdGg6IDE1MHB4Ow0KfQ0KLmlucHV0LWxhcmdlLA0KaW5wdXQubGFyZ2UsDQp0 +ZXh0YXJlYS5sYXJnZSwNCnNlbGVjdC5sYXJnZSB7DQogIHdpZHRoOiAyMTBweDsNCn0NCi5pbnB1 +dC14bGFyZ2UsDQppbnB1dC54bGFyZ2UsDQp0ZXh0YXJlYS54bGFyZ2UsDQpzZWxlY3QueGxhcmdl +IHsNCiAgd2lkdGg6IDI3MHB4Ow0KfQ0KLmlucHV0LXh4bGFyZ2UsDQppbnB1dC54eGxhcmdlLA0K +dGV4dGFyZWEueHhsYXJnZSwNCnNlbGVjdC54eGxhcmdlIHsNCiAgd2lkdGg6IDUzMHB4Ow0KfQ0K +dGV4dGFyZWEueHhsYXJnZSB7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCi8vIEdyaWQgc3R5 +bGUgaW5wdXQgc2l6ZXMNCi8vIFRoaXMgaXMgYSBkdXBsaWNhdGlvbiBvZiB0aGUgbWFpbiBncmlk +IC5jb2x1bW5zKCkgbWl4aW4sIGJ1dCBzdWJ0cmFjdHMgMTBweCB0byBhY2NvdW50IGZvciBpbnB1 +dCBwYWRkaW5nIGFuZCBib3JkZXINCi5mb3JtQ29sdW1ucyhAY29sdW1uU3BhbjogMSkgew0KICBk +aXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogIGZsb2F0OiBub25lOw0KICB3aWR0aDogKChAZ3JpZENv +bHVtbldpZHRoKSAqIEBjb2x1bW5TcGFuKSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5T +cGFuIC0gMSkpIC0gMTA7DQogIG1hcmdpbi1sZWZ0OiAwOw0KfQ0KaW5wdXQsDQp0ZXh0YXJlYSB7 +DQogIC8vIERlZmF1bHQgY29sdW1ucw0KICAmLnNwYW4xICAgICB7IC5mb3JtQ29sdW1ucygxKTsg +fQ0KICAmLnNwYW4yICAgICB7IC5mb3JtQ29sdW1ucygyKTsgfQ0KICAmLnNwYW4zICAgICB7IC5m +b3JtQ29sdW1ucygzKTsgfQ0KICAmLnNwYW40ICAgICB7IC5mb3JtQ29sdW1ucyg0KTsgfQ0KICAm +LnNwYW41ICAgICB7IC5mb3JtQ29sdW1ucyg1KTsgfQ0KICAmLnNwYW42ICAgICB7IC5mb3JtQ29s +dW1ucyg2KTsgfQ0KICAmLnNwYW43ICAgICB7IC5mb3JtQ29sdW1ucyg3KTsgfQ0KICAmLnNwYW44 +ICAgICB7IC5mb3JtQ29sdW1ucyg4KTsgfQ0KICAmLnNwYW45ICAgICB7IC5mb3JtQ29sdW1ucyg5 +KTsgfQ0KICAmLnNwYW4xMCAgICB7IC5mb3JtQ29sdW1ucygxMCk7IH0NCiAgJi5zcGFuMTEgICAg +eyAuZm9ybUNvbHVtbnMoMTEpOyB9DQogICYuc3BhbjEyICAgIHsgLmZvcm1Db2x1bW5zKDEyKTsg +fQ0KICAmLnNwYW4xMyAgICB7IC5mb3JtQ29sdW1ucygxMyk7IH0NCiAgJi5zcGFuMTQgICAgeyAu +Zm9ybUNvbHVtbnMoMTQpOyB9DQogICYuc3BhbjE1ICAgIHsgLmZvcm1Db2x1bW5zKDE1KTsgfQ0K +ICAmLnNwYW4xNiAgICB7IC5mb3JtQ29sdW1ucygxNik7IH0NCn0NCg0KLy8gRGlzYWJsZWQgYW5k +IHJlYWQtb25seSBpbnB1dHMNCmlucHV0W2Rpc2FibGVkXSwNCnNlbGVjdFtkaXNhYmxlZF0sDQp0 +ZXh0YXJlYVtkaXNhYmxlZF0sDQppbnB1dFtyZWFkb25seV0sDQpzZWxlY3RbcmVhZG9ubHldLA0K +dGV4dGFyZWFbcmVhZG9ubHldIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsNCiAgYm9y +ZGVyLWNvbG9yOiAjZGRkOw0KICBjdXJzb3I6IG5vdC1hbGxvd2VkOw0KfQ0KDQovLyBBY3Rpb25z +ICh0aGUgYnV0dG9ucykNCi5hY3Rpb25zIHsNCiAgYmFja2dyb3VuZDogI2Y1ZjVmNTsNCiAgbWFy +Z2luLXRvcDogQGJhc2VsaW5lOw0KICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmU7DQogIHBhZGRp +bmc6IChAYmFzZWxpbmUgLSAxKSAyMHB4IEBiYXNlbGluZSAxNTBweDsNCiAgYm9yZGVyLXRvcDog +MXB4IHNvbGlkICNkZGQ7DQogIC5ib3JkZXItcmFkaXVzKDAgMCAzcHggM3B4KTsNCiAgLnNlY29u +ZGFyeS1hY3Rpb24gew0KICAgIGZsb2F0OiByaWdodDsNCiAgICBhIHsNCiAgICAgIGxpbmUtaGVp +Z2h0OiAzMHB4Ow0KICAgICAgJjpob3ZlciB7DQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5k +ZXJsaW5lOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ0KDQovLyBIZWxwIFRleHQNCi8vIFRPRE86 +IERvIHdlIG5lZWQgdG8gc2V0IGJhc2Vmb250IGFuZCBiYXNlbGluZSBoZXJlPw0KLmhlbHAtaW5s +aW5lLA0KLmhlbHAtYmxvY2sgew0KICBmb250LXNpemU6IEBiYXNlZm9udDsNCiAgbGluZS1oZWln +aHQ6IEBiYXNlbGluZTsNCiAgY29sb3I6IEBncmF5TGlnaHQ7DQp9DQouaGVscC1pbmxpbmUgew0K +ICBwYWRkaW5nLWxlZnQ6IDVweDsNCiAgKnBvc2l0aW9uOiByZWxhdGl2ZTsgLyogSUU2LTcgKi8N +CiAgKnRvcDogLTVweDsgLyogSUU2LTcgKi8NCn0NCg0KLy8gQmlnIGJsb2NrcyBvZiBoZWxwIHRl +eHQNCi5oZWxwLWJsb2NrIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC13aWR0aDogNjAwcHg7 +DQp9DQoNCi8vIElubGluZSBGaWVsZHMgKGlucHV0IGZpZWxkcyB0aGF0IGFwcGVhciBhcyBpbmxp +bmUgb2JqZWN0cw0KLmlubGluZS1pbnB1dHMgew0KICBjb2xvcjogQGdyYXk7DQogIHNwYW4gew0K +ICAgIHBhZGRpbmc6IDAgMnB4IDAgMXB4Ow0KICB9DQp9DQoNCi8vIEFsbG93IHVzIHRvIHB1dCBz +eW1ib2xzIGFuZCB0ZXh0IHdpdGhpbiB0aGUgaW5wdXQgZmllbGQgZm9yIGEgY2xlYW5lciBsb29r +DQouaW5wdXQtcHJlcGVuZCwNCi5pbnB1dC1hcHBlbmQgew0KICBpbnB1dCB7DQogICAgLmJvcmRl +ci1yYWRpdXMoMCAzcHggM3B4IDApOw0KICB9DQogIC5hZGQtb24gew0KICAgIHBvc2l0aW9uOiBy +ZWxhdGl2ZTsNCiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1Ow0KICAgIGJvcmRlcjogMXB4IHNvbGlk +ICNjY2M7DQogICAgei1pbmRleDogMjsNCiAgICBmbG9hdDogbGVmdDsNCiAgICBkaXNwbGF5OiBi +bG9jazsNCiAgICB3aWR0aDogYXV0bzsNCiAgICBtaW4td2lkdGg6IDE2cHg7DQogICAgaGVpZ2h0 +OiAxOHB4Ow0KICAgIHBhZGRpbmc6IDRweCA0cHggNHB4IDVweDsNCiAgICBtYXJnaW4tcmlnaHQ6 +IC0xcHg7DQogICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsNCiAgICBsaW5lLWhlaWdodDogMThweDsN +CiAgICBjb2xvcjogQGdyYXlMaWdodDsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgdGV4 +dC1zaGFkb3c6IDAgMXB4IDAgQHdoaXRlOw0KICAgIC5ib3JkZXItcmFkaXVzKDNweCAwIDAgM3B4 +KTsNCiAgfQ0KICAuYWN0aXZlIHsNCiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKEBncmVlbiwgMzAp +Ow0KICAgIGJvcmRlci1jb2xvcjogQGdyZWVuOw0KICB9DQp9DQouaW5wdXQtcHJlcGVuZCB7DQog +IC5hZGQtb24gew0KICAgICptYXJnaW4tdG9wOiAxcHg7IC8qIElFNi03ICovDQogIH0NCn0NCi5p +bnB1dC1hcHBlbmQgew0KICBpbnB1dCB7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAgLmJvcmRlci1y +YWRpdXMoM3B4IDAgMCAzcHgpOw0KICB9DQogIC5hZGQtb24gew0KICAgIC5ib3JkZXItcmFkaXVz +KDAgM3B4IDNweCAwKTsNCiAgICBtYXJnaW4tcmlnaHQ6IDA7DQogICAgbWFyZ2luLWxlZnQ6IC0x +cHg7DQogIH0NCn0NCg0KLy8gU3RhY2tlZCBvcHRpb25zIGZvciBmb3JtcyAocmFkaW8gYnV0dG9u +cyBvciBjaGVja2JveGVzKQ0KLmlucHV0cy1saXN0IHsNCiAgbWFyZ2luOiAwIDAgNXB4Ow0KICB3 +aWR0aDogMTAwJTsNCiAgbGkgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIHBhZGRpbmc6IDA7 +DQogICAgd2lkdGg6IDEwMCU7DQogIH0NCiAgbGFiZWwgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0K +ICAgIGZsb2F0OiBub25lOw0KICAgIHdpZHRoOiBhdXRvOw0KICAgIHBhZGRpbmc6IDA7DQogICAg +bWFyZ2luLWxlZnQ6IDIwcHg7DQogICAgbGluZS1oZWlnaHQ6IEBiYXNlbGluZTsNCiAgICB0ZXh0 +LWFsaWduOiBsZWZ0Ow0KICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7DQogICAgc3Ryb25nIHsNCiAg +ICAgIGNvbG9yOiBAZ3JheTsNCiAgICB9DQogICAgc21hbGwgew0KICAgICAgZm9udC1zaXplOiBA +YmFzZWZvbnQgLSAyOw0KICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsNCiAgICB9DQogIH0NCiAg +LmlucHV0cy1saXN0IHsNCiAgICBtYXJnaW4tbGVmdDogMjVweDsNCiAgICBtYXJnaW4tYm90dG9t +OiAxMHB4Ow0KICAgIHBhZGRpbmctdG9wOiAwOw0KICB9DQogICY6Zmlyc3QtY2hpbGQgew0KICAg +IHBhZGRpbmctdG9wOiA2cHg7DQogIH0NCiAgbGkgKyBsaSB7DQogICAgcGFkZGluZy10b3A6IDJw +eDsNCiAgfQ0KICBpbnB1dFt0eXBlPXJhZGlvXSwNCiAgaW5wdXRbdHlwZT1jaGVja2JveF0gew0K +ICAgIG1hcmdpbi1ib3R0b206IDA7DQogICAgbWFyZ2luLWxlZnQ6IC0yMHB4Ow0KICAgIGZsb2F0 +OiBsZWZ0Ow0KICB9DQp9DQoNCi8vIFN0YWNrZWQgZm9ybXMNCi5mb3JtLXN0YWNrZWQgew0KICBw +YWRkaW5nLWxlZnQ6IDIwcHg7DQogIGZpZWxkc2V0IHsNCiAgICBwYWRkaW5nLXRvcDogQGJhc2Vs +aW5lIC8gMjsNCiAgfQ0KICBsZWdlbmQgew0KICAgIHBhZGRpbmctbGVmdDogMDsNCiAgfQ0KICBs +YWJlbCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgZmxvYXQ6IG5vbmU7DQogICAgd2lkdGg6 +IGF1dG87DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCiAg +ICBsaW5lLWhlaWdodDogMjBweDsNCiAgICBwYWRkaW5nLXRvcDogMDsNCiAgfQ0KICAuY2xlYXJm +aXggew0KICAgIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDI7DQogICAgZGl2LmlucHV0IHsN +CiAgICAgIG1hcmdpbi1sZWZ0OiAwOw0KICAgIH0NCiAgfQ0KICAuaW5wdXRzLWxpc3Qgew0KICAg +IG1hcmdpbi1ib3R0b206IDA7DQogICAgbGkgew0KICAgICAgcGFkZGluZy10b3A6IDA7DQogICAg +ICBsYWJlbCB7DQogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogICAgICAgIHBhZGRpbmct +dG9wOiAwOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICBkaXYuY2xlYXJmaXguZXJyb3Igew0KICAg +IHBhZGRpbmctdG9wOiAxMHB4Ow0KICAgIHBhZGRpbmctYm90dG9tOiAxMHB4Ow0KICAgIHBhZGRp +bmctbGVmdDogMTBweDsNCiAgICBtYXJnaW4tdG9wOiAwOw0KICAgIG1hcmdpbi1sZWZ0OiAtMTBw +eDsNCiAgfQ0KICAuYWN0aW9ucyB7DQogICAgbWFyZ2luLWxlZnQ6IC0yMHB4Ow0KICAgIHBhZGRp +bmctbGVmdDogMjBweDsNCiAgfQ0KfQ0K + +mixins.less +8301 +XWiki.Admin +1321900318000 +1.2 +LyogTWl4aW5zLmxlc3MNCiAqIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyB0byBkZXZlbG9wIGZh +c3RlciBhbmQga2VlcCBjb2RlIHJlYWRhYmxlDQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQoNCi8vIENsZWFy +Zml4IGZvciBjbGVhcmluZyBmbG9hdHMgbGlrZSBhIGJvc3MgaDVicC5jb20vcQ0KLmNsZWFyZml4 +KCkgew0KICB6b29tOiAxOw0KICAmOmJlZm9yZSwNCiAgJjphZnRlciB7DQogICAgZGlzcGxheTog +dGFibGU7DQogICAgY29udGVudDogIiI7DQogICAgem9vbTogMTsNCiAgfQ0KICAmOmFmdGVyIHsN +CiAgICBjbGVhcjogYm90aDsNCiAgfQ0KfQ0KDQovLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZl +bCBlbGVtZW50DQouY2VudGVyLWJsb2NrKCkgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWFyZ2lu +LWxlZnQ6IGF1dG87DQogIG1hcmdpbi1yaWdodDogYXV0bzsNCn0NCg0KLy8gU2l6aW5nIHNob3J0 +Y3V0cw0KLnNpemUoQGhlaWdodDogNXB4LCBAd2lkdGg6IDVweCkgew0KICBoZWlnaHQ6IEBoZWln +aHQ7DQogIHdpZHRoOiBAd2lkdGg7DQp9DQouc3F1YXJlKEBzaXplOiA1cHgpIHsNCiAgLnNpemUo +QHNpemUsIEBzaXplKTsNCn0NCg0KLy8gSW5wdXQgcGxhY2Vob2xkZXIgdGV4dA0KLnBsYWNlaG9s +ZGVyKEBjb2xvcjogQGdyYXlMaWdodCkgew0KICA6LW1vei1wbGFjZWhvbGRlciB7DQogICAgY29s +b3I6IEBjb2xvcjsNCiAgfQ0KICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgew0KICAgIGNv +bG9yOiBAY29sb3I7DQogIH0NCn0NCg0KLy8gRm9udCBTdGFja3MNCiNmb250IHsNCiAgLnNob3J0 +aGFuZChAd2VpZ2h0OiBub3JtYWwsIEBzaXplOiAxNHB4LCBAbGluZUhlaWdodDogMjBweCkgew0K +ICAgIGZvbnQtc2l6ZTogQHNpemU7DQogICAgZm9udC13ZWlnaHQ6IEB3ZWlnaHQ7DQogICAgbGlu +ZS1oZWlnaHQ6IEBsaW5lSGVpZ2h0Ow0KICB9DQogIC5zYW5zLXNlcmlmKEB3ZWlnaHQ6IG5vcm1h +bCwgQHNpemU6IDE0cHgsIEBsaW5lSGVpZ2h0OiAyMHB4KSB7DQogICAgZm9udC1mYW1pbHk6ICJI +ZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7DQogICAgZm9udC1z +aXplOiBAc2l6ZTsNCiAgICBmb250LXdlaWdodDogQHdlaWdodDsNCiAgICBsaW5lLWhlaWdodDog +QGxpbmVIZWlnaHQ7DQogIH0NCiAgLnNlcmlmKEB3ZWlnaHQ6IG5vcm1hbCwgQHNpemU6IDE0cHgs +IEBsaW5lSGVpZ2h0OiAyMHB4KSB7DQogICAgZm9udC1mYW1pbHk6ICJHZW9yZ2lhIiwgVGltZXMg +TmV3IFJvbWFuLCBUaW1lcywgc2VyaWY7DQogICAgZm9udC1zaXplOiBAc2l6ZTsNCiAgICBmb250 +LXdlaWdodDogQHdlaWdodDsNCiAgICBsaW5lLWhlaWdodDogQGxpbmVIZWlnaHQ7DQogIH0NCiAg +Lm1vbm9zcGFjZShAd2VpZ2h0OiBub3JtYWwsIEBzaXplOiAxMnB4LCBAbGluZUhlaWdodDogMjBw +eCkgew0KICAgIGZvbnQtZmFtaWx5OiAiTW9uYWNvIiwgQ291cmllciBOZXcsIG1vbm9zcGFjZTsN +CiAgICBmb250LXNpemU6IEBzaXplOw0KICAgIGZvbnQtd2VpZ2h0OiBAd2VpZ2h0Ow0KICAgIGxp +bmUtaGVpZ2h0OiBAbGluZUhlaWdodDsNCiAgfQ0KfQ0KDQovLyBHcmlkIFN5c3RlbQ0KLmZpeGVk +LWNvbnRhaW5lcigpIHsNCiAgd2lkdGg6IEBzaXRlV2lkdGg7DQogIG1hcmdpbi1sZWZ0OiBhdXRv +Ow0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIC5jbGVhcmZpeCgpOw0KfQ0KLmNvbHVtbnMoQGNv +bHVtblNwYW46IDEpIHsNCiAgd2lkdGg6IChAZ3JpZENvbHVtbldpZHRoICogQGNvbHVtblNwYW4p +ICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtblNwYW4gLSAxKSk7DQp9DQoub2Zmc2V0KEBj +b2x1bW5PZmZzZXQ6IDEpIHsNCiAgbWFyZ2luLWxlZnQ6IChAZ3JpZENvbHVtbldpZHRoICogQGNv +bHVtbk9mZnNldCkgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1uT2Zmc2V0IC0gMSkpICsg +QGV4dHJhU3BhY2U7DQp9DQovLyBOZWNlc3NhcnkgZ3JpZCBzdHlsZXMgZm9yIGV2ZXJ5IGNvbHVt +biB0byBtYWtlIHRoZW0gYXBwZWFyIG5leHQgdG8gZWFjaCBvdGhlciBob3Jpem9udGFsbHkNCi5n +cmlkQ29sdW1uKCkgew0KICBkaXNwbGF5OiBpbmxpbmU7DQogIGZsb2F0OiBsZWZ0Ow0KICBtYXJn +aW4tbGVmdDogQGdyaWRHdXR0ZXJXaWR0aDsNCn0NCi8vIG1ha2VDb2x1bW4gY2FuIGJlIHVzZWQg +dG8gbWFyayBhbnkgZWxlbWVudCAoZS5nLiwgLmNvbnRlbnQtcHJpbWFyeSkgYXMgYSBjb2x1bW4g +d2l0aG91dCBjaGFuZ2luZyBtYXJrdXAgdG8gLnNwYW4gc29tZXRoaW5nDQoubWFrZUNvbHVtbihA +Y29sdW1uU3BhbjogMSkgew0KICAuZ3JpZENvbHVtbigpOw0KICAuY29sdW1ucyhAY29sdW1uU3Bh +bik7DQp9DQoNCi8vIEJvcmRlciBSYWRpdXMNCi5ib3JkZXItcmFkaXVzKEByYWRpdXM6IDVweCkg +ew0KICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IEByYWRpdXM7DQogICAgIC1tb3otYm9yZGVyLXJh +ZGl1czogQHJhZGl1czsNCiAgICAgICAgICBib3JkZXItcmFkaXVzOiBAcmFkaXVzOw0KfQ0KDQov +LyBEcm9wIHNoYWRvd3MNCi5ib3gtc2hhZG93KEBzaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCww +LC4yNSkpIHsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93Ow0KICAgICAtbW96LWJveC1z +aGFkb3c6IEBzaGFkb3c7DQogICAgICAgICAgYm94LXNoYWRvdzogQHNoYWRvdzsNCn0NCg0KLy8g +VHJhbnNpdGlvbnMNCi50cmFuc2l0aW9uKEB0cmFuc2l0aW9uKSB7DQogICAgIC13ZWJraXQtdHJh +bnNpdGlvbjogQHRyYW5zaXRpb247DQogICAgICAgIC1tb3otdHJhbnNpdGlvbjogQHRyYW5zaXRp +b247DQogICAgICAgICAtbXMtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247DQogICAgICAgICAgLW8t +dHJhbnNpdGlvbjogQHRyYW5zaXRpb247DQogICAgICAgICAgICAgdHJhbnNpdGlvbjogQHRyYW5z +aXRpb247DQp9DQoNCi8vIEJhY2tncm91bmQgY2xpcHBpbmcNCi5iYWNrZ3JvdW5kLWNsaXAoQGNs +aXApIHsNCiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IEBjbGlwOw0KICAgICAtbW96LWJhY2tn +cm91bmQtY2xpcDogQGNsaXA7DQogICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBAY2xpcDsNCn0N +Cg0KLy8gQ1NTMyBDb250ZW50IENvbHVtbnMNCi5jb250ZW50LWNvbHVtbnMoQGNvbHVtbkNvdW50 +LCBAY29sdW1uR2FwOiAyMHB4KSB7DQogIC13ZWJraXQtY29sdW1uLWNvdW50OiBAY29sdW1uQ291 +bnQ7DQogICAgIC1tb3otY29sdW1uLWNvdW50OiBAY29sdW1uQ291bnQ7DQogICAgICAgICAgY29s +dW1uLWNvdW50OiBAY29sdW1uQ291bnQ7DQogIC13ZWJraXQtY29sdW1uLWdhcDogQGNvbHVtbkdh +cDsNCiAgICAgLW1vei1jb2x1bW4tZ2FwOiBAY29sdW1uR2FwOw0KICAgICAgICAgIGNvbHVtbi1n +YXA6IEBjb2x1bW5HYXA7DQp9DQoNCi8vIE1ha2UgYW55IGVsZW1lbnQgcmVzaXphYmxlIGZvciBw +cm90b3R5cGluZw0KLnJlc2l6YWJsZShAZGlyZWN0aW9uOiBib3RoKSB7DQogIHJlc2l6ZTogQGRp +cmVjdGlvbjsgLy8gT3B0aW9ucyBhcmUgaG9yaXpvbnRhbCwgdmVydGljYWwsIGJvdGgNCiAgb3Zl +cmZsb3c6IGF1dG87IC8vIFNhZmFyaSBmaXgNCn0NCg0KLy8gQWRkIGFuIGFscGhhdHJhbnNwYXJl +bmN5IHZhbHVlIHRvIGFueSBiYWNrZ3JvdW5kIG9yIGJvcmRlciBjb2xvciAodmlhIEVseXNlIEhv +bGxhZGF5KQ0KI3RyYW5zbHVjZW50IHsNCiAgLmJhY2tncm91bmQoQGNvbG9yOiBAd2hpdGUsIEBh +bHBoYTogMSkgew0KICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoaHVlKEBjb2xvciksIHNhdHVy +YXRpb24oQGNvbG9yKSwgbGlnaHRuZXNzKEBjb2xvciksIEBhbHBoYSk7DQogIH0NCiAgLmJvcmRl +cihAY29sb3I6IEB3aGl0ZSwgQGFscGhhOiAxKSB7DQogICAgYm9yZGVyLWNvbG9yOiBoc2xhKGh1 +ZShAY29sb3IpLCBzYXR1cmF0aW9uKEBjb2xvciksIGxpZ2h0bmVzcyhAY29sb3IpLCBAYWxwaGEp +Ow0KICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7DQogIH0NCn0NCg0KLy8gR3JhZGll +bnQgQmFyIENvbG9ycyBmb3IgYnV0dG9ucyBhbmQgYWxsZXJ0cw0KLmdyYWRpZW50QmFyKEBwcmlt +YXJ5Q29sb3IsIEBzZWNvbmRhcnlDb2xvcikgew0KICAjZ3JhZGllbnQgPiAudmVydGljYWwoQHBy +aW1hcnlDb2xvciwgQHNlY29uZGFyeUNvbG9yKTsNCiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwIHJn +YmEoMCwwLDAsLjI1KTsNCiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5Q29sb3IgQHNlY29uZGFy +eUNvbG9yIGRhcmtlbihAc2Vjb25kYXJ5Q29sb3IsIDE1JSk7DQogIGJvcmRlci1jb2xvcjogcmdi +YSgwLDAsMCwuMSkgcmdiYSgwLDAsMCwuMSkgZmFkZWluKHJnYmEoMCwwLDAsLjEpLCAxNSUpOw0K +fQ0KDQovLyBHcmFkaWVudHMNCiNncmFkaWVudCB7DQogIC5ob3Jpem9udGFsIChAc3RhcnRDb2xv +cjogIzU1NSwgQGVuZENvbG9yOiAjMzMzKSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogQGVuZENv +bG9yOw0KICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsNCiAgICBiYWNrZ3JvdW5kLWlt +YWdlOiAta2h0bWwtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKEBz +dGFydENvbG9yKSwgdG8oQGVuZENvbG9yKSk7IC8vIEtvbnF1ZXJvcg0KICAgIGJhY2tncm91bmQt +aW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3Ip +OyAvLyBGRiAzLjYrDQogICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChs +ZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gSUUxMA0KICAgIGJhY2tncm91bmQtaW1h +Z2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1z +dG9wKDAlLCBAc3RhcnRDb2xvciksIGNvbG9yLXN0b3AoMTAwJSwgQGVuZENvbG9yKSk7IC8vIFNh +ZmFyaSA0KywgQ2hyb21lIDIrDQogICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXIt +Z3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBD +aHJvbWUgMTArDQogICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQs +IEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMA0KICAgIGJhY2tncm91bmQt +aW1hZ2U6IGxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8g +TGUgc3RhbmRhcmQNCiAgICBmaWx0ZXI6IGUoJSgicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWlj +cm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3Jh +ZGllbnRUeXBlPTEpIixAc3RhcnRDb2xvcixAZW5kQ29sb3IpKTsgLy8gSUU5IGFuZCBkb3duDQog +IH0NCiAgLnZlcnRpY2FsIChAc3RhcnRDb2xvcjogIzU1NSwgQGVuZENvbG9yOiAjMzMzKSB7DQog +ICAgYmFja2dyb3VuZC1jb2xvcjogQGVuZENvbG9yOw0KICAgIGJhY2tncm91bmQtcmVwZWF0OiBy +ZXBlYXQteDsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiAta2h0bWwtZ3JhZGllbnQobGluZWFyLCBs +ZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oQHN0YXJ0Q29sb3IpLCB0byhAZW5kQ29sb3IpKTsg +Ly8gS29ucXVlcm9yDQogICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQo +dG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gRkYgMy42Kw0KICAgIGJhY2tncm91bmQt +aW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsg +Ly8gSUUxMA0KICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBs +ZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsIEBzdGFydENvbG9yKSwgY29sb3It +c3RvcCgxMDAlLCBAZW5kQ29sb3IpKTsgLy8gU2FmYXJpIDQrLCBDaHJvbWUgMisNCiAgICBiYWNr +Z3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBA +ZW5kQ29sb3IpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lIDEwKw0KICAgIGJhY2tncm91bmQtaW1h +Z2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBP +cGVyYSAxMS4xMA0KICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsIEBz +dGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBUaGUgc3RhbmRhcmQNCiAgICBmaWx0ZXI6IGUoJSgi +cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9 +JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApIixAc3RhcnRDb2xvcixAZW5k +Q29sb3IpKTsgLy8gSUU5IGFuZCBkb3duDQogIH0NCiAgLmRpcmVjdGlvbmFsIChAc3RhcnRDb2xv +cjogIzU1NSwgQGVuZENvbG9yOiAjMzMzLCBAZGVnOiA0NWRlZykgew0KICAgIGJhY2tncm91bmQt +Y29sb3I6IEBlbmRDb2xvcjsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7DQogICAg +YmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3Is +IEBlbmRDb2xvcik7IC8vIEZGIDMuNisNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFy +LWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwDQogICAgYmFj +a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3Is +IEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWUgMTArDQogICAgYmFja2dyb3VuZC1p +bWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAv +LyBPcGVyYSAxMS4xMA0KICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVn +LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkDQogIH0NCiAgLnZlcnRp +Y2FsLXRocmVlLWNvbG9ycyhAc3RhcnRDb2xvcjogIzAwYjNlZSwgQG1pZENvbG9yOiAjN2E0M2I2 +LCBAY29sb3JTdG9wOiA1MCUsIEBlbmRDb2xvcjogI2MzMzI1Zikgew0KICAgIGJhY2tncm91bmQt +Y29sb3I6IEBlbmRDb2xvcjsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAg +IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwg +ZnJvbShAc3RhcnRDb2xvciksIGNvbG9yLXN0b3AoQGNvbG9yU3RvcCwgQG1pZENvbG9yKSwgdG8o +QGVuZENvbG9yKSk7DQogICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGll +bnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpOw0KICAgIGJh +Y2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBt +aWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpOw0KICAgIGJhY2tncm91bmQtaW1hZ2U6IC1t +cy1saW5lYXItZ3JhZGllbnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5k +Q29sb3IpOw0KICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAc3RhcnRD +b2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7DQogICAgYmFja2dyb3VuZC1p +bWFnZTogbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwg +QGVuZENvbG9yKTsNCiAgICBmaWx0ZXI6IGUoJSgicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWlj +cm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3Jh +ZGllbnRUeXBlPTApIixAc3RhcnRDb2xvcixAZW5kQ29sb3IpKTsgLy8gSUU5IGFuZCBkb3duLCBn +ZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2sNCiAgfQ0KfQ0KDQov +LyBSZXNldCBmaWx0ZXJzIGZvciBJRQ0KLnJlc2V0LWZpbHRlcigpIHsNCiAgZmlsdGVyOiBlKCUo +InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFs +c2UpIikpOw0KfQ0KDQovLyBPcGFjaXR5DQoub3BhY2l0eShAb3BhY2l0eTogMTAwKSB7DQogIGZp +bHRlcjogZSglKCJhbHBoYShvcGFjaXR5PSVkKSIsIEBvcGFjaXR5KSk7DQogIC1raHRtbC1vcGFj +aXR5OiBAb3BhY2l0eSAvIDEwMDsNCiAgICAtbW96LW9wYWNpdHk6IEBvcGFjaXR5IC8gMTAwOw0K +ICAgICAgICAgb3BhY2l0eTogQG9wYWNpdHkgLyAxMDA7DQp9 + +tables.less +5152 +XWiki.Admin +1321900318000 +1.2 +LyoNCiAqIFRhYmxlcy5sZXNzDQogKiBUYWJsZXMgZm9yLCB5b3UgZ3Vlc3NlZCBpdCwgdGFidWxh +ciBkYXRhDQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoN +Cg0KLy8gQkFTRUxJTkUgU1RZTEVTDQovLyAtLS0tLS0tLS0tLS0tLS0NCg0KdGFibGUgew0KICB3 +aWR0aDogMTAwJTsNCiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lOw0KICBwYWRkaW5nOiAwOw0K +ICBmb250LXNpemU6IEBiYXNlZm9udDsNCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsNCiAg +dGgsDQogIHRkIHsNCiAgICBwYWRkaW5nOiAxMHB4IDEwcHggOXB4Ow0KICAgIGxpbmUtaGVpZ2h0 +OiBAYmFzZWxpbmU7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgfQ0KICB0aCB7DQogICAgcGFk +ZGluZy10b3A6IDlweDsNCiAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICB2ZXJ0aWNhbC1hbGln +bjogbWlkZGxlOw0KICB9DQogIHRkIHsNCiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgIGJv +cmRlci10b3A6IDFweCBzb2xpZCAjZGRkOw0KICB9DQogIC8vIFdoZW4gc2NvcGVkIHRvIHJvdywg +Zml4IHRoIGluIHRib2R5DQogIHRib2R5IHRoIHsNCiAgICBib3JkZXItdG9wOiAxcHggc29saWQg +I2RkZDsNCiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICB9DQp9DQoNCg0KLy8gQ09OREVOU0VE +IFZFUlNJT04NCi8vIC0tLS0tLS0tLS0tLS0tLS0tDQouY29uZGVuc2VkLXRhYmxlIHsNCiAgdGgs +DQogIHRkIHsNCiAgICBwYWRkaW5nOiA1cHggNXB4IDRweDsNCiAgfQ0KfQ0KDQoNCi8vIEJPUkRF +UkVEIFZFUlNJT04NCi8vIC0tLS0tLS0tLS0tLS0tLS0NCg0KLmJvcmRlcmVkLXRhYmxlIHsNCiAg +Ym9yZGVyOiAxcHggc29saWQgI2RkZDsNCiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgLy8g +RG9uZSBzbyB3ZSBjYW4gcm91bmQgdGhvc2UgY29ybmVycyENCiAgKmJvcmRlci1jb2xsYXBzZTog +Y29sbGFwc2U7IC8qIElFNywgY29sbGFwc2UgdGFibGUgdG8gcmVtb3ZlIHNwYWNpbmcgKi8NCiAg +LmJvcmRlci1yYWRpdXMoNHB4KTsNCiAgdGggKyB0aCwNCiAgdGQgKyB0ZCwNCiAgdGggKyB0ZCB7 +DQogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkOw0KICB9DQogIHRoZWFkIHRyOmZpcnN0 +LWNoaWxkIHRoOmZpcnN0LWNoaWxkLA0KICB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1j +aGlsZCB7DQogICAgLmJvcmRlci1yYWRpdXMoNHB4IDAgMCAwKTsNCiAgfQ0KICB0aGVhZCB0cjpm +aXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLA0KICB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0 +LWNoaWxkIHsNCiAgICAuYm9yZGVyLXJhZGl1cygwIDRweCAwIDApOw0KICB9DQogIHRib2R5IHRy +Omxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQgew0KICAgIC5ib3JkZXItcmFkaXVzKDAgMCAwIDRw +eCk7DQogIH0NCiAgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkIHsNCiAgICAuYm9y +ZGVyLXJhZGl1cygwIDAgNHB4IDApOw0KICB9DQp9DQoNCg0KLy8gVEFCTEUgQ0VMTCBTSVpFUw0K +Ly8gLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBUaGlzIGlzIGEgZHVwbGljYXRpb24gb2YgdGhlIG1h +aW4gZ3JpZCAuY29sdW1ucygpIG1peGluLCBidXQgc3VidHJhY3RzIDIwcHggdG8gYWNjb3VudCBm +b3IgaW5wdXQgcGFkZGluZyBhbmQgYm9yZGVyDQoudGFibGVDb2x1bW5zKEBjb2x1bW5TcGFuOiAx +KSB7DQogIHdpZHRoOiAoKEBncmlkQ29sdW1uV2lkdGggLSAyMCkgKiBAY29sdW1uU3BhbikgKyAo +KEBncmlkQ29sdW1uV2lkdGggLSAyMCkgKiAoQGNvbHVtblNwYW4gLSAxKSk7DQp9DQp0YWJsZSB7 +DQogIC8vIERlZmF1bHQgY29sdW1ucw0KICAuc3BhbjEgICAgIHsgLnRhYmxlQ29sdW1ucygxKTsg +fQ0KICAuc3BhbjIgICAgIHsgLnRhYmxlQ29sdW1ucygyKTsgfQ0KICAuc3BhbjMgICAgIHsgLnRh +YmxlQ29sdW1ucygzKTsgfQ0KICAuc3BhbjQgICAgIHsgLnRhYmxlQ29sdW1ucyg0KTsgfQ0KICAu +c3BhbjUgICAgIHsgLnRhYmxlQ29sdW1ucyg1KTsgfQ0KICAuc3BhbjYgICAgIHsgLnRhYmxlQ29s +dW1ucyg2KTsgfQ0KICAuc3BhbjcgICAgIHsgLnRhYmxlQ29sdW1ucyg3KTsgfQ0KICAuc3Bhbjgg +ICAgIHsgLnRhYmxlQ29sdW1ucyg4KTsgfQ0KICAuc3BhbjkgICAgIHsgLnRhYmxlQ29sdW1ucyg5 +KTsgfQ0KICAuc3BhbjEwICAgIHsgLnRhYmxlQ29sdW1ucygxMCk7IH0NCiAgLnNwYW4xMSAgICB7 +IC50YWJsZUNvbHVtbnMoMTEpOyB9DQogIC5zcGFuMTIgICAgeyAudGFibGVDb2x1bW5zKDEyKTsg +fQ0KICAuc3BhbjEzICAgIHsgLnRhYmxlQ29sdW1ucygxMyk7IH0NCiAgLnNwYW4xNCAgICB7IC50 +YWJsZUNvbHVtbnMoMTQpOyB9DQogIC5zcGFuMTUgICAgeyAudGFibGVDb2x1bW5zKDE1KTsgfQ0K +ICAuc3BhbjE2ICAgIHsgLnRhYmxlQ29sdW1ucygxNik7IH0NCn0NCg0KDQovLyBaRUJSQS1TVFJJ +UElORw0KLy8gLS0tLS0tLS0tLS0tLS0NCg0KLy8gRGVmYXVsdCB6ZWJyYS1zdHJpcGUgc3R5bGVz +IChhbHRlcm5hdGluZyBncmF5IGFuZCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcykNCi56ZWJyYS1z +dHJpcGVkIHsNCiAgdGJvZHkgew0KICAgIHRyOm50aC1jaGlsZChvZGQpIHRkLA0KICAgIHRyOm50 +aC1jaGlsZChvZGQpIHRoIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7DQogICAg +fQ0KICAgIHRyOmhvdmVyIHRkLA0KICAgIHRyOmhvdmVyIHRoIHsNCiAgICAgIGJhY2tncm91bmQt +Y29sb3I6ICNmNWY1ZjU7DQogICAgfQ0KICB9DQp9DQoNCnRhYmxlIHsNCiAgLy8gVGFibGVzb3J0 +aW5nIHN0eWxlcyB3LyBqUXVlcnkgcGx1Z2luDQogIC5oZWFkZXIgew0KICAgIGN1cnNvcjogcG9p +bnRlcjsNCiAgICAmOmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgZmxvYXQ6IHJp +Z2h0Ow0KICAgICAgbWFyZ2luLXRvcDogN3B4Ow0KICAgICAgYm9yZGVyLXdpZHRoOiAwIDRweCA0 +cHg7DQogICAgICBib3JkZXItc3R5bGU6IHNvbGlkOw0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDAw +IHRyYW5zcGFyZW50Ow0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIH0NCiAgfQ0KICAv +LyBTdHlsZSB0aGUgc29ydGVkIGNvbHVtbiBoZWFkZXJzIChUSHMpDQogIC5oZWFkZXJTb3J0VXAs +DQogIC5oZWFkZXJTb3J0RG93biB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNDEsMTky +LDIxOSwuMjUpOw0KICAgIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwu +NzUpOw0KICB9DQogIC8vIFN0eWxlIHRoZSBhc2NlbmRpbmcgKHJldmVyc2UgYWxwaGFiZXRpY2Fs +KSBjb2x1bW4gaGVhZGVyDQogIC5oZWFkZXI6aG92ZXIgew0KICAgICY6YWZ0ZXIgew0KICAgICAg +dmlzaWJpbGl0eTp2aXNpYmxlOw0KICAgIH0NCiAgfQ0KICAvLyBTdHlsZSB0aGUgZGVzY2VuZGlu +ZyAoYWxwaGFiZXRpY2FsKSBjb2x1bW4gaGVhZGVyDQogIC5oZWFkZXJTb3J0RG93biwNCiAgLmhl +YWRlclNvcnREb3duOmhvdmVyIHsNCiAgICAmOmFmdGVyIHsNCiAgICAgIHZpc2liaWxpdHk6dmlz +aWJsZTsNCiAgICAgIC5vcGFjaXR5KDYwKTsNCiAgICB9DQogIH0NCiAgLy8gU3R5bGUgdGhlIGFz +Y2VuZGluZyAocmV2ZXJzZSBhbHBoYWJldGljYWwpIGNvbHVtbiBoZWFkZXINCiAgLmhlYWRlclNv +cnRVcCB7DQogICAgJjphZnRlciB7DQogICAgICBib3JkZXItYm90dG9tOiBub25lOw0KICAgICAg +Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICAgIGJvcmRlci1yaWdodDog +NHB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMwMDA7 +DQogICAgICB2aXNpYmlsaXR5OnZpc2libGU7DQogICAgICAuYm94LXNoYWRvdyhub25lKTsgLy9j +YW4ndCBhZGQgYm94c2hhZG93IHRvIGRvd253YXJkIGZhY2luZyBhcnJvdyA6KA0KICAgICAgLm9w +YWNpdHkoNjApOw0KICAgIH0NCiAgfQ0KICAvLyBCbHVlIFRhYmxlIEhlYWRpbmdzDQogIC5ibHVl +IHsNCiAgICBjb2xvcjogQGJsdWU7DQogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGJsdWU7DQog +IH0NCiAgLmhlYWRlclNvcnRVcC5ibHVlLA0KICAuaGVhZGVyU29ydERvd24uYmx1ZSB7DQogICAg +YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAYmx1ZSwgNDAlKTsNCiAgfQ0KICAvLyBHcmVlbiBU +YWJsZSBIZWFkaW5ncw0KICAuZ3JlZW4gew0KICAgIGNvbG9yOiBAZ3JlZW47DQogICAgYm9yZGVy +LWJvdHRvbS1jb2xvcjogQGdyZWVuOw0KICB9DQogIC5oZWFkZXJTb3J0VXAuZ3JlZW4sDQogIC5o +ZWFkZXJTb3J0RG93bi5ncmVlbiB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAZ3Jl +ZW4sIDQwJSk7DQogIH0NCiAgLy8gUmVkIFRhYmxlIEhlYWRpbmdzDQogIC5yZWQgew0KICAgIGNv +bG9yOiBAcmVkOw0KICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEByZWQ7DQogIH0NCiAgLmhlYWRl +clNvcnRVcC5yZWQsDQogIC5oZWFkZXJTb3J0RG93bi5yZWQgew0KICAgIGJhY2tncm91bmQtY29s +b3I6IGxpZ2h0ZW4oQHJlZCwgNTAlKTsNCiAgfQ0KICAvLyBZZWxsb3cgVGFibGUgSGVhZGluZ3MN +CiAgLnllbGxvdyB7DQogICAgY29sb3I6IEB5ZWxsb3c7DQogICAgYm9yZGVyLWJvdHRvbS1jb2xv +cjogQHllbGxvdzsNCiAgfQ0KICAuaGVhZGVyU29ydFVwLnllbGxvdywNCiAgLmhlYWRlclNvcnRE +b3duLnllbGxvdyB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAeWVsbG93LCA0MCUp +Ow0KICB9DQogIC8vIE9yYW5nZSBUYWJsZSBIZWFkaW5ncw0KICAub3JhbmdlIHsNCiAgICBjb2xv +cjogQG9yYW5nZTsNCiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAb3JhbmdlOw0KICB9DQogIC5o +ZWFkZXJTb3J0VXAub3JhbmdlLA0KICAuaGVhZGVyU29ydERvd24ub3JhbmdlIHsNCiAgICBiYWNr +Z3JvdW5kLWNvbG9yOiBsaWdodGVuKEBvcmFuZ2UsIDQwJSk7DQogIH0NCiAgLy8gUHVycGxlIFRh +YmxlIEhlYWRpbmdzDQogIC5wdXJwbGUgew0KICAgIGNvbG9yOiBAcHVycGxlOw0KICAgIGJvcmRl +ci1ib3R0b20tY29sb3I6IEBwdXJwbGU7DQogIH0NCiAgLmhlYWRlclNvcnRVcC5wdXJwbGUsDQog +IC5oZWFkZXJTb3J0RG93bi5wdXJwbGUgew0KICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4o +QHB1cnBsZSwgNDAlKTsNCiAgfQ0KfQ== + +scaffolding.less +3162 +XWiki.Admin +1321900318000 +1.2 +LyoNCiAqIFNjYWZmb2xkaW5nDQogKiBCYXNpYyBhbmQgZ2xvYmFsIHN0eWxlcyBmb3IgZ2VuZXJh +dGluZyBhIGdyaWQgc3lzdGVtLCBzdHJ1Y3R1cmFsIGxheW91dCwgYW5kIHBhZ2UgdGVtcGxhdGVz +DQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCg0KLy8gU1RSVUNU +VVJBTCBMQVlPVVQNCi8vIC0tLS0tLS0tLS0tLS0tLS0tDQoNCmJvZHkgew0KICBiYWNrZ3JvdW5k +LWNvbG9yOiBAd2hpdGU7DQogIG1hcmdpbjogMDsNCiAgI2ZvbnQgPiAuc2Fucy1zZXJpZihub3Jt +YWwsQGJhc2Vmb250LEBiYXNlbGluZSk7DQogIGNvbG9yOiBAZ3JheURhcms7DQp9DQoNCi8vIENv +bnRhaW5lciAoY2VudGVyZWQsIGZpeGVkLXdpZHRoIGxheW91dHMpDQouY29udGFpbmVyIHsNCiAg +LmZpeGVkLWNvbnRhaW5lcigpOw0KfQ0KDQovLyBGbHVpZCBsYXlvdXRzIChsZWZ0IGFsaWduZWQs +IHdpdGggc2lkZWJhciwgbWluLSAmIG1heC13aWR0aCBjb250ZW50KQ0KLmNvbnRhaW5lci1mbHVp +ZCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgbWluLXdpZHRoOiA5NDBweDsNCiAgcGFkZGlu +Zy1sZWZ0OiAyMHB4Ow0KICBwYWRkaW5nLXJpZ2h0OiAyMHB4Ow0KICAuY2xlYXJmaXgoKTsNCiAg +PiAuc2lkZWJhciB7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHRvcDogMDsNCiAgICBs +ZWZ0OiAyMHB4Ow0KICAgIHdpZHRoOiAyMjBweDsNCiAgfQ0KICAvLyBUT0RPIGluIHYyOiByZW5h +bWUgdGhpcyBhbmQgLnBvcG92ZXIgLmNvbnRlbnQgdG8gYmUgbW9yZSBzcGVjaWZpYw0KICA+IC5j +b250ZW50IHsNCiAgICBtYXJnaW4tbGVmdDogMjQwcHg7DQogIH0NCn0NCg0KDQovLyBCQVNFIFNU +WUxFUw0KLy8gLS0tLS0tLS0tLS0NCg0KLy8gTGlua3MNCmEgew0KICBjb2xvcjogQGxpbmtDb2xv +cjsNCiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICBsaW5lLWhlaWdodDogaW5oZXJpdDsNCiAg +Zm9udC13ZWlnaHQ6IGluaGVyaXQ7DQogICY6aG92ZXIgew0KICAgIGNvbG9yOiBAbGlua0NvbG9y +SG92ZXI7DQogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogIH0NCn0NCg0KLy8gUXVp +Y2sgZmxvYXRzDQoucHVsbC1yaWdodCB7DQogIGZsb2F0OiByaWdodDsNCn0NCi5wdWxsLWxlZnQg +ew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLy8gVG9nZ2xpbmcgY29udGVudA0KLmhpZGUgew0KICBk +aXNwbGF5OiBub25lOw0KfQ0KLnNob3cgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KDQovLyBH +UklEIFNZU1RFTQ0KLy8gLS0tLS0tLS0tLS0NCi8vIFRvIGN1c3RvbWl6ZSB0aGUgZ3JpZCBzeXN0 +ZW0sIGJyaW5nIHVwIHRoZSB2YXJpYWJsZXMubGVzcyBmaWxlIGFuZCBjaGFuZ2UgdGhlIGNvbHVt +biBjb3VudCwgc2l6ZSwgYW5kIGd1dHRlciB0aGVyZQ0KDQoucm93IHsNCiAgLmNsZWFyZml4KCk7 +DQogIG1hcmdpbi1sZWZ0OiAtQGdyaWRHdXR0ZXJXaWR0aDsNCn0NCg0KLy8gRmluZCBhbGwgLnNw +YW4jIGNsYXNzZXMgd2l0aGluIC5yb3cgYW5kIGdpdmUgdGhlbSB0aGUgbmVjZXNzYXJ5IHByb3Bl +cnRpZXMgZm9yIGdyaWQgY29sdW1ucyAoc3VwcG9ydGVkIGJ5IGFsbCBicm93c2VycyBiYWNrIHRv +IElFNykNCi8vIENyZWRpdCB0byBAZGhnIGZvciB0aGUgaWRlYQ0KLnJvdyA+IFtjbGFzcyo9InNw +YW4iXSB7DQogIC5ncmlkQ29sdW1uKCk7DQp9DQoNCi8vIERlZmF1bHQgY29sdW1ucw0KLnNwYW4x +ICAgICB7IC5jb2x1bW5zKDEpOyB9DQouc3BhbjIgICAgIHsgLmNvbHVtbnMoMik7IH0NCi5zcGFu +MyAgICAgeyAuY29sdW1ucygzKTsgfQ0KLnNwYW40ICAgICB7IC5jb2x1bW5zKDQpOyB9DQouc3Bh +bjUgICAgIHsgLmNvbHVtbnMoNSk7IH0NCi5zcGFuNiAgICAgeyAuY29sdW1ucyg2KTsgfQ0KLnNw +YW43ICAgICB7IC5jb2x1bW5zKDcpOyB9DQouc3BhbjggICAgIHsgLmNvbHVtbnMoOCk7IH0NCi5z +cGFuOSAgICAgeyAuY29sdW1ucyg5KTsgfQ0KLnNwYW4xMCAgICB7IC5jb2x1bW5zKDEwKTsgfQ0K +LnNwYW4xMSAgICB7IC5jb2x1bW5zKDExKTsgfQ0KLnNwYW4xMiAgICB7IC5jb2x1bW5zKDEyKTsg +fQ0KLnNwYW4xMyAgICB7IC5jb2x1bW5zKDEzKTsgfQ0KLnNwYW4xNCAgICB7IC5jb2x1bW5zKDE0 +KTsgfQ0KLnNwYW4xNSAgICB7IC5jb2x1bW5zKDE1KTsgfQ0KLnNwYW4xNiAgICB7IC5jb2x1bW5z +KDE2KTsgfQ0KDQovLyBGb3Igb3B0aW9uYWwgMjQtY29sdW1uIGdyaWQNCi5zcGFuMTcgICAgeyAu +Y29sdW1ucygxNyk7IH0NCi5zcGFuMTggICAgeyAuY29sdW1ucygxOCk7IH0NCi5zcGFuMTkgICAg +eyAuY29sdW1ucygxOSk7IH0NCi5zcGFuMjAgICAgeyAuY29sdW1ucygyMCk7IH0NCi5zcGFuMjEg +ICAgeyAuY29sdW1ucygyMSk7IH0NCi5zcGFuMjIgICAgeyAuY29sdW1ucygyMik7IH0NCi5zcGFu +MjMgICAgeyAuY29sdW1ucygyMyk7IH0NCi5zcGFuMjQgICAgeyAuY29sdW1ucygyNCk7IH0NCg0K +Ly8gT2Zmc2V0IGNvbHVtbiBvcHRpb25zDQoucm93IHsNCiAgPiAub2Zmc2V0MSAgIHsgLm9mZnNl +dCgxKTsgfQ0KICA+IC5vZmZzZXQyICAgeyAub2Zmc2V0KDIpOyB9DQogID4gLm9mZnNldDMgICB7 +IC5vZmZzZXQoMyk7IH0NCiAgPiAub2Zmc2V0NCAgIHsgLm9mZnNldCg0KTsgfQ0KICA+IC5vZmZz +ZXQ1ICAgeyAub2Zmc2V0KDUpOyB9DQogID4gLm9mZnNldDYgICB7IC5vZmZzZXQoNik7IH0NCiAg +PiAub2Zmc2V0NyAgIHsgLm9mZnNldCg3KTsgfQ0KICA+IC5vZmZzZXQ4ICAgeyAub2Zmc2V0KDgp +OyB9DQogID4gLm9mZnNldDkgICB7IC5vZmZzZXQoOSk7IH0NCiAgPiAub2Zmc2V0MTAgIHsgLm9m +ZnNldCgxMCk7IH0NCiAgPiAub2Zmc2V0MTEgIHsgLm9mZnNldCgxMSk7IH0NCiAgPiAub2Zmc2V0 +MTIgIHsgLm9mZnNldCgxMik7IH0NCn0NCg0KLy8gVW5pcXVlIGNvbHVtbiBzaXplcyBmb3IgMTYt +Y29sdW1uIGdyaWQNCi5zcGFuLW9uZS10aGlyZCAgICAgeyB3aWR0aDogMzAwcHg7IH0NCi5zcGFu +LXR3by10aGlyZHMgICAgeyB3aWR0aDogNjIwcHg7IH0NCi5yb3cgew0KICA+IC5vZmZzZXQtb25l +LXRoaXJkICAgeyBtYXJnaW4tbGVmdDogMzQwcHg7IH0NCiAgPiAub2Zmc2V0LXR3by10aGlyZHMg +IHsgbWFyZ2luLWxlZnQ6IDY2MHB4OyB9DQp9 + +less-1.1.5.min.js +35842 +XWiki.Admin +1321900319000 +1.2 +Ly8KLy8gTEVTUyAtIExlYW5lciBDU1MgdjEuMS41Ci8vIGh0dHA6Ly9sZXNzY3NzLm9yZwovLyAK +Ly8gQ29weXJpZ2h0IChjKSAyMDA5LTIwMTEsIEFsZXhpcyBTZWxsaWVyCi8vIExpY2Vuc2VkIHVu +ZGVyIHRoZSBBcGFjaGUgMi4wIExpY2Vuc2UuCi8vCi8vCi8vIExFU1MgLSBMZWFuZXIgQ1NTIHYx +LjEuNQovLyBodHRwOi8vbGVzc2Nzcy5vcmcKLy8gCi8vIENvcHlyaWdodCAoYykgMjAwOS0yMDEx +LCBBbGV4aXMgU2VsbGllcgovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBMaWNlbnNl +LgovLwooZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGIpe3JldHVybiBhLmxlc3NbYi5zcGxpdCgi +LyIpWzFdXX1mdW5jdGlvbiBsKCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo +InN0eWxlIik7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspYVtiXS50eXBlLm1hdGNoKGopJiYo +bmV3IGQuUGFyc2VyKS5wYXJzZShhW2JdLmlubmVySFRNTHx8IiIsZnVuY3Rpb24oYyxkKXt2YXIg +ZT1kLnRvQ1NTKCksZj1hW2JdO3RyeXtmLmlubmVySFRNTD1lfWNhdGNoKGcpe2Yuc3R5bGVTaGVl +dHMuY3NzVGV4dD1lfWYudHlwZT0idGV4dC9jc3MifSl9ZnVuY3Rpb24gbShhLGIpe2Zvcih2YXIg +Yz0wO2M8ZC5zaGVldHMubGVuZ3RoO2MrKyluKGQuc2hlZXRzW2NdLGEsYixkLnNoZWV0cy5sZW5n +dGgtKGMrMSkpfWZ1bmN0aW9uIG4oYixjLGUsZil7dmFyIGg9YS5sb2NhdGlvbi5ocmVmLnJlcGxh +Y2UoL1sjP10uKiQvLCIiKSxpPWIuaHJlZi5yZXBsYWNlKC9cPy4qJC8sIiIpLGo9ZyYmZy5nZXRJ +dGVtKGkpLGs9ZyYmZy5nZXRJdGVtKGkrIjp0aW1lc3RhbXAiKSxsPXtjc3M6aix0aW1lc3RhbXA6 +a307L14oaHR0cHM/fGZpbGUpOi8udGVzdChpKXx8KGkuY2hhckF0KDApPT0iLyI/aT1hLmxvY2F0 +aW9uLnByb3RvY29sKyIvLyIrYS5sb2NhdGlvbi5ob3N0K2k6aT1oLnNsaWNlKDAsaC5sYXN0SW5k +ZXhPZigiLyIpKzEpK2kpLHEoYi5ocmVmLGIudHlwZSxmdW5jdGlvbihhLGcpe2lmKCFlJiZsJiZn +JiYobmV3IERhdGUoZykpLnZhbHVlT2YoKT09PShuZXcgRGF0ZShsLnRpbWVzdGFtcCkpLnZhbHVl +T2YoKSlwKGwuY3NzLGIpLGMobnVsbCxiLHtsb2NhbDohMCxyZW1haW5pbmc6Zn0pO2Vsc2UgdHJ5 +eyhuZXcgZC5QYXJzZXIoe29wdGltaXphdGlvbjpkLm9wdGltaXphdGlvbixwYXRoczpbaS5yZXBs +YWNlKC9bXHdcLi1dKyQvLCIiKV0sbWltZTpiLnR5cGV9KSkucGFyc2UoYSxmdW5jdGlvbihhLGQp +e2lmKGEpcmV0dXJuIHUoYSxpKTt0cnl7YyhkLGIse2xvY2FsOiExLGxhc3RNb2RpZmllZDpnLHJl +bWFpbmluZzpmfSkscyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGVzcy1lcnJvci1tZXNzYWdl +OiIrbyhpKSkpfWNhdGNoKGEpe3UoYSxpKX19KX1jYXRjaChoKXt1KGgsaSl9fSxmdW5jdGlvbihh +LGIpe3Rocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiK2IrIiAoIithKyIpIil9KX1mdW5j +dGlvbiBvKGEpe3JldHVybiBhLnJlcGxhY2UoL15bYS16XSs6XC9cLz9bXlwvXSsvLCIiKS5yZXBs +YWNlKC9eXC8vLCIiKS5yZXBsYWNlKC9cPy4qJC8sIiIpLnJlcGxhY2UoL1wuW15cLlwvXSskLywi +IikucmVwbGFjZSgvW15cLlx3LV0rL2csIi0iKS5yZXBsYWNlKC9cLi9nLCI6Iil9ZnVuY3Rpb24g +cChhLGIsYyl7dmFyIGQsZT1iLmhyZWY/Yi5ocmVmLnJlcGxhY2UoL1w/LiokLywiIik6IiIsZj0i +bGVzczoiKyhiLnRpdGxlfHxvKGUpKTsoZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChmKSk9PT1u +dWxsJiYoZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLGQudHlwZT0idGV4dC9jc3Mi +LGQubWVkaWE9Yi5tZWRpYXx8InNjcmVlbiIsZC5pZD1mLGRvY3VtZW50LmdldEVsZW1lbnRzQnlU +YWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZCkpO2lmKGQuc3R5bGVTaGVldCl0cnl7ZC5z +dHlsZVNoZWV0LmNzc1RleHQ9YX1jYXRjaChoKXt0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IHJl +YXNzaWduIHN0eWxlU2hlZXQuY3NzVGV4dC4iKX1lbHNlKGZ1bmN0aW9uKGEpe2QuY2hpbGROb2Rl +cy5sZW5ndGg+MD9kLmZpcnN0Q2hpbGQubm9kZVZhbHVlIT09YS5ub2RlVmFsdWUmJmQucmVwbGFj +ZUNoaWxkKGEsZC5maXJzdENoaWxkKTpkLmFwcGVuZENoaWxkKGEpfSkoZG9jdW1lbnQuY3JlYXRl +VGV4dE5vZGUoYSkpO2MmJmcmJih0KCJzYXZpbmcgIitlKyIgdG8gY2FjaGUuIiksZy5zZXRJdGVt +KGUsYSksZy5zZXRJdGVtKGUrIjp0aW1lc3RhbXAiLGMpKX1mdW5jdGlvbiBxKGEsYixjLGUpe2Z1 +bmN0aW9uIGkoYixjLGQpe2Iuc3RhdHVzPj0yMDAmJmIuc3RhdHVzPDMwMD9jKGIucmVzcG9uc2VU +ZXh0LGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSk6dHlwZW9mIGQ9PSJmdW5j +dGlvbiImJmQoYi5zdGF0dXMsYSl9dmFyIGc9cigpLGg9Zj8hMTpkLmFzeW5jO3R5cGVvZiBnLm92 +ZXJyaWRlTWltZVR5cGU9PSJmdW5jdGlvbiImJmcub3ZlcnJpZGVNaW1lVHlwZSgidGV4dC9jc3Mi +KSxnLm9wZW4oIkdFVCIsYSxoKSxnLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsYnx8InRleHQv +eC1sZXNzLCB0ZXh0L2NzczsgcT0wLjksICovKjsgcT0wLjUiKSxnLnNlbmQobnVsbCksZj9nLnN0 +YXR1cz09PTA/YyhnLnJlc3BvbnNlVGV4dCk6ZShnLnN0YXR1cyxhKTpoP2cub25yZWFkeXN0YXRl +Y2hhbmdlPWZ1bmN0aW9uKCl7Zy5yZWFkeVN0YXRlPT00JiZpKGcsYyxlKX06aShnLGMsZSl9ZnVu +Y3Rpb24gcigpe2lmKGEuWE1MSHR0cFJlcXVlc3QpcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDt0 +cnl7cmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCJNU1hNTDIuWE1MSFRUUC4zLjAiKX1jYXRjaChi +KXtyZXR1cm4gdCgiYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgQUpBWC4iKSxudWxsfX1mdW5jdGlv +biBzKGEpe3JldHVybiBhJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSl9ZnVuY3Rpb24gdChh +KXtkLmVudj09ImRldmVsb3BtZW50IiYmdHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25z +b2xlLmxvZygibGVzczogIithKX1mdW5jdGlvbiB1KGEsYil7dmFyIGM9Imxlc3MtZXJyb3ItbWVz +c2FnZToiK28oYiksZT1bIjx1bD4iLCc8bGk+PGxhYmVsPlstMV08L2xhYmVsPjxwcmUgY2xhc3M9 +ImN0eCI+ezB9PC9wcmU+PC9saT4nLCI8bGk+PGxhYmVsPlswXTwvbGFiZWw+PHByZT57Y3VycmVu +dH08L3ByZT48L2xpPiIsJzxsaT48bGFiZWw+WzFdPC9sYWJlbD48cHJlIGNsYXNzPSJjdHgiPnsy +fTwvcHJlPjwvbGk+JywiPC91bD4iXS5qb2luKCJcbiIpLGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu +dCgiZGl2IiksZyxoO2YuaWQ9YyxmLmNsYXNzTmFtZT0ibGVzcy1lcnJvci1tZXNzYWdlIixoPSI8 +aDM+IisoYS5tZXNzYWdlfHwiVGhlcmUgaXMgYW4gZXJyb3IgaW4geW91ciAubGVzcyBmaWxlIikr +IjwvaDM+IisnPHA+PGEgaHJlZj0iJytiKyciPicrYisiPC9hPiAiLGEuZXh0cmFjdCYmKGgrPSJv +biBsaW5lICIrYS5saW5lKyIsIGNvbHVtbiAiKyhhLmNvbHVtbisxKSsiOjwvcD4iK2UucmVwbGFj +ZSgvXFsoLT9cZClcXS9nLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIHBhcnNlSW50KGEubGluZSkrcGFy +c2VJbnQoYyl8fCIifSkucmVwbGFjZSgvXHsoXGQpXH0vZyxmdW5jdGlvbihiLGMpe3JldHVybiBh +LmV4dHJhY3RbcGFyc2VJbnQoYyldfHwiIn0pLnJlcGxhY2UoL1x7Y3VycmVudFx9LyxhLmV4dHJh +Y3RbMV0uc2xpY2UoMCxhLmNvbHVtbikrJzxzcGFuIGNsYXNzPSJlcnJvciI+JythLmV4dHJhY3Rb +MV0uc2xpY2UoYS5jb2x1bW4pKyI8L3NwYW4+IikpLGYuaW5uZXJIVE1MPWgscChbIi5sZXNzLWVy +cm9yLW1lc3NhZ2UgdWwsIC5sZXNzLWVycm9yLW1lc3NhZ2UgbGkgeyIsImxpc3Qtc3R5bGUtdHlw +ZTogbm9uZTsiLCJtYXJnaW4tcmlnaHQ6IDE1cHg7IiwicGFkZGluZzogNHB4IDA7IiwibWFyZ2lu +OiAwOyIsIn0iLCIubGVzcy1lcnJvci1tZXNzYWdlIGxhYmVsIHsiLCJmb250LXNpemU6IDEycHg7 +IiwibWFyZ2luLXJpZ2h0OiAxNXB4OyIsInBhZGRpbmc6IDRweCAwOyIsImNvbG9yOiAjY2M3Nzc3 +OyIsIn0iLCIubGVzcy1lcnJvci1tZXNzYWdlIHByZSB7IiwiY29sb3I6ICNlZTQ0NDQ7IiwicGFk +ZGluZzogNHB4IDA7IiwibWFyZ2luOiAwOyIsImRpc3BsYXk6IGlubGluZS1ibG9jazsiLCJ9Iiwi +Lmxlc3MtZXJyb3ItbWVzc2FnZSBwcmUuY3R4IHsiLCJjb2xvcjogI2RkNDQ0NDsiLCJ9IiwiLmxl +c3MtZXJyb3ItbWVzc2FnZSBoMyB7IiwiZm9udC1zaXplOiAyMHB4OyIsImZvbnQtd2VpZ2h0OiBi +b2xkOyIsInBhZGRpbmc6IDE1cHggMCA1cHggMDsiLCJtYXJnaW46IDA7IiwifSIsIi5sZXNzLWVy +cm9yLW1lc3NhZ2UgYSB7IiwiY29sb3I6ICMxMGEiLCJ9IiwiLmxlc3MtZXJyb3ItbWVzc2FnZSAu +ZXJyb3IgeyIsImNvbG9yOiByZWQ7IiwiZm9udC13ZWlnaHQ6IGJvbGQ7IiwicGFkZGluZy1ib3R0 +b206IDJweDsiLCJib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHJlZDsiLCJ9Il0uam9pbigiXG4i +KSx7dGl0bGU6ImVycm9yLW1lc3NhZ2UifSksZi5zdHlsZS5jc3NUZXh0PVsiZm9udC1mYW1pbHk6 +IEFyaWFsLCBzYW5zLXNlcmlmIiwiYm9yZGVyOiAxcHggc29saWQgI2UwMCIsImJhY2tncm91bmQt +Y29sb3I6ICNlZWUiLCJib3JkZXItcmFkaXVzOiA1cHgiLCItd2Via2l0LWJvcmRlci1yYWRpdXM6 +IDVweCIsIi1tb3otYm9yZGVyLXJhZGl1czogNXB4IiwiY29sb3I6ICNlMDAiLCJwYWRkaW5nOiAx +NXB4IiwibWFyZ2luLWJvdHRvbTogMTVweCJdLmpvaW4oIjsiKSxkLmVudj09ImRldmVsb3BtZW50 +IiYmKGc9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5JiYoZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoYyk/ZG9jdW1lbnQuYm9keS5yZXBsYWNlQ2hpbGQoZixkb2N1bWVudC5nZXRF +bGVtZW50QnlJZChjKSk6ZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZixkb2N1bWVudC5ib2R5 +LmZpcnN0Q2hpbGQpLGNsZWFySW50ZXJ2YWwoZykpfSwxMCkpfUFycmF5LmlzQXJyYXl8fChBcnJh +eS5pc0FycmF5PWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh +bGwoYSk9PT0iW29iamVjdCBBcnJheV0ifHxhIGluc3RhbmNlb2YgQXJyYXl9KSxBcnJheS5wcm90 +b3R5cGUuZm9yRWFjaHx8KEFycmF5LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGEsYil7dmFy +IGM9dGhpcy5sZW5ndGg+Pj4wO2Zvcih2YXIgZD0wO2Q8YztkKyspZCBpbiB0aGlzJiZhLmNhbGwo +Yix0aGlzW2RdLGQsdGhpcyl9KSxBcnJheS5wcm90b3R5cGUubWFwfHwoQXJyYXkucHJvdG90eXBl +Lm1hcD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aD4+PjAsYz1uZXcgQXJyYXkoYiksZD1h +cmd1bWVudHNbMV07Zm9yKHZhciBlPTA7ZTxiO2UrKyllIGluIHRoaXMmJihjW2VdPWEuY2FsbChk +LHRoaXNbZV0sZSx0aGlzKSk7cmV0dXJuIGN9KSxBcnJheS5wcm90b3R5cGUuZmlsdGVyfHwoQXJy +YXkucHJvdG90eXBlLmZpbHRlcj1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPWFyZ3VtZW50c1sxXTtm +b3IodmFyIGQ9MDtkPHRoaXMubGVuZ3RoO2QrKylhLmNhbGwoYyx0aGlzW2RdKSYmYi5wdXNoKHRo +aXNbZF0pO3JldHVybiBifSksQXJyYXkucHJvdG90eXBlLnJlZHVjZXx8KEFycmF5LnByb3RvdHlw +ZS5yZWR1Y2U9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGg+Pj4wLGM9MDtpZihiPT09MCYm +YXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgbmV3IFR5cGVFcnJvcjtpZihhcmd1bWVudHMubGVu +Z3RoPj0yKXZhciBkPWFyZ3VtZW50c1sxXTtlbHNlIGRve2lmKGMgaW4gdGhpcyl7ZD10aGlzW2Mr +K107YnJlYWt9aWYoKytjPj1iKXRocm93IG5ldyBUeXBlRXJyb3J9d2hpbGUoITApO2Zvcig7Yzxi +O2MrKyljIGluIHRoaXMmJihkPWEuY2FsbChudWxsLGQsdGhpc1tjXSxjLHRoaXMpKTtyZXR1cm4g +ZH0pLEFycmF5LnByb3RvdHlwZS5pbmRleE9mfHwoQXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVu +Y3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgsYz1hcmd1bWVudHNbMV18fDA7aWYoIWIpcmV0dXJu +LTE7aWYoYz49YilyZXR1cm4tMTtjPDAmJihjKz1iKTtmb3IoO2M8YjtjKyspe2lmKCFPYmplY3Qu +cHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxjKSljb250aW51ZTtpZihhPT09dGhp +c1tjXSlyZXR1cm4gY31yZXR1cm4tMX0pLE9iamVjdC5rZXlzfHwoT2JqZWN0LmtleXM9ZnVuY3Rp +b24oYSl7dmFyIGI9W107Zm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w +ZXJ0eS5jYWxsKGEsYykmJmIucHVzaChjKTtyZXR1cm4gYn0pLFN0cmluZy5wcm90b3R5cGUudHJp +bXx8KFN0cmluZy5wcm90b3R5cGUudHJpbT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcyku +cmVwbGFjZSgvXlxzXHMqLywiIikucmVwbGFjZSgvXHNccyokLywiIil9KTt2YXIgZCxlO3R5cGVv +ZiBlbnZpcm9ubWVudD09Im9iamVjdCImJnt9LnRvU3RyaW5nLmNhbGwoZW52aXJvbm1lbnQpPT09 +IltvYmplY3QgRW52aXJvbm1lbnRdIj8oZD17fSxlPWQudHJlZT17fSxkLm1vZGU9InJoaW5vIik6 +dHlwZW9mIGE9PSJ1bmRlZmluZWQiPyhkPWV4cG9ydHMsZT1jKCIuL3RyZWUiKSxkLm1vZGU9InJo +aW5vIik6KHR5cGVvZiBhLmxlc3M9PSJ1bmRlZmluZWQiJiYoYS5sZXNzPXt9KSxkPWEubGVzcyxl +PWEubGVzcy50cmVlPXt9LGQubW9kZT0iYnJvd3NlciIpLGQuUGFyc2VyPWZ1bmN0aW9uKGEpe2Z1 +bmN0aW9uIHAoKXtnPWpbZl0saD1jLGs9Y31mdW5jdGlvbiBxKCl7altmXT1nLGM9aCxrPWN9ZnVu +Y3Rpb24gcigpe2M+ayYmKGpbZl09altmXS5zbGljZShjLWspLGs9Yyl9ZnVuY3Rpb24gcyhhKXt2 +YXIgZCxlLGcsaCxpLG0sbixvO2lmKGEgaW5zdGFuY2VvZiBGdW5jdGlvbilyZXR1cm4gYS5jYWxs +KGwucGFyc2Vycyk7aWYodHlwZW9mIGE9PSJzdHJpbmciKWQ9Yi5jaGFyQXQoYyk9PT1hP2E6bnVs +bCxnPTEscigpO2Vsc2V7cigpO2lmKGQ9YS5leGVjKGpbZl0pKWc9ZFswXS5sZW5ndGg7ZWxzZSBy +ZXR1cm4gbnVsbH1pZihkKXtvPWMrPWcsbT1jK2pbZl0ubGVuZ3RoLWc7d2hpbGUoYzxtKXtoPWIu +Y2hhckNvZGVBdChjKTtpZihoIT09MzImJmghPT0xMCYmaCE9PTkpYnJlYWs7YysrfXJldHVybiBq +W2ZdPWpbZl0uc2xpY2UoZysoYy1vKSksaz1jLGpbZl0ubGVuZ3RoPT09MCYmZjxqLmxlbmd0aC0x +JiZmKyssdHlwZW9mIGQ9PSJzdHJpbmciP2Q6ZC5sZW5ndGg9PT0xP2RbMF06ZH19ZnVuY3Rpb24g +dChhKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciP2IuY2hhckF0KGMpPT09YTphLnRlc3Qoaltm +XSk/ITA6ITF9dmFyIGIsYyxmLGcsaCxpLGosayxsLG09dGhpcyxuPWZ1bmN0aW9uKCl7fSxvPXRo +aXMuaW1wb3J0cz17cGF0aHM6YSYmYS5wYXRoc3x8W10scXVldWU6W10sZmlsZXM6e30sbWltZTph +JiZhLm1pbWUscHVzaDpmdW5jdGlvbihiLGMpe3ZhciBlPXRoaXM7dGhpcy5xdWV1ZS5wdXNoKGIp +LGQuUGFyc2VyLmltcG9ydGVyKGIsdGhpcy5wYXRocyxmdW5jdGlvbihhKXtlLnF1ZXVlLnNwbGlj +ZShlLnF1ZXVlLmluZGV4T2YoYiksMSksZS5maWxlc1tiXT1hLGMoYSksZS5xdWV1ZS5sZW5ndGg9 +PT0wJiZuKCl9LGEpfX07cmV0dXJuIHRoaXMuZW52PWE9YXx8e30sdGhpcy5vcHRpbWl6YXRpb249 +Im9wdGltaXphdGlvbiJpbiB0aGlzLmVudj90aGlzLmVudi5vcHRpbWl6YXRpb246MSx0aGlzLmVu +di5maWxlbmFtZT10aGlzLmVudi5maWxlbmFtZXx8bnVsbCxsPXtpbXBvcnRzOm8scGFyc2U6ZnVu +Y3Rpb24oZCxnKXt2YXIgaCxsLG0sbyxwLHEscj1bXSx0LHU9bnVsbDtjPWY9az1pPTAsaj1bXSxi +PWQucmVwbGFjZSgvXHJcbi9nLCJcbiIpLGo9ZnVuY3Rpb24oYyl7dmFyIGQ9MCxlPS9bXiInYFx7 +XH1cL1woXCldKy9nLGY9L1wvXCooPzpbXipdfFwqK1teXC8qXSkqXCorXC98XC9cLy4qL2csZz0w +LGgsaT1jWzBdLGosaztmb3IodmFyIGw9MCxtLG47bDxiLmxlbmd0aDtsKyspe2UubGFzdEluZGV4 +PWwsKGg9ZS5leGVjKGIpKSYmaC5pbmRleD09PWwmJihsKz1oWzBdLmxlbmd0aCxpLnB1c2goaFsw +XSkpLG09Yi5jaGFyQXQobCksZi5sYXN0SW5kZXg9bCwhayYmIWomJm09PT0iLyImJihuPWIuY2hh +ckF0KGwrMSksKG49PT0iLyJ8fG49PT0iKiIpJiYoaD1mLmV4ZWMoYikpJiZoLmluZGV4PT09bCYm +KGwrPWhbMF0ubGVuZ3RoLGkucHVzaChoWzBdKSxtPWIuY2hhckF0KGwpKSk7aWYobT09PSJ7IiYm +IWsmJiFqKWcrKyxpLnB1c2gobSk7ZWxzZSBpZihtPT09In0iJiYhayYmIWopZy0tLGkucHVzaCht +KSxjWysrZF09aT1bXTtlbHNlIGlmKG09PT0iKCImJiFrJiYhailpLnB1c2gobSksaj0hMDtlbHNl +IGlmKG09PT0iKSImJiFrJiZqKWkucHVzaChtKSxqPSExO2Vsc2V7aWYobT09PSciJ3x8bT09PSIn +Inx8bT09PSJgIilrP2s9az09PW0/ITE6azprPW07aS5wdXNoKG0pfX1pZihnPjApdGhyb3d7dHlw +ZToiU3ludGF4IixtZXNzYWdlOiJNaXNzaW5nIGNsb3NpbmcgYH1gIixmaWxlbmFtZTphLmZpbGVu +YW1lfTtyZXR1cm4gYy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuam9pbigiIil9KX0oW1tdXSks +aD1uZXcgZS5SdWxlc2V0KFtdLHModGhpcy5wYXJzZXJzLnByaW1hcnkpKSxoLnJvb3Q9ITAsaC50 +b0NTUz1mdW5jdGlvbihjKXt2YXIgZCxmLGc7cmV0dXJuIGZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24g +bihhKXtyZXR1cm4gYT8oYi5zbGljZSgwLGEpLm1hdGNoKC9cbi9nKXx8IiIpLmxlbmd0aDpudWxs +fXZhciBpPVtdO2c9Z3x8e30sdHlwZW9mIGg9PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShoKSYm +KGg9T2JqZWN0LmtleXMoaCkubWFwKGZ1bmN0aW9uKGEpe3ZhciBiPWhbYV07cmV0dXJuIGIgaW5z +dGFuY2VvZiBlLlZhbHVlfHwoYiBpbnN0YW5jZW9mIGUuRXhwcmVzc2lvbnx8KGI9bmV3IGUuRXhw +cmVzc2lvbihbYl0pKSxiPW5ldyBlLlZhbHVlKFtiXSkpLG5ldyBlLlJ1bGUoIkAiK2EsYiwhMSww +KX0pLGk9W25ldyBlLlJ1bGVzZXQobnVsbCxoKV0pO3RyeXt2YXIgaj1jLmNhbGwodGhpcyx7ZnJh +bWVzOml9KS50b0NTUyhbXSx7Y29tcHJlc3M6Zy5jb21wcmVzc3x8ITF9KX1jYXRjaChrKXtmPWIu +c3BsaXQoIlxuIiksZD1uKGsuaW5kZXgpO2Zvcih2YXIgbD1rLmluZGV4LG09LTE7bD49MCYmYi5j +aGFyQXQobCkhPT0iXG4iO2wtLSltKys7dGhyb3d7dHlwZTprLnR5cGUsbWVzc2FnZTprLm1lc3Nh +Z2UsZmlsZW5hbWU6YS5maWxlbmFtZSxpbmRleDprLmluZGV4LGxpbmU6dHlwZW9mIGQ9PSJudW1i +ZXIiP2QrMTpudWxsLGNhbGxMaW5lOmsuY2FsbCYmbihrLmNhbGwpKzEsY2FsbEV4dHJhY3Q6Zltu +KGsuY2FsbCldLHN0YWNrOmsuc3RhY2ssY29sdW1uOm0sZXh0cmFjdDpbZltkLTFdLGZbZF0sZltk +KzFdXX19cmV0dXJuIGcuY29tcHJlc3M/ai5yZXBsYWNlKC8oXHMpKy9nLCIkMSIpOmp9fShoLmV2 +YWwpO2lmKGM8Yi5sZW5ndGgtMSl7Yz1pLHE9Yi5zcGxpdCgiXG4iKSxwPShiLnNsaWNlKDAsYyku +bWF0Y2goL1xuL2cpfHwiIikubGVuZ3RoKzE7Zm9yKHZhciB2PWMsdz0tMTt2Pj0wJiZiLmNoYXJB +dCh2KSE9PSJcbiI7di0tKXcrKzt1PXtuYW1lOiJQYXJzZUVycm9yIixtZXNzYWdlOiJTeW50YXgg +RXJyb3Igb24gbGluZSAiK3AsaW5kZXg6YyxmaWxlbmFtZTphLmZpbGVuYW1lLGxpbmU6cCxjb2x1 +bW46dyxleHRyYWN0OltxW3AtMl0scVtwLTFdLHFbcF1dfX10aGlzLmltcG9ydHMucXVldWUubGVu +Z3RoPjA/bj1mdW5jdGlvbigpe2codSxoKX06Zyh1LGgpfSxwYXJzZXJzOntwcmltYXJ5OmZ1bmN0 +aW9uKCl7dmFyIGEsYj1bXTt3aGlsZSgoYT1zKHRoaXMubWl4aW4uZGVmaW5pdGlvbil8fHModGhp +cy5ydWxlKXx8cyh0aGlzLnJ1bGVzZXQpfHxzKHRoaXMubWl4aW4uY2FsbCl8fHModGhpcy5jb21t +ZW50KXx8cyh0aGlzLmRpcmVjdGl2ZSkpfHxzKC9eW1xzXG5dKy8pKWEmJmIucHVzaChhKTtyZXR1 +cm4gYn0sY29tbWVudDpmdW5jdGlvbigpe3ZhciBhO2lmKGIuY2hhckF0KGMpIT09Ii8iKXJldHVy +bjtpZihiLmNoYXJBdChjKzEpPT09Ii8iKXJldHVybiBuZXcgZS5Db21tZW50KHMoL15cL1wvLiov +KSwhMCk7aWYoYT1zKC9eXC9cKig/OlteKl18XCorW15cLypdKSpcKitcL1xuPy8pKXJldHVybiBu +ZXcgZS5Db21tZW50KGEpfSxlbnRpdGllczp7cXVvdGVkOmZ1bmN0aW9uKCl7dmFyIGEsZD1jLGY7 +Yi5jaGFyQXQoZCk9PT0ifiImJihkKyssZj0hMCk7aWYoYi5jaGFyQXQoZCkhPT0nIicmJmIuY2hh +ckF0KGQpIT09IiciKXJldHVybjtmJiZzKCJ+Iik7aWYoYT1zKC9eIigoPzpbXiJcXFxyXG5dfFxc +LikqKSJ8JygoPzpbXidcXFxyXG5dfFxcLikqKScvKSlyZXR1cm4gbmV3IGUuUXVvdGVkKGFbMF0s +YVsxXXx8YVsyXSxmKX0sa2V5d29yZDpmdW5jdGlvbigpe3ZhciBhO2lmKGE9cygvXltfQS1aYS16 +LV1bX0EtWmEtejAtOS1dKi8pKXJldHVybiBuZXcgZS5LZXl3b3JkKGEpfSxjYWxsOmZ1bmN0aW9u +KCl7dmFyIGEsYixkPWM7aWYoIShhPS9eKFtcdy1dK3wlKVwoLy5leGVjKGpbZl0pKSlyZXR1cm47 +YT1hWzFdLnRvTG93ZXJDYXNlKCk7aWYoYT09PSJ1cmwiKXJldHVybiBudWxsO2MrPWEubGVuZ3Ro +O2lmKGE9PT0iYWxwaGEiKXJldHVybiBzKHRoaXMuYWxwaGEpO3MoIigiKSxiPXModGhpcy5lbnRp +dGllcy5hcmd1bWVudHMpO2lmKCFzKCIpIikpcmV0dXJuO2lmKGEpcmV0dXJuIG5ldyBlLkNhbGwo +YSxiLGQpfSxhcmd1bWVudHM6ZnVuY3Rpb24oKXt2YXIgYT1bXSxiO3doaWxlKGI9cyh0aGlzLmV4 +cHJlc3Npb24pKXthLnB1c2goYik7aWYoIXMoIiwiKSlicmVha31yZXR1cm4gYX0sbGl0ZXJhbDpm +dW5jdGlvbigpe3JldHVybiBzKHRoaXMuZW50aXRpZXMuZGltZW5zaW9uKXx8cyh0aGlzLmVudGl0 +aWVzLmNvbG9yKXx8cyh0aGlzLmVudGl0aWVzLnF1b3RlZCl9LHVybDpmdW5jdGlvbigpe3ZhciBh +O2lmKGIuY2hhckF0KGMpIT09InUifHwhcygvXnVybFwoLykpcmV0dXJuO2E9cyh0aGlzLmVudGl0 +aWVzLnF1b3RlZCl8fHModGhpcy5lbnRpdGllcy52YXJpYWJsZSl8fHModGhpcy5lbnRpdGllcy5k +YXRhVVJJKXx8cygvXlstXHclQCRcLy4mPTo7Iys/fl0rLyl8fCIiO2lmKCFzKCIpIikpdGhyb3cg +bmV3IEVycm9yKCJtaXNzaW5nIGNsb3NpbmcgKSBmb3IgdXJsKCkiKTtyZXR1cm4gbmV3IGUuVVJM +KGEudmFsdWV8fGEuZGF0YXx8YSBpbnN0YW5jZW9mIGUuVmFyaWFibGU/YTpuZXcgZS5Bbm9ueW1v +dXMoYSksby5wYXRocyl9LGRhdGFVUkk6ZnVuY3Rpb24oKXt2YXIgYTtpZihzKC9eZGF0YTovKSl7 +YT17fSxhLm1pbWU9cygvXlteXC9dK1wvW14sOyldKy8pfHwiIixhLmNoYXJzZXQ9cygvXjtccypj +aGFyc2V0PVteLDspXSsvKXx8IiIsYS5iYXNlNjQ9cygvXjtccypiYXNlNjQvKXx8IiIsYS5kYXRh +PXMoL14sXHMqW14pXSsvKTtpZihhLmRhdGEpcmV0dXJuIGF9fSx2YXJpYWJsZTpmdW5jdGlvbigp +e3ZhciBhLGQ9YztpZihiLmNoYXJBdChjKT09PSJAIiYmKGE9cygvXkBAP1tcdy1dKy8pKSlyZXR1 +cm4gbmV3IGUuVmFyaWFibGUoYSxkKX0sY29sb3I6ZnVuY3Rpb24oKXt2YXIgYTtpZihiLmNoYXJB +dChjKT09PSIjIiYmKGE9cygvXiMoW2EtZkEtRjAtOV17Nn18W2EtZkEtRjAtOV17M30pLykpKXJl +dHVybiBuZXcgZS5Db2xvcihhWzFdKX0sZGltZW5zaW9uOmZ1bmN0aW9uKCl7dmFyIGEsZD1iLmNo +YXJDb2RlQXQoYyk7aWYoZD41N3x8ZDw0NXx8ZD09PTQ3KXJldHVybjtpZihhPXMoL14oLT9cZCpc +Lj9cZCspKHB4fCV8ZW18cGN8ZXh8aW58ZGVnfHN8bXN8cHR8Y218bW18cmFkfGdyYWR8dHVybik/ +LykpcmV0dXJuIG5ldyBlLkRpbWVuc2lvbihhWzFdLGFbMl0pfSxqYXZhc2NyaXB0OmZ1bmN0aW9u +KCl7dmFyIGEsZD1jLGY7Yi5jaGFyQXQoZCk9PT0ifiImJihkKyssZj0hMCk7aWYoYi5jaGFyQXQo +ZCkhPT0iYCIpcmV0dXJuO2YmJnMoIn4iKTtpZihhPXMoL15gKFteYF0qKWAvKSlyZXR1cm4gbmV3 +IGUuSmF2YVNjcmlwdChhWzFdLGMsZil9fSx2YXJpYWJsZTpmdW5jdGlvbigpe3ZhciBhO2lmKGIu +Y2hhckF0KGMpPT09IkAiJiYoYT1zKC9eKEBbXHctXSspXHMqOi8pKSlyZXR1cm4gYVsxXX0sc2hv +cnRoYW5kOmZ1bmN0aW9uKCl7dmFyIGEsYjtpZighdCgvXltAXHcuJS1dK1wvW0Bcdy4tXSsvKSly +ZXR1cm47aWYoKGE9cyh0aGlzLmVudGl0eSkpJiZzKCIvIikmJihiPXModGhpcy5lbnRpdHkpKSly +ZXR1cm4gbmV3IGUuU2hvcnRoYW5kKGEsYil9LG1peGluOntjYWxsOmZ1bmN0aW9uKCl7dmFyIGE9 +W10sZCxmLGcsaD1jLGk9Yi5jaGFyQXQoYyk7aWYoaSE9PSIuIiYmaSE9PSIjIilyZXR1cm47d2hp +bGUoZD1zKC9eWyMuXSg/Oltcdy1dfFxcKD86W2EtZkEtRjAtOV17MSw2fSA/fFteYS1mQS1GMC05 +XSkpKy8pKWEucHVzaChuZXcgZS5FbGVtZW50KGYsZCxjKSksZj1zKCI+Iik7cygiKCIpJiYoZz1z +KHRoaXMuZW50aXRpZXMuYXJndW1lbnRzKSkmJnMoIikiKTtpZihhLmxlbmd0aD4wJiYocygiOyIp +fHx0KCJ9IikpKXJldHVybiBuZXcgZS5taXhpbi5DYWxsKGEsZyxoKX0sZGVmaW5pdGlvbjpmdW5j +dGlvbigpe3ZhciBhLGQ9W10sZixnLGgsaTtpZihiLmNoYXJBdChjKSE9PSIuIiYmYi5jaGFyQXQo +YykhPT0iIyJ8fHQoL15bXntdKig7fH0pLykpcmV0dXJuO2lmKGY9cygvXihbIy5dKD86W1x3LV18 +XFwoPzpbYS1mQS1GMC05XXsxLDZ9ID98W15hLWZBLUYwLTldKSkrKVxzKlwoLykpe2E9ZlsxXTt3 +aGlsZShoPXModGhpcy5lbnRpdGllcy52YXJpYWJsZSl8fHModGhpcy5lbnRpdGllcy5saXRlcmFs +KXx8cyh0aGlzLmVudGl0aWVzLmtleXdvcmQpKXtpZihoIGluc3RhbmNlb2YgZS5WYXJpYWJsZSlp +ZihzKCI6IikpaWYoaT1zKHRoaXMuZXhwcmVzc2lvbikpZC5wdXNoKHtuYW1lOmgubmFtZSx2YWx1 +ZTppfSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHZhbHVlIik7ZWxzZSBkLnB1c2go +e25hbWU6aC5uYW1lfSk7ZWxzZSBkLnB1c2goe3ZhbHVlOmh9KTtpZighcygiLCIpKWJyZWFrfWlm +KCFzKCIpIikpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCApIik7Zz1zKHRoaXMuYmxvY2spO2lm +KGcpcmV0dXJuIG5ldyBlLm1peGluLkRlZmluaXRpb24oYSxkLGcpfX19LGVudGl0eTpmdW5jdGlv +bigpe3JldHVybiBzKHRoaXMuZW50aXRpZXMubGl0ZXJhbCl8fHModGhpcy5lbnRpdGllcy52YXJp +YWJsZSl8fHModGhpcy5lbnRpdGllcy51cmwpfHxzKHRoaXMuZW50aXRpZXMuY2FsbCl8fHModGhp +cy5lbnRpdGllcy5rZXl3b3JkKXx8cyh0aGlzLmVudGl0aWVzLmphdmFzY3JpcHQpfHxzKHRoaXMu +Y29tbWVudCl9LGVuZDpmdW5jdGlvbigpe3JldHVybiBzKCI7Iil8fHQoIn0iKX0sYWxwaGE6ZnVu +Y3Rpb24oKXt2YXIgYTtpZighcygvXlwob3BhY2l0eT0vaSkpcmV0dXJuO2lmKGE9cygvXlxkKy8p +fHxzKHRoaXMuZW50aXRpZXMudmFyaWFibGUpKXtpZighcygiKSIpKXRocm93IG5ldyBFcnJvcigi +bWlzc2luZyBjbG9zaW5nICkgZm9yIGFscGhhKCkiKTtyZXR1cm4gbmV3IGUuQWxwaGEoYSl9fSxl +bGVtZW50OmZ1bmN0aW9uKCl7dmFyIGEsYixkO2Q9cyh0aGlzLmNvbWJpbmF0b3IpLGE9cygvXig/ +OlxkK1wuXGQrfFxkKyklLyl8fHMoL14oPzpbLiNdP3w6KikoPzpbXHctXXxcXCg/OlthLWZBLUYw +LTldezEsNn0gP3xbXmEtZkEtRjAtOV0pKSsvKXx8cygiKiIpfHxzKHRoaXMuYXR0cmlidXRlKXx8 +cygvXlwoW14pQF0rXCkvKTtpZihhKXJldHVybiBuZXcgZS5FbGVtZW50KGQsYSxjKTtpZihkLnZh +bHVlJiZkLnZhbHVlLmNoYXJBdCgwKT09PSImIilyZXR1cm4gbmV3IGUuRWxlbWVudChkLG51bGws +Yyl9LGNvbWJpbmF0b3I6ZnVuY3Rpb24oKXt2YXIgYSxkPWIuY2hhckF0KGMpO2lmKGQ9PT0iPiJ8 +fGQ9PT0iKyJ8fGQ9PT0ifiIpe2MrKzt3aGlsZShiLmNoYXJBdChjKT09PSIgIiljKys7cmV0dXJu +IG5ldyBlLkNvbWJpbmF0b3IoZCl9aWYoZD09PSImIil7YT0iJiIsYysrLGIuY2hhckF0KGMpPT09 +IiAiJiYoYT0iJiAiKTt3aGlsZShiLmNoYXJBdChjKT09PSIgIiljKys7cmV0dXJuIG5ldyBlLkNv +bWJpbmF0b3IoYSl9aWYoZD09PSI6IiYmYi5jaGFyQXQoYysxKT09PSI6Iil7Yys9Mjt3aGlsZShi +LmNoYXJBdChjKT09PSIgIiljKys7cmV0dXJuIG5ldyBlLkNvbWJpbmF0b3IoIjo6Iil9cmV0dXJu +IGIuY2hhckF0KGMtMSk9PT0iICI/bmV3IGUuQ29tYmluYXRvcigiICIpOm5ldyBlLkNvbWJpbmF0 +b3IobnVsbCl9LHNlbGVjdG9yOmZ1bmN0aW9uKCl7dmFyIGEsZCxmPVtdLGcsaDt3aGlsZShkPXMo +dGhpcy5lbGVtZW50KSl7Zz1iLmNoYXJBdChjKSxmLnB1c2goZCk7aWYoZz09PSJ7Inx8Zz09PSJ9 +Inx8Zz09PSI7Inx8Zz09PSIsIilicmVha31pZihmLmxlbmd0aD4wKXJldHVybiBuZXcgZS5TZWxl +Y3RvcihmKX0sdGFnOmZ1bmN0aW9uKCl7cmV0dXJuIHMoL15bYS16QS1aXVthLXpBLVotXSpbMC05 +XT8vKXx8cygiKiIpfSxhdHRyaWJ1dGU6ZnVuY3Rpb24oKXt2YXIgYT0iIixiLGMsZDtpZighcygi +WyIpKXJldHVybjtpZihiPXMoL15bYS16QS1aLV0rLyl8fHModGhpcy5lbnRpdGllcy5xdW90ZWQp +KShkPXMoL15bfH4qJF5dPz0vKSkmJihjPXModGhpcy5lbnRpdGllcy5xdW90ZWQpfHxzKC9eW1x3 +LV0rLykpP2E9W2IsZCxjLnRvQ1NTP2MudG9DU1MoKTpjXS5qb2luKCIiKTphPWI7aWYoIXMoIl0i +KSlyZXR1cm47aWYoYSlyZXR1cm4iWyIrYSsiXSJ9LGJsb2NrOmZ1bmN0aW9uKCl7dmFyIGE7aWYo +cygieyIpJiYoYT1zKHRoaXMucHJpbWFyeSkpJiZzKCJ9IikpcmV0dXJuIGF9LHJ1bGVzZXQ6ZnVu +Y3Rpb24oKXt2YXIgYT1bXSxiLGQsZjtwKCk7d2hpbGUoYj1zKHRoaXMuc2VsZWN0b3IpKXthLnB1 +c2goYikscyh0aGlzLmNvbW1lbnQpO2lmKCFzKCIsIikpYnJlYWs7cyh0aGlzLmNvbW1lbnQpfWlm +KGEubGVuZ3RoPjAmJihkPXModGhpcy5ibG9jaykpKXJldHVybiBuZXcgZS5SdWxlc2V0KGEsZCk7 +aT1jLHEoKX0scnVsZTpmdW5jdGlvbigpe3ZhciBhLGQsZz1iLmNoYXJBdChjKSxrLGw7cCgpO2lm +KGc9PT0iLiJ8fGc9PT0iIyJ8fGc9PT0iJiIpcmV0dXJuO2lmKGE9cyh0aGlzLnZhcmlhYmxlKXx8 +cyh0aGlzLnByb3BlcnR5KSl7YS5jaGFyQXQoMCkhPSJAIiYmKGw9L14oW15AK1wvJyIqYCg7e30t +XSopOy8uZXhlYyhqW2ZdKSk/KGMrPWxbMF0ubGVuZ3RoLTEsZD1uZXcgZS5Bbm9ueW1vdXMobFsx +XSkpOmE9PT0iZm9udCI/ZD1zKHRoaXMuZm9udCk6ZD1zKHRoaXMudmFsdWUpLGs9cyh0aGlzLmlt +cG9ydGFudCk7aWYoZCYmcyh0aGlzLmVuZCkpcmV0dXJuIG5ldyBlLlJ1bGUoYSxkLGssaCk7aT1j +LHEoKX19LCJpbXBvcnQiOmZ1bmN0aW9uKCl7dmFyIGE7aWYocygvXkBpbXBvcnRccysvKSYmKGE9 +cyh0aGlzLmVudGl0aWVzLnF1b3RlZCl8fHModGhpcy5lbnRpdGllcy51cmwpKSYmcygiOyIpKXJl +dHVybiBuZXcgZS5JbXBvcnQoYSxvKX0sZGlyZWN0aXZlOmZ1bmN0aW9uKCl7dmFyIGEsZCxmLGc7 +aWYoYi5jaGFyQXQoYykhPT0iQCIpcmV0dXJuO2lmKGQ9cyh0aGlzWyJpbXBvcnQiXSkpcmV0dXJu +IGQ7aWYoYT1zKC9eQG1lZGlhfEBwYWdlLyl8fHMoL15AKD86LXdlYmtpdC18LW1vei0pP2tleWZy +YW1lcy8pKXtnPShzKC9eW157XSsvKXx8IiIpLnRyaW0oKTtpZihmPXModGhpcy5ibG9jaykpcmV0 +dXJuIG5ldyBlLkRpcmVjdGl2ZShhKyIgIitnLGYpfWVsc2UgaWYoYT1zKC9eQFstYS16XSsvKSlp +ZihhPT09IkBmb250LWZhY2UiKXtpZihmPXModGhpcy5ibG9jaykpcmV0dXJuIG5ldyBlLkRpcmVj +dGl2ZShhLGYpfWVsc2UgaWYoKGQ9cyh0aGlzLmVudGl0eSkpJiZzKCI7IikpcmV0dXJuIG5ldyBl +LkRpcmVjdGl2ZShhLGQpfSxmb250OmZ1bmN0aW9uKCl7dmFyIGE9W10sYj1bXSxjLGQsZixnO3do +aWxlKGc9cyh0aGlzLnNob3J0aGFuZCl8fHModGhpcy5lbnRpdHkpKWIucHVzaChnKTthLnB1c2go +bmV3IGUuRXhwcmVzc2lvbihiKSk7aWYocygiLCIpKXdoaWxlKGc9cyh0aGlzLmV4cHJlc3Npb24p +KXthLnB1c2goZyk7aWYoIXMoIiwiKSlicmVha31yZXR1cm4gbmV3IGUuVmFsdWUoYSl9LHZhbHVl +OmZ1bmN0aW9uKCl7dmFyIGEsYj1bXSxjO3doaWxlKGE9cyh0aGlzLmV4cHJlc3Npb24pKXtiLnB1 +c2goYSk7aWYoIXMoIiwiKSlicmVha31pZihiLmxlbmd0aD4wKXJldHVybiBuZXcgZS5WYWx1ZShi +KX0saW1wb3J0YW50OmZ1bmN0aW9uKCl7aWYoYi5jaGFyQXQoYyk9PT0iISIpcmV0dXJuIHMoL14h +ICppbXBvcnRhbnQvKX0sc3ViOmZ1bmN0aW9uKCl7dmFyIGE7aWYocygiKCIpJiYoYT1zKHRoaXMu +ZXhwcmVzc2lvbikpJiZzKCIpIikpcmV0dXJuIGF9LG11bHRpcGxpY2F0aW9uOmZ1bmN0aW9uKCl7 +dmFyIGEsYixjLGQ7aWYoYT1zKHRoaXMub3BlcmFuZCkpe3doaWxlKChjPXMoIi8iKXx8cygiKiIp +KSYmKGI9cyh0aGlzLm9wZXJhbmQpKSlkPW5ldyBlLk9wZXJhdGlvbihjLFtkfHxhLGJdKTtyZXR1 +cm4gZHx8YX19LGFkZGl0aW9uOmZ1bmN0aW9uKCl7dmFyIGEsZCxmLGc7aWYoYT1zKHRoaXMubXVs +dGlwbGljYXRpb24pKXt3aGlsZSgoZj1zKC9eWy0rXVxzKy8pfHxiLmNoYXJBdChjLTEpIT0iICIm +JihzKCIrIil8fHMoIi0iKSkpJiYoZD1zKHRoaXMubXVsdGlwbGljYXRpb24pKSlnPW5ldyBlLk9w +ZXJhdGlvbihmLFtnfHxhLGRdKTtyZXR1cm4gZ3x8YX19LG9wZXJhbmQ6ZnVuY3Rpb24oKXt2YXIg +YSxkPWIuY2hhckF0KGMrMSk7Yi5jaGFyQXQoYyk9PT0iLSImJihkPT09IkAifHxkPT09IigiKSYm +KGE9cygiLSIpKTt2YXIgZj1zKHRoaXMuc3ViKXx8cyh0aGlzLmVudGl0aWVzLmRpbWVuc2lvbil8 +fHModGhpcy5lbnRpdGllcy5jb2xvcil8fHModGhpcy5lbnRpdGllcy52YXJpYWJsZSl8fHModGhp +cy5lbnRpdGllcy5jYWxsKTtyZXR1cm4gYT9uZXcgZS5PcGVyYXRpb24oIioiLFtuZXcgZS5EaW1l +bnNpb24oLTEpLGZdKTpmfSxleHByZXNzaW9uOmZ1bmN0aW9uKCl7dmFyIGEsYixjPVtdLGQ7d2hp +bGUoYT1zKHRoaXMuYWRkaXRpb24pfHxzKHRoaXMuZW50aXR5KSljLnB1c2goYSk7aWYoYy5sZW5n +dGg+MClyZXR1cm4gbmV3IGUuRXhwcmVzc2lvbihjKX0scHJvcGVydHk6ZnVuY3Rpb24oKXt2YXIg +YTtpZihhPXMoL14oXCo/LT9bLWEtel8wLTldKylccyo6LykpcmV0dXJuIGFbMV19fX19O2lmKGQu +bW9kZT09PSJicm93c2VyInx8ZC5tb2RlPT09InJoaW5vIilkLlBhcnNlci5pbXBvcnRlcj1mdW5j +dGlvbihhLGIsYyxkKXthLmNoYXJBdCgwKSE9PSIvIiYmYi5sZW5ndGg+MCYmKGE9YlswXSthKSxu +KHtocmVmOmEsdGl0bGU6YSx0eXBlOmQubWltZX0sYywhMCl9OyhmdW5jdGlvbihhKXtmdW5jdGlv +biBiKGIpe3JldHVybiBhLmZ1bmN0aW9ucy5oc2xhKGIuaCxiLnMsYi5sLGIuYSl9ZnVuY3Rpb24g +YyhiKXtpZihiIGluc3RhbmNlb2YgYS5EaW1lbnNpb24pcmV0dXJuIHBhcnNlRmxvYXQoYi51bml0 +PT0iJSI/Yi52YWx1ZS8xMDA6Yi52YWx1ZSk7aWYodHlwZW9mIGI9PSJudW1iZXIiKXJldHVybiBi +O3Rocm93e2Vycm9yOiJSdW50aW1lRXJyb3IiLG1lc3NhZ2U6ImNvbG9yIGZ1bmN0aW9ucyB0YWtl +IG51bWJlcnMgYXMgcGFyYW1ldGVycyJ9fWZ1bmN0aW9uIGQoYSl7cmV0dXJuIE1hdGgubWluKDEs +TWF0aC5tYXgoMCxhKSl9YS5mdW5jdGlvbnM9e3JnYjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRo +aXMucmdiYShhLGIsYywxKX0scmdiYTpmdW5jdGlvbihiLGQsZSxmKXt2YXIgZz1bYixkLGVdLm1h +cChmdW5jdGlvbihhKXtyZXR1cm4gYyhhKX0pLGY9YyhmKTtyZXR1cm4gbmV3IGEuQ29sb3IoZyxm +KX0saHNsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5oc2xhKGEsYixjLDEpfSxoc2xhOmZ1 +bmN0aW9uKGEsYixkLGUpe2Z1bmN0aW9uIGgoYSl7cmV0dXJuIGE9YTwwP2ErMTphPjE/YS0xOmEs +YSo2PDE/ZysoZi1nKSphKjY6YSoyPDE/ZjphKjM8Mj9nKyhmLWcpKigyLzMtYSkqNjpnfWE9Yyhh +KSUzNjAvMzYwLGI9YyhiKSxkPWMoZCksZT1jKGUpO3ZhciBmPWQ8PS41P2QqKGIrMSk6ZCtiLWQq +YixnPWQqMi1mO3JldHVybiB0aGlzLnJnYmEoaChhKzEvMykqMjU1LGgoYSkqMjU1LGgoYS0xLzMp +KjI1NSxlKX0saHVlOmZ1bmN0aW9uKGIpe3JldHVybiBuZXcgYS5EaW1lbnNpb24oTWF0aC5yb3Vu +ZChiLnRvSFNMKCkuaCkpfSxzYXR1cmF0aW9uOmZ1bmN0aW9uKGIpe3JldHVybiBuZXcgYS5EaW1l +bnNpb24oTWF0aC5yb3VuZChiLnRvSFNMKCkucyoxMDApLCIlIil9LGxpZ2h0bmVzczpmdW5jdGlv +bihiKXtyZXR1cm4gbmV3IGEuRGltZW5zaW9uKE1hdGgucm91bmQoYi50b0hTTCgpLmwqMTAwKSwi +JSIpfSxhbHBoYTpmdW5jdGlvbihiKXtyZXR1cm4gbmV3IGEuRGltZW5zaW9uKGIudG9IU0woKS5h +KX0sc2F0dXJhdGU6ZnVuY3Rpb24oYSxjKXt2YXIgZT1hLnRvSFNMKCk7cmV0dXJuIGUucys9Yy52 +YWx1ZS8xMDAsZS5zPWQoZS5zKSxiKGUpfSxkZXNhdHVyYXRlOmZ1bmN0aW9uKGEsYyl7dmFyIGU9 +YS50b0hTTCgpO3JldHVybiBlLnMtPWMudmFsdWUvMTAwLGUucz1kKGUucyksYihlKX0sbGlnaHRl +bjpmdW5jdGlvbihhLGMpe3ZhciBlPWEudG9IU0woKTtyZXR1cm4gZS5sKz1jLnZhbHVlLzEwMCxl +Lmw9ZChlLmwpLGIoZSl9LGRhcmtlbjpmdW5jdGlvbihhLGMpe3ZhciBlPWEudG9IU0woKTtyZXR1 +cm4gZS5sLT1jLnZhbHVlLzEwMCxlLmw9ZChlLmwpLGIoZSl9LGZhZGVpbjpmdW5jdGlvbihhLGMp +e3ZhciBlPWEudG9IU0woKTtyZXR1cm4gZS5hKz1jLnZhbHVlLzEwMCxlLmE9ZChlLmEpLGIoZSl9 +LGZhZGVvdXQ6ZnVuY3Rpb24oYSxjKXt2YXIgZT1hLnRvSFNMKCk7cmV0dXJuIGUuYS09Yy52YWx1 +ZS8xMDAsZS5hPWQoZS5hKSxiKGUpfSxmYWRlOmZ1bmN0aW9uKGEsYyl7dmFyIGU9YS50b0hTTCgp +O3JldHVybiBlLmE9Yy52YWx1ZS8xMDAsZS5hPWQoZS5hKSxiKGUpfSxzcGluOmZ1bmN0aW9uKGEs +Yyl7dmFyIGQ9YS50b0hTTCgpLGU9KGQuaCtjLnZhbHVlKSUzNjA7cmV0dXJuIGQuaD1lPDA/MzYw +K2U6ZSxiKGQpfSxtaXg6ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWQudmFsdWUvMTAwLGY9ZSoyLTEs +Zz1iLnRvSFNMKCkuYS1jLnRvSFNMKCkuYSxoPSgoZipnPT0tMT9mOihmK2cpLygxK2YqZykpKzEp +LzIsaT0xLWgsaj1bYi5yZ2JbMF0qaCtjLnJnYlswXSppLGIucmdiWzFdKmgrYy5yZ2JbMV0qaSxi +LnJnYlsyXSpoK2MucmdiWzJdKmldLGs9Yi5hbHBoYSplK2MuYWxwaGEqKDEtZSk7cmV0dXJuIG5l +dyBhLkNvbG9yKGosayl9LGdyZXlzY2FsZTpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5kZXNhdHVy +YXRlKGIsbmV3IGEuRGltZW5zaW9uKDEwMCkpfSxlOmZ1bmN0aW9uKGIpe3JldHVybiBuZXcgYS5B +bm9ueW1vdXMoYiBpbnN0YW5jZW9mIGEuSmF2YVNjcmlwdD9iLmV2YWx1YXRlZDpiKX0sZXNjYXBl +OmZ1bmN0aW9uKGIpe3JldHVybiBuZXcgYS5Bbm9ueW1vdXMoZW5jb2RlVVJJKGIudmFsdWUpLnJl +cGxhY2UoLz0vZywiJTNEIikucmVwbGFjZSgvOi9nLCIlM0EiKS5yZXBsYWNlKC8jL2csIiUyMyIp +LnJlcGxhY2UoLzsvZywiJTNCIikucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywi +JTI5IikpfSwiJSI6ZnVuY3Rpb24oYil7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo +YXJndW1lbnRzLDEpLGQ9Yi52YWx1ZTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKylkPWQucmVw +bGFjZSgvJVtzZGFdL2ksZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXRjaCgvcy9pKT9jW2VdLnZhbHVl +OmNbZV0udG9DU1MoKTtyZXR1cm4gYS5tYXRjaCgvW0EtWl0kLyk/ZW5jb2RlVVJJQ29tcG9uZW50 +KGIpOmJ9KTtyZXR1cm4gZD1kLnJlcGxhY2UoLyUlL2csIiUiKSxuZXcgYS5RdW90ZWQoJyInK2Qr +JyInLGQpfSxyb3VuZDpmdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgYS5EaW1lbnNpb24pcmV0 +dXJuIG5ldyBhLkRpbWVuc2lvbihNYXRoLnJvdW5kKGMoYikpLGIudW5pdCk7aWYodHlwZW9mIGI9 +PSJudW1iZXIiKXJldHVybiBNYXRoLnJvdW5kKGIpO3Rocm93e2Vycm9yOiJSdW50aW1lRXJyb3Ii +LG1lc3NhZ2U6Im1hdGggZnVuY3Rpb25zIHRha2UgbnVtYmVycyBhcyBwYXJhbWV0ZXJzIn19LGFy +Z2I6ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBhLkFub255bW91cyhiLnRvQVJHQigpKX19fSkoYygi +Li90cmVlIikpLGZ1bmN0aW9uKGEpe2EuQWxwaGE9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT1hfSxh +LkFscGhhLnByb3RvdHlwZT17dG9DU1M6ZnVuY3Rpb24oKXtyZXR1cm4iYWxwaGEob3BhY2l0eT0i +Kyh0aGlzLnZhbHVlLnRvQ1NTP3RoaXMudmFsdWUudG9DU1MoKTp0aGlzLnZhbHVlKSsiKSJ9LGV2 +YWw6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWUuZXZhbCYmKHRoaXMudmFsdWU9dGhpcy52 +YWx1ZS5ldmFsKGEpKSx0aGlzfX19KGMoIi4uL3RyZWUiKSksZnVuY3Rpb24oYSl7YS5Bbm9ueW1v +dXM9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT1hLnZhbHVlfHxhfSxhLkFub255bW91cy5wcm90b3R5 +cGU9e3RvQ1NTOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LGV2YWw6ZnVuY3Rpb24oKXty +ZXR1cm4gdGhpc319fShjKCIuLi90cmVlIikpLGZ1bmN0aW9uKGEpe2EuQ2FsbD1mdW5jdGlvbihh +LGIsYyl7dGhpcy5uYW1lPWEsdGhpcy5hcmdzPWIsdGhpcy5pbmRleD1jfSxhLkNhbGwucHJvdG90 +eXBlPXtldmFsOmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMuYXJncy5tYXAoZnVuY3Rpb24oYSl7cmV0 +dXJuIGEuZXZhbChiKX0pO2lmKCEodGhpcy5uYW1lIGluIGEuZnVuY3Rpb25zKSlyZXR1cm4gbmV3 +IGEuQW5vbnltb3VzKHRoaXMubmFtZSsiKCIrYy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9D +U1MoKX0pLmpvaW4oIiwgIikrIikiKTt0cnl7cmV0dXJuIGEuZnVuY3Rpb25zW3RoaXMubmFtZV0u +YXBwbHkoYS5mdW5jdGlvbnMsYyl9Y2F0Y2goZCl7dGhyb3d7bWVzc2FnZToiZXJyb3IgZXZhbHVh +dGluZyBmdW5jdGlvbiBgIit0aGlzLm5hbWUrImAiLGluZGV4OnRoaXMuaW5kZXh9fX0sdG9DU1M6 +ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZXZhbChhKS50b0NTUygpfX19KGMoIi4uL3RyZWUiKSks +ZnVuY3Rpb24oYSl7YS5Db2xvcj1mdW5jdGlvbihhLGIpe0FycmF5LmlzQXJyYXkoYSk/dGhpcy5y +Z2I9YTphLmxlbmd0aD09Nj90aGlzLnJnYj1hLm1hdGNoKC8uezJ9L2cpLm1hcChmdW5jdGlvbihh +KXtyZXR1cm4gcGFyc2VJbnQoYSwxNil9KTp0aGlzLnJnYj1hLnNwbGl0KCIiKS5tYXAoZnVuY3Rp +b24oYSl7cmV0dXJuIHBhcnNlSW50KGErYSwxNil9KSx0aGlzLmFscGhhPXR5cGVvZiBiPT0ibnVt +YmVyIj9iOjF9LGEuQ29sb3IucHJvdG90eXBlPXtldmFsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9 +LHRvQ1NTOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWxwaGE8MT8icmdiYSgiK3RoaXMucmdiLm1h +cChmdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5yb3VuZChhKX0pLmNvbmNhdCh0aGlzLmFscGhhKS5q +b2luKCIsICIpKyIpIjoiIyIrdGhpcy5yZ2IubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhPU1hdGgu +cm91bmQoYSksYT0oYT4yNTU/MjU1OmE8MD8wOmEpLnRvU3RyaW5nKDE2KSxhLmxlbmd0aD09PTE/ +IjAiK2E6YX0pLmpvaW4oIiIpfSxvcGVyYXRlOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9W107YyBpbnN0 +YW5jZW9mIGEuQ29sb3J8fChjPWMudG9Db2xvcigpKTtmb3IodmFyIGU9MDtlPDM7ZSsrKWRbZV09 +YS5vcGVyYXRlKGIsdGhpcy5yZ2JbZV0sYy5yZ2JbZV0pO3JldHVybiBuZXcgYS5Db2xvcihkLHRo +aXMuYWxwaGErYy5hbHBoYSl9LHRvSFNMOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yZ2JbMF0vMjU1 +LGI9dGhpcy5yZ2JbMV0vMjU1LGM9dGhpcy5yZ2JbMl0vMjU1LGQ9dGhpcy5hbHBoYSxlPU1hdGgu +bWF4KGEsYixjKSxmPU1hdGgubWluKGEsYixjKSxnLGgsaT0oZStmKS8yLGo9ZS1mO2lmKGU9PT1m +KWc9aD0wO2Vsc2V7aD1pPi41P2ovKDItZS1mKTpqLyhlK2YpO3N3aXRjaChlKXtjYXNlIGE6Zz0o +Yi1jKS9qKyhiPGM/NjowKTticmVhaztjYXNlIGI6Zz0oYy1hKS9qKzI7YnJlYWs7Y2FzZSBjOmc9 +KGEtYikvais0fWcvPTZ9cmV0dXJue2g6ZyozNjAsczpoLGw6aSxhOmR9fSx0b0FSR0I6ZnVuY3Rp +b24oKXt2YXIgYT1bTWF0aC5yb3VuZCh0aGlzLmFscGhhKjI1NSldLmNvbmNhdCh0aGlzLnJnYik7 +cmV0dXJuIiMiK2EubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhPU1hdGgucm91bmQoYSksYT0oYT4y +NTU/MjU1OmE8MD8wOmEpLnRvU3RyaW5nKDE2KSxhLmxlbmd0aD09PTE/IjAiK2E6YX0pLmpvaW4o +IiIpfX19KGMoIi4uL3RyZWUiKSksZnVuY3Rpb24oYSl7YS5Db21tZW50PWZ1bmN0aW9uKGEsYil7 +dGhpcy52YWx1ZT1hLHRoaXMuc2lsZW50PSEhYn0sYS5Db21tZW50LnByb3RvdHlwZT17dG9DU1M6 +ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY29tcHJlc3M/IiI6dGhpcy52YWx1ZX0sZXZhbDpmdW5jdGlv +bigpe3JldHVybiB0aGlzfX19KGMoIi4uL3RyZWUiKSksZnVuY3Rpb24oYSl7YS5EaW1lbnNpb249 +ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlPXBhcnNlRmxvYXQoYSksdGhpcy51bml0PWJ8fG51bGx9 +LGEuRGltZW5zaW9uLnByb3RvdHlwZT17ZXZhbDpmdW5jdGlvbigpe3JldHVybiB0aGlzfSx0b0Nv +bG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBhLkNvbG9yKFt0aGlzLnZhbHVlLHRoaXMudmFsdWUs +dGhpcy52YWx1ZV0pfSx0b0NTUzpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmFsdWUrdGhpcy51bml0 +O3JldHVybiBhfSxvcGVyYXRlOmZ1bmN0aW9uKGIsYyl7cmV0dXJuIG5ldyBhLkRpbWVuc2lvbihh +Lm9wZXJhdGUoYix0aGlzLnZhbHVlLGMudmFsdWUpLHRoaXMudW5pdHx8Yy51bml0KX19fShjKCIu +Li90cmVlIikpLGZ1bmN0aW9uKGEpe2EuRGlyZWN0aXZlPWZ1bmN0aW9uKGIsYyl7dGhpcy5uYW1l +PWIsQXJyYXkuaXNBcnJheShjKT90aGlzLnJ1bGVzZXQ9bmV3IGEuUnVsZXNldChbXSxjKTp0aGlz +LnZhbHVlPWN9LGEuRGlyZWN0aXZlLnByb3RvdHlwZT17dG9DU1M6ZnVuY3Rpb24oYSxiKXtyZXR1 +cm4gdGhpcy5ydWxlc2V0Pyh0aGlzLnJ1bGVzZXQucm9vdD0hMCx0aGlzLm5hbWUrKGIuY29tcHJl +c3M/InsiOiIge1xuICAiKSt0aGlzLnJ1bGVzZXQudG9DU1MoYSxiKS50cmltKCkucmVwbGFjZSgv +XG4vZywiXG4gICIpKyhiLmNvbXByZXNzPyJ9IjoiXG59XG4iKSk6dGhpcy5uYW1lKyIgIit0aGlz +LnZhbHVlLnRvQ1NTKCkrIjtcbiJ9LGV2YWw6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZnJhbWVzLnVu +c2hpZnQodGhpcyksdGhpcy5ydWxlc2V0PXRoaXMucnVsZXNldCYmdGhpcy5ydWxlc2V0LmV2YWwo +YSksYS5mcmFtZXMuc2hpZnQoKSx0aGlzfSx2YXJpYWJsZTpmdW5jdGlvbihiKXtyZXR1cm4gYS5S +dWxlc2V0LnByb3RvdHlwZS52YXJpYWJsZS5jYWxsKHRoaXMucnVsZXNldCxiKX0sZmluZDpmdW5j +dGlvbigpe3JldHVybiBhLlJ1bGVzZXQucHJvdG90eXBlLmZpbmQuYXBwbHkodGhpcy5ydWxlc2V0 +LGFyZ3VtZW50cyl9LHJ1bGVzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIGEuUnVsZXNldC5wcm90b3R5 +cGUucnVsZXNldHMuYXBwbHkodGhpcy5ydWxlc2V0KX19fShjKCIuLi90cmVlIikpLGZ1bmN0aW9u +KGEpe2EuRWxlbWVudD1mdW5jdGlvbihiLGMsZCl7dGhpcy5jb21iaW5hdG9yPWIgaW5zdGFuY2Vv +ZiBhLkNvbWJpbmF0b3I/YjpuZXcgYS5Db21iaW5hdG9yKGIpLHRoaXMudmFsdWU9Yz9jLnRyaW0o +KToiIix0aGlzLmluZGV4PWR9LGEuRWxlbWVudC5wcm90b3R5cGUudG9DU1M9ZnVuY3Rpb24oYSl7 +cmV0dXJuIHRoaXMuY29tYmluYXRvci50b0NTUyhhfHx7fSkrdGhpcy52YWx1ZX0sYS5Db21iaW5h +dG9yPWZ1bmN0aW9uKGEpe2E9PT0iICI/dGhpcy52YWx1ZT0iICI6YT09PSImICI/dGhpcy52YWx1 +ZT0iJiAiOnRoaXMudmFsdWU9YT9hLnRyaW0oKToiIn0sYS5Db21iaW5hdG9yLnByb3RvdHlwZS50 +b0NTUz1mdW5jdGlvbihhKXtyZXR1cm57IiI6IiIsIiAiOiIgIiwiJiI6IiIsIiYgIjoiICIsIjoi +OiIgOiIsIjo6IjoiOjoiLCIrIjphLmNvbXByZXNzPyIrIjoiICsgIiwifiI6YS5jb21wcmVzcz8i +fiI6IiB+ICIsIj4iOmEuY29tcHJlc3M/Ij4iOiIgPiAifVt0aGlzLnZhbHVlXX19KGMoIi4uL3Ry +ZWUiKSksZnVuY3Rpb24oYSl7YS5FeHByZXNzaW9uPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWU9YX0s +YS5FeHByZXNzaW9uLnByb3RvdHlwZT17ZXZhbDpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy52YWx1 +ZS5sZW5ndGg+MT9uZXcgYS5FeHByZXNzaW9uKHRoaXMudmFsdWUubWFwKGZ1bmN0aW9uKGEpe3Jl +dHVybiBhLmV2YWwoYil9KSk6dGhpcy52YWx1ZS5sZW5ndGg9PT0xP3RoaXMudmFsdWVbMF0uZXZh +bChiKTp0aGlzfSx0b0NTUzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5tYXAoZnVuY3Rp +b24oYil7cmV0dXJuIGIudG9DU1MoYSl9KS5qb2luKCIgIil9fX0oYygiLi4vdHJlZSIpKSxmdW5j +dGlvbihhKXthLkltcG9ydD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXM7dGhpcy5fcGF0aD1iLGIg +aW5zdGFuY2VvZiBhLlF1b3RlZD90aGlzLnBhdGg9L1wuKGxlP3xjKXNzKFw/LiopPyQvLnRlc3Qo +Yi52YWx1ZSk/Yi52YWx1ZTpiLnZhbHVlKyIubGVzcyI6dGhpcy5wYXRoPWIudmFsdWUudmFsdWV8 +fGIudmFsdWUsdGhpcy5jc3M9L2NzcyhcPy4qKT8kLy50ZXN0KHRoaXMucGF0aCksdGhpcy5jc3N8 +fGMucHVzaCh0aGlzLnBhdGgsZnVuY3Rpb24oYSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJFcnJv +ciBwYXJzaW5nICIrZC5wYXRoKTtkLnJvb3Q9YX0pfSxhLkltcG9ydC5wcm90b3R5cGU9e3RvQ1NT +OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3NzPyJAaW1wb3J0ICIrdGhpcy5fcGF0aC50b0NTUygp +KyI7XG4iOiIifSxldmFsOmZ1bmN0aW9uKGIpe3ZhciBjO2lmKHRoaXMuY3NzKXJldHVybiB0aGlz +O2M9bmV3IGEuUnVsZXNldChudWxsLHRoaXMucm9vdC5ydWxlcy5zbGljZSgwKSk7Zm9yKHZhciBk +PTA7ZDxjLnJ1bGVzLmxlbmd0aDtkKyspYy5ydWxlc1tkXWluc3RhbmNlb2YgYS5JbXBvcnQmJkFy +cmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkoYy5ydWxlcyxbZCwxXS5jb25jYXQoYy5ydWxlc1tk +XS5ldmFsKGIpKSk7cmV0dXJuIGMucnVsZXN9fX0oYygiLi4vdHJlZSIpKSxmdW5jdGlvbihhKXth +LkphdmFTY3JpcHQ9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXNjYXBlZD1jLHRoaXMuZXhwcmVzc2lv +bj1hLHRoaXMuaW5kZXg9Yn0sYS5KYXZhU2NyaXB0LnByb3RvdHlwZT17ZXZhbDpmdW5jdGlvbihi +KXt2YXIgYyxkPXRoaXMsZT17fSxmPXRoaXMuZXhwcmVzc2lvbi5yZXBsYWNlKC9AXHsoW1x3LV0r +KVx9L2csZnVuY3Rpb24oYyxlKXtyZXR1cm4gYS5qc2lmeSgobmV3IGEuVmFyaWFibGUoIkAiK2Us +ZC5pbmRleCkpLmV2YWwoYikpfSk7dHJ5e2Y9bmV3IEZ1bmN0aW9uKCJyZXR1cm4gKCIrZisiKSIp +fWNhdGNoKGcpe3Rocm93e21lc3NhZ2U6IkphdmFTY3JpcHQgZXZhbHVhdGlvbiBlcnJvcjogYCIr +ZisiYCIsaW5kZXg6dGhpcy5pbmRleH19Zm9yKHZhciBoIGluIGIuZnJhbWVzWzBdLnZhcmlhYmxl +cygpKWVbaC5zbGljZSgxKV09e3ZhbHVlOmIuZnJhbWVzWzBdLnZhcmlhYmxlcygpW2hdLnZhbHVl +LHRvSlM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5ldmFsKGIpLnRvQ1NTKCl9fTt0cnl7 +Yz1mLmNhbGwoZSl9Y2F0Y2goZyl7dGhyb3d7bWVzc2FnZToiSmF2YVNjcmlwdCBldmFsdWF0aW9u +IGVycm9yOiAnIitnLm5hbWUrIjogIitnLm1lc3NhZ2UrIiciLGluZGV4OnRoaXMuaW5kZXh9fXJl +dHVybiB0eXBlb2YgYz09InN0cmluZyI/bmV3IGEuUXVvdGVkKCciJytjKyciJyxjLHRoaXMuZXNj +YXBlZCx0aGlzLmluZGV4KTpBcnJheS5pc0FycmF5KGMpP25ldyBhLkFub255bW91cyhjLmpvaW4o +IiwgIikpOm5ldyBhLkFub255bW91cyhjKX19fShjKCIuLi90cmVlIikpLGZ1bmN0aW9uKGEpe2Eu +S2V5d29yZD1mdW5jdGlvbihhKXt0aGlzLnZhbHVlPWF9LGEuS2V5d29yZC5wcm90b3R5cGU9e2V2 +YWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdG9DU1M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52 +YWx1ZX19fShjKCIuLi90cmVlIikpLGZ1bmN0aW9uKGEpe2EubWl4aW49e30sYS5taXhpbi5DYWxs +PWZ1bmN0aW9uKGIsYyxkKXt0aGlzLnNlbGVjdG9yPW5ldyBhLlNlbGVjdG9yKGIpLHRoaXMuYXJn +dW1lbnRzPWMsdGhpcy5pbmRleD1kfSxhLm1peGluLkNhbGwucHJvdG90eXBlPXtldmFsOmZ1bmN0 +aW9uKGEpe3ZhciBiLGMsZD1bXSxlPSExO2Zvcih2YXIgZj0wO2Y8YS5mcmFtZXMubGVuZ3RoO2Yr +KylpZigoYj1hLmZyYW1lc1tmXS5maW5kKHRoaXMuc2VsZWN0b3IpKS5sZW5ndGg+MCl7Yz10aGlz +LmFyZ3VtZW50cyYmdGhpcy5hcmd1bWVudHMubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmV2YWwo +YSl9KTtmb3IodmFyIGc9MDtnPGIubGVuZ3RoO2crKylpZihiW2ddLm1hdGNoKGMsYSkpdHJ5e0Fy +cmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGQsYltnXS5ldmFsKGEsdGhpcy5hcmd1bWVudHMpLnJ1 +bGVzKSxlPSEwfWNhdGNoKGgpe3Rocm93e21lc3NhZ2U6aC5tZXNzYWdlLGluZGV4OmguaW5kZXgs +c3RhY2s6aC5zdGFjayxjYWxsOnRoaXMuaW5kZXh9fWlmKGUpcmV0dXJuIGQ7dGhyb3d7bWVzc2Fn +ZToiTm8gbWF0Y2hpbmcgZGVmaW5pdGlvbiB3YXMgZm91bmQgZm9yIGAiK3RoaXMuc2VsZWN0b3Iu +dG9DU1MoKS50cmltKCkrIigiK3RoaXMuYXJndW1lbnRzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4g +YS50b0NTUygpfSkuam9pbigiLCAiKSsiKWAiLGluZGV4OnRoaXMuaW5kZXh9fXRocm93e21lc3Nh +Z2U6dGhpcy5zZWxlY3Rvci50b0NTUygpLnRyaW0oKSsiIGlzIHVuZGVmaW5lZCIsaW5kZXg6dGhp +cy5pbmRleH19fSxhLm1peGluLkRlZmluaXRpb249ZnVuY3Rpb24oYixjLGQpe3RoaXMubmFtZT1i +LHRoaXMuc2VsZWN0b3JzPVtuZXcgYS5TZWxlY3RvcihbbmV3IGEuRWxlbWVudChudWxsLGIpXSld +LHRoaXMucGFyYW1zPWMsdGhpcy5hcml0eT1jLmxlbmd0aCx0aGlzLnJ1bGVzPWQsdGhpcy5fbG9v +a3Vwcz17fSx0aGlzLnJlcXVpcmVkPWMucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIWIubmFt +ZXx8Yi5uYW1lJiYhYi52YWx1ZT9hKzE6YX0sMCksdGhpcy5wYXJlbnQ9YS5SdWxlc2V0LnByb3Rv +dHlwZSx0aGlzLmZyYW1lcz1bXX0sYS5taXhpbi5EZWZpbml0aW9uLnByb3RvdHlwZT17dG9DU1M6 +ZnVuY3Rpb24oKXtyZXR1cm4iIn0sdmFyaWFibGU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucGFy +ZW50LnZhcmlhYmxlLmNhbGwodGhpcyxhKX0sdmFyaWFibGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRo +aXMucGFyZW50LnZhcmlhYmxlcy5jYWxsKHRoaXMpfSxmaW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRo +aXMucGFyZW50LmZpbmQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxydWxlc2V0czpmdW5jdGlvbigp +e3JldHVybiB0aGlzLnBhcmVudC5ydWxlc2V0cy5hcHBseSh0aGlzKX0sZXZhbDpmdW5jdGlvbihi +LGMpe3ZhciBkPW5ldyBhLlJ1bGVzZXQobnVsbCxbXSksZSxmPVtdO2Zvcih2YXIgZz0wLGg7Zzx0 +aGlzLnBhcmFtcy5sZW5ndGg7ZysrKWlmKHRoaXMucGFyYW1zW2ddLm5hbWUpaWYoaD1jJiZjW2dd +fHx0aGlzLnBhcmFtc1tnXS52YWx1ZSlkLnJ1bGVzLnVuc2hpZnQobmV3IGEuUnVsZSh0aGlzLnBh +cmFtc1tnXS5uYW1lLGguZXZhbChiKSkpO2Vsc2UgdGhyb3d7bWVzc2FnZToid3JvbmcgbnVtYmVy +IG9mIGFyZ3VtZW50cyBmb3IgIit0aGlzLm5hbWUrIiAoIitjLmxlbmd0aCsiIGZvciAiK3RoaXMu +YXJpdHkrIikifTtmb3IodmFyIGc9MDtnPE1hdGgubWF4KHRoaXMucGFyYW1zLmxlbmd0aCxjJiZj +Lmxlbmd0aCk7ZysrKWYucHVzaChjW2ddfHx0aGlzLnBhcmFtc1tnXS52YWx1ZSk7cmV0dXJuIGQu +cnVsZXMudW5zaGlmdChuZXcgYS5SdWxlKCJAYXJndW1lbnRzIiwobmV3IGEuRXhwcmVzc2lvbihm +KSkuZXZhbChiKSkpLChuZXcgYS5SdWxlc2V0KG51bGwsdGhpcy5ydWxlcy5zbGljZSgwKSkpLmV2 +YWwoe2ZyYW1lczpbdGhpcyxkXS5jb25jYXQodGhpcy5mcmFtZXMsYi5mcmFtZXMpfSl9LG1hdGNo +OmZ1bmN0aW9uKGEsYil7dmFyIGM9YSYmYS5sZW5ndGh8fDAsZDtpZihjPHRoaXMucmVxdWlyZWQp +cmV0dXJuITE7aWYodGhpcy5yZXF1aXJlZD4wJiZjPnRoaXMucGFyYW1zLmxlbmd0aClyZXR1cm4h +MTtkPU1hdGgubWluKGMsdGhpcy5hcml0eSk7Zm9yKHZhciBlPTA7ZTxkO2UrKylpZighdGhpcy5w +YXJhbXNbZV0ubmFtZSYmYVtlXS5ldmFsKGIpLnRvQ1NTKCkhPXRoaXMucGFyYW1zW2VdLnZhbHVl +LmV2YWwoYikudG9DU1MoKSlyZXR1cm4hMTtyZXR1cm4hMH19fShjKCIuLi90cmVlIikpLGZ1bmN0 +aW9uKGEpe2EuT3BlcmF0aW9uPWZ1bmN0aW9uKGEsYil7dGhpcy5vcD1hLnRyaW0oKSx0aGlzLm9w +ZXJhbmRzPWJ9LGEuT3BlcmF0aW9uLnByb3RvdHlwZS5ldmFsPWZ1bmN0aW9uKGIpe3ZhciBjPXRo +aXMub3BlcmFuZHNbMF0uZXZhbChiKSxkPXRoaXMub3BlcmFuZHNbMV0uZXZhbChiKSxlO2lmKGMg +aW5zdGFuY2VvZiBhLkRpbWVuc2lvbiYmZCBpbnN0YW5jZW9mIGEuQ29sb3IpaWYodGhpcy5vcD09 +PSIqInx8dGhpcy5vcD09PSIrIillPWQsZD1jLGM9ZTtlbHNlIHRocm93e25hbWU6Ik9wZXJhdGlv +bkVycm9yIixtZXNzYWdlOiJDYW4ndCBzdWJzdHJhY3Qgb3IgZGl2aWRlIGEgY29sb3IgZnJvbSBh +IG51bWJlciJ9O3JldHVybiBjLm9wZXJhdGUodGhpcy5vcCxkKX0sYS5vcGVyYXRlPWZ1bmN0aW9u +KGEsYixjKXtzd2l0Y2goYSl7Y2FzZSIrIjpyZXR1cm4gYitjO2Nhc2UiLSI6cmV0dXJuIGItYztj +YXNlIioiOnJldHVybiBiKmM7Y2FzZSIvIjpyZXR1cm4gYi9jfX19KGMoIi4uL3RyZWUiKSksZnVu +Y3Rpb24oYSl7YS5RdW90ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5lc2NhcGVkPWMsdGhpcy52 +YWx1ZT1ifHwiIix0aGlzLnF1b3RlPWEuY2hhckF0KDApLHRoaXMuaW5kZXg9ZH0sYS5RdW90ZWQu +cHJvdG90eXBlPXt0b0NTUzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVzY2FwZWQ/dGhpcy52YWx1 +ZTp0aGlzLnF1b3RlK3RoaXMudmFsdWUrdGhpcy5xdW90ZX0sZXZhbDpmdW5jdGlvbihiKXt2YXIg +Yz10aGlzLGQ9dGhpcy52YWx1ZS5yZXBsYWNlKC9gKFteYF0rKWAvZyxmdW5jdGlvbihkLGUpe3Jl +dHVybihuZXcgYS5KYXZhU2NyaXB0KGUsYy5pbmRleCwhMCkpLmV2YWwoYikudmFsdWV9KS5yZXBs +YWNlKC9AXHsoW1x3LV0rKVx9L2csZnVuY3Rpb24oZCxlKXt2YXIgZj0obmV3IGEuVmFyaWFibGUo +IkAiK2UsYy5pbmRleCkpLmV2YWwoYik7cmV0dXJuIGYudmFsdWV8fGYudG9DU1MoKX0pO3JldHVy +biBuZXcgYS5RdW90ZWQodGhpcy5xdW90ZStkK3RoaXMucXVvdGUsZCx0aGlzLmVzY2FwZWQsdGhp +cy5pbmRleCl9fX0oYygiLi4vdHJlZSIpKSxmdW5jdGlvbihhKXthLlJ1bGU9ZnVuY3Rpb24oYixj +LGQsZSl7dGhpcy5uYW1lPWIsdGhpcy52YWx1ZT1jIGluc3RhbmNlb2YgYS5WYWx1ZT9jOm5ldyBh +LlZhbHVlKFtjXSksdGhpcy5pbXBvcnRhbnQ9ZD8iICIrZC50cmltKCk6IiIsdGhpcy5pbmRleD1l +LGIuY2hhckF0KDApPT09IkAiP3RoaXMudmFyaWFibGU9ITA6dGhpcy52YXJpYWJsZT0hMX0sYS5S +dWxlLnByb3RvdHlwZS50b0NTUz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YXJpYWJsZT8iIjp0 +aGlzLm5hbWUrKGEuY29tcHJlc3M/IjoiOiI6ICIpK3RoaXMudmFsdWUudG9DU1MoYSkrdGhpcy5p +bXBvcnRhbnQrIjsifSxhLlJ1bGUucHJvdG90eXBlLmV2YWw9ZnVuY3Rpb24oYil7cmV0dXJuIG5l +dyBhLlJ1bGUodGhpcy5uYW1lLHRoaXMudmFsdWUuZXZhbChiKSx0aGlzLmltcG9ydGFudCx0aGlz +LmluZGV4KX0sYS5TaG9ydGhhbmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmE9YSx0aGlzLmI9Yn0sYS5T +aG9ydGhhbmQucHJvdG90eXBlPXt0b0NTUzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLnRvQ1NT +KGEpKyIvIit0aGlzLmIudG9DU1MoYSl9LGV2YWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319fShj +KCIuLi90cmVlIikpLGZ1bmN0aW9uKGEpe2EuUnVsZXNldD1mdW5jdGlvbihhLGIpe3RoaXMuc2Vs +ZWN0b3JzPWEsdGhpcy5ydWxlcz1iLHRoaXMuX2xvb2t1cHM9e319LGEuUnVsZXNldC5wcm90b3R5 +cGU9e2V2YWw6ZnVuY3Rpb24oYil7dmFyIGM9bmV3IGEuUnVsZXNldCh0aGlzLnNlbGVjdG9ycyx0 +aGlzLnJ1bGVzLnNsaWNlKDApKTtjLnJvb3Q9dGhpcy5yb290LGIuZnJhbWVzLnVuc2hpZnQoYyk7 +aWYoYy5yb290KWZvcih2YXIgZD0wO2Q8Yy5ydWxlcy5sZW5ndGg7ZCsrKWMucnVsZXNbZF1pbnN0 +YW5jZW9mIGEuSW1wb3J0JiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGMucnVsZXMsW2Qs +MV0uY29uY2F0KGMucnVsZXNbZF0uZXZhbChiKSkpO2Zvcih2YXIgZD0wO2Q8Yy5ydWxlcy5sZW5n +dGg7ZCsrKWMucnVsZXNbZF1pbnN0YW5jZW9mIGEubWl4aW4uRGVmaW5pdGlvbiYmKGMucnVsZXNb +ZF0uZnJhbWVzPWIuZnJhbWVzLnNsaWNlKDApKTtmb3IodmFyIGQ9MDtkPGMucnVsZXMubGVuZ3Ro +O2QrKyljLnJ1bGVzW2RdaW5zdGFuY2VvZiBhLm1peGluLkNhbGwmJkFycmF5LnByb3RvdHlwZS5z +cGxpY2UuYXBwbHkoYy5ydWxlcyxbZCwxXS5jb25jYXQoYy5ydWxlc1tkXS5ldmFsKGIpKSk7Zm9y +KHZhciBkPTAsZTtkPGMucnVsZXMubGVuZ3RoO2QrKyllPWMucnVsZXNbZF0sZSBpbnN0YW5jZW9m +IGEubWl4aW4uRGVmaW5pdGlvbnx8KGMucnVsZXNbZF09ZS5ldmFsP2UuZXZhbChiKTplKTtyZXR1 +cm4gYi5mcmFtZXMuc2hpZnQoKSxjfSxtYXRjaDpmdW5jdGlvbihhKXtyZXR1cm4hYXx8YS5sZW5n +dGg9PT0wfSx2YXJpYWJsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyaWFibGVzP3RoaXMu +X3ZhcmlhYmxlczp0aGlzLl92YXJpYWJsZXM9dGhpcy5ydWxlcy5yZWR1Y2UoZnVuY3Rpb24oYixj +KXtyZXR1cm4gYyBpbnN0YW5jZW9mIGEuUnVsZSYmYy52YXJpYWJsZT09PSEwJiYoYltjLm5hbWVd +PWMpLGJ9LHt9KX0sdmFyaWFibGU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFyaWFibGVzKClb +YV19LHJ1bGVzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3J1bGVzZXRzP3RoaXMuX3J1bGVz +ZXRzOnRoaXMuX3J1bGVzZXRzPXRoaXMucnVsZXMuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBi +IGluc3RhbmNlb2YgYS5SdWxlc2V0fHxiIGluc3RhbmNlb2YgYS5taXhpbi5EZWZpbml0aW9ufSl9 +LGZpbmQ6ZnVuY3Rpb24oYixjKXtjPWN8fHRoaXM7dmFyIGQ9W10sZSxmLGc9Yi50b0NTUygpO3Jl +dHVybiBnIGluIHRoaXMuX2xvb2t1cHM/dGhpcy5fbG9va3Vwc1tnXToodGhpcy5ydWxlc2V0cygp +LmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZSE9PWMpZm9yKHZhciBnPTA7ZzxlLnNlbGVjdG9ycy5s +ZW5ndGg7ZysrKWlmKGY9Yi5tYXRjaChlLnNlbGVjdG9yc1tnXSkpe2IuZWxlbWVudHMubGVuZ3Ro +PmUuc2VsZWN0b3JzW2ddLmVsZW1lbnRzLmxlbmd0aD9BcnJheS5wcm90b3R5cGUucHVzaC5hcHBs +eShkLGUuZmluZChuZXcgYS5TZWxlY3RvcihiLmVsZW1lbnRzLnNsaWNlKDEpKSxjKSk6ZC5wdXNo +KGUpO2JyZWFrfX0pLHRoaXMuX2xvb2t1cHNbZ109ZCl9LHRvQ1NTOmZ1bmN0aW9uKGIsYyl7dmFy +IGQ9W10sZT1bXSxmPVtdLGc9W10saCxpO3RoaXMucm9vdHx8KGIubGVuZ3RoPT09MD9nPXRoaXMu +c2VsZWN0b3JzLm1hcChmdW5jdGlvbihhKXtyZXR1cm5bYV19KTp0aGlzLmpvaW5TZWxlY3RvcnMo +ZyxiLHRoaXMuc2VsZWN0b3JzKSk7Zm9yKHZhciBqPTA7ajx0aGlzLnJ1bGVzLmxlbmd0aDtqKysp +aT10aGlzLnJ1bGVzW2pdLGkucnVsZXN8fGkgaW5zdGFuY2VvZiBhLkRpcmVjdGl2ZT9mLnB1c2go +aS50b0NTUyhnLGMpKTppIGluc3RhbmNlb2YgYS5Db21tZW50P2kuc2lsZW50fHwodGhpcy5yb290 +P2YucHVzaChpLnRvQ1NTKGMpKTplLnB1c2goaS50b0NTUyhjKSkpOmkudG9DU1MmJiFpLnZhcmlh +YmxlP2UucHVzaChpLnRvQ1NTKGMpKTppLnZhbHVlJiYhaS52YXJpYWJsZSYmZS5wdXNoKGkudmFs +dWUudG9TdHJpbmcoKSk7cmV0dXJuIGY9Zi5qb2luKCIiKSx0aGlzLnJvb3Q/ZC5wdXNoKGUuam9p +bihjLmNvbXByZXNzPyIiOiJcbiIpKTplLmxlbmd0aD4wJiYoaD1nLm1hcChmdW5jdGlvbihhKXty +ZXR1cm4gYS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9DU1MoYyl9KS5qb2luKCIiKS50cmlt +KCl9KS5qb2luKGMuY29tcHJlc3M/IiwiOmcubGVuZ3RoPjM/IixcbiI6IiwgIiksZC5wdXNoKGgs +KGMuY29tcHJlc3M/InsiOiIge1xuICAiKStlLmpvaW4oYy5jb21wcmVzcz8iIjoiXG4gICIpKyhj +LmNvbXByZXNzPyJ9IjoiXG59XG4iKSkpLGQucHVzaChmKSxkLmpvaW4oIiIpKyhjLmNvbXByZXNz +PyJcbiI6IiIpfSxqb2luU2VsZWN0b3JzOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGMu +bGVuZ3RoO2QrKyl0aGlzLmpvaW5TZWxlY3RvcihhLGIsY1tkXSl9LGpvaW5TZWxlY3RvcjpmdW5j +dGlvbihiLGMsZCl7dmFyIGU9W10sZj1bXSxnPVtdLGg9W10saT0hMSxqO2Zvcih2YXIgaz0wO2s8 +ZC5lbGVtZW50cy5sZW5ndGg7aysrKWo9ZC5lbGVtZW50c1trXSxqLmNvbWJpbmF0b3IudmFsdWUu +Y2hhckF0KDApPT09IiYiJiYoaT0hMCksaT9oLnB1c2goaik6Zy5wdXNoKGopO2l8fChoPWcsZz1b +XSksZy5sZW5ndGg+MCYmZS5wdXNoKG5ldyBhLlNlbGVjdG9yKGcpKSxoLmxlbmd0aD4wJiZmLnB1 +c2gobmV3IGEuU2VsZWN0b3IoaCkpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWIucHVzaChl +LmNvbmNhdChjW2xdKS5jb25jYXQoZikpfX19KGMoIi4uL3RyZWUiKSksZnVuY3Rpb24oYSl7YS5T +ZWxlY3Rvcj1mdW5jdGlvbihhKXt0aGlzLmVsZW1lbnRzPWEsdGhpcy5lbGVtZW50c1swXS5jb21i +aW5hdG9yLnZhbHVlPT09IiImJih0aGlzLmVsZW1lbnRzWzBdLmNvbWJpbmF0b3IudmFsdWU9IiAi +KX0sYS5TZWxlY3Rvci5wcm90b3R5cGUubWF0Y2g9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5lbGVt +ZW50cy5sZW5ndGgsYz1hLmVsZW1lbnRzLmxlbmd0aCxkPU1hdGgubWluKGIsYyk7aWYoYjxjKXJl +dHVybiExO2Zvcih2YXIgZT0wO2U8ZDtlKyspaWYodGhpcy5lbGVtZW50c1tlXS52YWx1ZSE9PWEu +ZWxlbWVudHNbZV0udmFsdWUpcmV0dXJuITEKO3JldHVybiEwfSxhLlNlbGVjdG9yLnByb3RvdHlw +ZS50b0NTUz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5fY3NzP3RoaXMuX2Nzczp0aGlzLl9jc3M9 +dGhpcy5lbGVtZW50cy5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIHR5cGVvZiBiPT0ic3RyaW5nIj8i +ICIrYi50cmltKCk6Yi50b0NTUyhhKX0pLmpvaW4oIiIpfX0oYygiLi4vdHJlZSIpKSxmdW5jdGlv +bihiKXtiLlVSTD1mdW5jdGlvbihiLGMpe2IuZGF0YT90aGlzLmF0dHJzPWI6KCEvXig/Omh0dHBz +PzpcL1wvfGZpbGU6XC9cL3xkYXRhOik/Ly50ZXN0KGIudmFsdWUpJiZjLmxlbmd0aD4wJiZ0eXBl +b2YgYSE9InVuZGVmaW5lZCImJihiLnZhbHVlPWNbMF0rKGIudmFsdWUuY2hhckF0KDApPT09Ii8i +P2IudmFsdWUuc2xpY2UoMSk6Yi52YWx1ZSkpLHRoaXMudmFsdWU9Yix0aGlzLnBhdGhzPWMpfSxi +LlVSTC5wcm90b3R5cGU9e3RvQ1NTOmZ1bmN0aW9uKCl7cmV0dXJuInVybCgiKyh0aGlzLmF0dHJz +PyJkYXRhOiIrdGhpcy5hdHRycy5taW1lK3RoaXMuYXR0cnMuY2hhcnNldCt0aGlzLmF0dHJzLmJh +c2U2NCt0aGlzLmF0dHJzLmRhdGE6dGhpcy52YWx1ZS50b0NTUygpKSsiKSJ9LGV2YWw6ZnVuY3Rp +b24oYSl7cmV0dXJuIHRoaXMuYXR0cnM/dGhpczpuZXcgYi5VUkwodGhpcy52YWx1ZS5ldmFsKGEp +LHRoaXMucGF0aHMpfX19KGMoIi4uL3RyZWUiKSksZnVuY3Rpb24oYSl7YS5WYWx1ZT1mdW5jdGlv +bihhKXt0aGlzLnZhbHVlPWEsdGhpcy5pcz0idmFsdWUifSxhLlZhbHVlLnByb3RvdHlwZT17ZXZh +bDpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg9PT0xP3RoaXMudmFsdWVbMF0u +ZXZhbChiKTpuZXcgYS5WYWx1ZSh0aGlzLnZhbHVlLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5l +dmFsKGIpfSkpfSx0b0NTUzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5tYXAoZnVuY3Rp +b24oYil7cmV0dXJuIGIudG9DU1MoYSl9KS5qb2luKGEuY29tcHJlc3M/IiwiOiIsICIpfX19KGMo +Ii4uL3RyZWUiKSksZnVuY3Rpb24oYSl7YS5WYXJpYWJsZT1mdW5jdGlvbihhLGIpe3RoaXMubmFt +ZT1hLHRoaXMuaW5kZXg9Yn0sYS5WYXJpYWJsZS5wcm90b3R5cGU9e2V2YWw6ZnVuY3Rpb24oYil7 +dmFyIGMsZCxlPXRoaXMubmFtZTtlLmluZGV4T2YoIkBAIik9PTAmJihlPSJAIisobmV3IGEuVmFy +aWFibGUoZS5zbGljZSgxKSkpLmV2YWwoYikudmFsdWUpO2lmKGM9YS5maW5kKGIuZnJhbWVzLGZ1 +bmN0aW9uKGEpe2lmKGQ9YS52YXJpYWJsZShlKSlyZXR1cm4gZC52YWx1ZS5ldmFsKGIpfSkpcmV0 +dXJuIGM7dGhyb3d7bWVzc2FnZToidmFyaWFibGUgIitlKyIgaXMgdW5kZWZpbmVkIixpbmRleDp0 +aGlzLmluZGV4fX19fShjKCIuLi90cmVlIikpLGMoIi4vdHJlZSIpLmZpbmQ9ZnVuY3Rpb24oYSxi +KXtmb3IodmFyIGM9MCxkO2M8YS5sZW5ndGg7YysrKWlmKGQ9Yi5jYWxsKGEsYVtjXSkpcmV0dXJu +IGQ7cmV0dXJuIG51bGx9LGMoIi4vdHJlZSIpLmpzaWZ5PWZ1bmN0aW9uKGEpe3JldHVybiBBcnJh +eS5pc0FycmF5KGEudmFsdWUpJiZhLnZhbHVlLmxlbmd0aD4xPyJbIithLnZhbHVlLm1hcChmdW5j +dGlvbihhKXtyZXR1cm4gYS50b0NTUyghMSl9KS5qb2luKCIsICIpKyJdIjphLnRvQ1NTKCExKX07 +dmFyIGY9bG9jYXRpb24ucHJvdG9jb2w9PT0iZmlsZToifHxsb2NhdGlvbi5wcm90b2NvbD09PSJj +aHJvbWU6Inx8bG9jYXRpb24ucHJvdG9jb2w9PT0iY2hyb21lLWV4dGVuc2lvbjoifHxsb2NhdGlv +bi5wcm90b2NvbD09PSJyZXNvdXJjZToiO2QuZW52PWQuZW52fHwobG9jYXRpb24uaG9zdG5hbWU9 +PSIxMjcuMC4wLjEifHxsb2NhdGlvbi5ob3N0bmFtZT09IjAuMC4wLjAifHxsb2NhdGlvbi5ob3N0 +bmFtZT09ImxvY2FsaG9zdCJ8fGxvY2F0aW9uLnBvcnQubGVuZ3RoPjB8fGY/ImRldmVsb3BtZW50 +IjoicHJvZHVjdGlvbiIpLGQuYXN5bmM9ITEsZC5wb2xsPWQucG9sbHx8KGY/MWUzOjE1MDApLGQu +d2F0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53YXRjaE1vZGU9ITB9LGQudW53YXRjaD1mdW5j +dGlvbigpe3JldHVybiB0aGlzLndhdGNoTW9kZT0hMX0sZC5lbnY9PT0iZGV2ZWxvcG1lbnQiPyhk +Lm9wdGltaXphdGlvbj0wLC8hd2F0Y2gvLnRlc3QobG9jYXRpb24uaGFzaCkmJmQud2F0Y2goKSxk +LndhdGNoVGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtkLndhdGNoTW9kZSYmbShmdW5jdGlv +bihhLGIsYyl7YSYmcChhLnRvQ1NTKCksYixjLmxhc3RNb2RpZmllZCl9KX0sZC5wb2xsKSk6ZC5v +cHRpbWl6YXRpb249Mzt2YXIgZzt0cnl7Zz10eXBlb2YgYS5sb2NhbFN0b3JhZ2U9PSJ1bmRlZmlu +ZWQiP251bGw6YS5sb2NhbFN0b3JhZ2V9Y2F0Y2goaCl7Zz1udWxsfXZhciBpPWRvY3VtZW50Lmdl +dEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksaj0vXnRleHRcLyh4LSk/bGVzcyQvO2Quc2hlZXRz +PVtdO2Zvcih2YXIgaz0wO2s8aS5sZW5ndGg7aysrKShpW2tdLnJlbD09PSJzdHlsZXNoZWV0L2xl +c3MifHxpW2tdLnJlbC5tYXRjaCgvc3R5bGVzaGVldC8pJiZpW2tdLnR5cGUubWF0Y2goaikpJiZk +LnNoZWV0cy5wdXNoKGlba10pO2QucmVmcmVzaD1mdW5jdGlvbihhKXt2YXIgYixjO2I9Yz1uZXcg +RGF0ZSxtKGZ1bmN0aW9uKGEsZCxlKXtlLmxvY2FsP3QoImxvYWRpbmcgIitkLmhyZWYrIiBmcm9t +IGNhY2hlLiIpOih0KCJwYXJzZWQgIitkLmhyZWYrIiBzdWNjZXNzZnVsbHkuIikscChhLnRvQ1NT +KCksZCxlLmxhc3RNb2RpZmllZCkpLHQoImNzcyBmb3IgIitkLmhyZWYrIiBnZW5lcmF0ZWQgaW4g +IisobmV3IERhdGUtYykrIm1zIiksZS5yZW1haW5pbmc9PT0wJiZ0KCJjc3MgZ2VuZXJhdGVkIGlu +ICIrKG5ldyBEYXRlLWIpKyJtcyIpLGM9bmV3IERhdGV9LGEpLGwoKX0sZC5yZWZyZXNoU3R5bGVz +PWwsZC5yZWZyZXNoKGQuZW52PT09ImRldmVsb3BtZW50Iil9KSh3aW5kb3cpOw== + +reset.less +3965 +XWiki.Admin +1321900318000 +1.2 +LyogUmVzZXQubGVzcw0KICogUHJvcHMgdG8gRXJpYyBNZXllciAobWV5ZXJ3ZWIuY29tKSBmb3Ig +aGlzIENTUyByZXNldCBmaWxlLiBXZSdyZSB1c2luZyBhbiBhZGFwdGVkIHZlcnNpb24gaGVyZQl0 +aGF0IGN1dHMgb3V0IHNvbWUgb2YgdGhlIHJlc2V0IEhUTUwgZWxlbWVudHMgd2Ugd2lsbCBuZXZl +ciBuZWVkIGhlcmUgKGkuZS4sIGRmbiwgc2FtcCwgZXRjKS4NCiAqIC0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g +Ki8NCg0KDQovLyBFUklDIE1FWUVSIFJFU0VUDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpodG1sLCBib2R5IHsgbWFyZ2luOiAwOyBwYWRk +aW5nOiAwOyB9DQpoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGEs +IGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBx +LCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBkZCwg +ZGwsIGR0LCBsaSwgb2wsIHVsLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgYnV0dG9u +LCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCB7IG1hcmdp +bjogMDsgcGFkZGluZzogMDsgYm9yZGVyOiAwOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXN0 +eWxlOiBub3JtYWw7IGZvbnQtc2l6ZTogMTAwJTsgbGluZS1oZWlnaHQ6IDE7IGZvbnQtZmFtaWx5 +OiBpbmhlcml0OyB9DQp0YWJsZSB7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1z +cGFjaW5nOiAwOyB9DQpvbCwgdWwgeyBsaXN0LXN0eWxlOiBub25lOyB9DQpxOmJlZm9yZSwgcTph +ZnRlciwgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIgeyBjb250ZW50OiAiIjsg +fQ0KDQoNCi8vIE5vcm1hbGl6ZS5jc3MNCi8vIFB1bGxpbmcgaW4gc2VsZWN0IHJlc2V0cyBmb3Jt +IHRoZSBub3JtYWxpemUuY3NzIHByb2plY3QNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIERpc3BsYXkgaW4gSUU2LTkgYW5kIEZGMw0K +Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gU291cmNlOiBodHRwOi8vZ2l0aHViLmNv +bS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MNCmh0bWwgew0KICBvdmVyZmxvdy15OiBzY3JvbGw7DQog +IGZvbnQtc2l6ZTogMTAwJTsNCiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOw0KICAg +ICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7DQp9DQovLyBGb2N1cyBzdGF0ZXMNCmE6Zm9j +dXMgew0KICBvdXRsaW5lOiB0aGluIGRvdHRlZDsNCn0NCi8vIEhvdmVyICYgQWN0aXZlDQphOmhv +dmVyLA0KYTphY3RpdmUgew0KICBvdXRsaW5lOiAwOw0KfQ0KDQovLyBEaXNwbGF5IGluIElFNi05 +IGFuZCBGRjMNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIFNvdXJjZTogaHR0cDov +L2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzDQphcnRpY2xlLA0KYXNpZGUsDQpkZXRh +aWxzLA0KZmlnY2FwdGlvbiwNCmZpZ3VyZSwNCmZvb3RlciwNCmhlYWRlciwNCmhncm91cCwNCm5h +diwNCnNlY3Rpb24gew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLy8gRGlzcGxheSBibG9jayBp +biBJRTYtOSBhbmQgRkYzDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBTb3VyY2U6 +IGh0dHA6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcw0KYXVkaW8sDQpjYW52YXMs +DQp2aWRlbyB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgKmRpc3BsYXk6IGlubGluZTsN +CiAgKnpvb206IDE7DQp9DQoNCi8vIFByZXZlbnRzIG1vZGVybiBicm93c2VycyBmcm9tIGRpc3Bs +YXlpbmcgJ2F1ZGlvJyB3aXRob3V0IGNvbnRyb2xzDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tDQovLyBTb3VyY2U6IGh0dHA6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcw0K +YXVkaW86bm90KFtjb250cm9sc10pIHsNCiAgICBkaXNwbGF5OiBub25lOw0KfQ0KDQovLyBQcmV2 +ZW50cyBzdWIgYW5kIHN1cCBhZmZlY3RpbmcgbGluZS1oZWlnaHQgaW4gYWxsIGJyb3dzZXJzDQov +LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBTb3VyY2U6IGh0dHA6Ly9naXRodWIuY29t +L25lY29sYXMvbm9ybWFsaXplLmNzcw0Kc3ViLA0Kc3VwIHsNCiAgZm9udC1zaXplOiA3NSU7DQog +IGxpbmUtaGVpZ2h0OiAwOw0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIHZlcnRpY2FsLWFsaWdu +OiBiYXNlbGluZTsNCn0NCnN1cCB7DQogIHRvcDogLTAuNWVtOw0KfQ0Kc3ViIHsNCiAgYm90dG9t +OiAtMC4yNWVtOw0KfQ0KDQovLyBJbWcgYm9yZGVyIGluIGEncyBhbmQgaW1hZ2UgcXVhbGl0eQ0K +Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gU291cmNlOiBodHRwOi8vZ2l0aHViLmNv +bS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MNCmltZyB7DQogICAgYm9yZGVyOiAwOw0KICAgIC1tcy1p +bnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7DQp9DQoNCi8vIEZvcm1zDQovLyAtLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tDQovLyBTb3VyY2U6IGh0dHA6Ly9naXRodWIuY29tL25lY29sYXMvbm9y +bWFsaXplLmNzcw0KDQovLyBGb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLCBtYXJnaW4gY2hhbmdl +cywgbWlzYyBjb25zaXN0ZW5jeQ0KYnV0dG9uLA0KaW5wdXQsDQpzZWxlY3QsDQp0ZXh0YXJlYSB7 +DQogIGZvbnQtc2l6ZTogMTAwJTsNCiAgbWFyZ2luOiAwOw0KICB2ZXJ0aWNhbC1hbGlnbjogYmFz +ZWxpbmU7DQogICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KYnV0dG9uLA0KaW5wdXQgew0K +ICBsaW5lLWhlaWdodDogbm9ybWFsOyAvLyBGRjMvNCBoYXZlICFpbXBvcnRhbnQgb24gbGluZS1o +ZWlnaHQgaW4gVUEgc3R5bGVzaGVldA0KICAqb3ZlcmZsb3c6IHZpc2libGU7IC8vIElubmVyIHNw +YWNpbmcgaWUgSUU2LzcNCn0NCmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwNCmlucHV0OjotbW96 +LWZvY3VzLWlubmVyIHsgLy8gSW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIG9kZGl0aWVzIGluIEZG +My80DQogIGJvcmRlcjogMDsNCiAgcGFkZGluZzogMDsNCn0NCmJ1dHRvbiwNCmlucHV0W3R5cGU9 +ImJ1dHRvbiJdLA0KaW5wdXRbdHlwZT0icmVzZXQiXSwNCmlucHV0W3R5cGU9InN1Ym1pdCJdIHsN +CiAgY3Vyc29yOiBwb2ludGVyOyAvLyBDdXJzb3JzIG9uIGFsbCBidXR0b25zIGFwcGxpZWQgY29u +c2lzdGVudGx5DQogIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyBTdHlsZSBjbGljYWJs +ZSBpbnB1dHMgaW4gaU9TDQp9DQppbnB1dFt0eXBlPSJzZWFyY2giXSB7IC8vIEFwcGVhcmFuY2Ug +aW4gU2FmYXJpL0Nocm9tZQ0KICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsNCiAgLXdl +YmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsNCiAgICAgLW1vei1ib3gtc2l6aW5nOiBjb250 +ZW50LWJveDsNCiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsNCn0NCmlucHV0W3R5 +cGU9InNlYXJjaCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHsNCiAgLXdlYmtpdC1hcHBl +YXJhbmNlOiBub25lOyAvLyBJbm5lci1wYWRkaW5nIGlzc3VlcyBpbiBDaHJvbWUgT1NYLCBTYWZh +cmkgNQ0KfQ0KdGV4dGFyZWEgew0KICBvdmVyZmxvdzogYXV0bzsgLy8gUmVtb3ZlIHZlcnRpY2Fs +IHNjcm9sbGJhciBpbiBJRTYtOQ0KICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvLyBSZWFkYWJpbGl0 +eSBhbmQgYWxpZ25tZW50IGNyb3NzLWJyb3dzZXINCn0= + +type.less +2985 +XWiki.Admin +1321900319000 +1.2 +LyogVHlwb2dyYXBoeS5sZXNzDQogKiBIZWFkaW5ncywgYm9keSB0ZXh0LCBsaXN0cywgY29kZSwg +YW5kIG1vcmUgZm9yIGEgdmVyc2F0aWxlIGFuZCBkdXJhYmxlIHR5cG9ncmFwaHkgc3lzdGVtDQog +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCg0KLy8gQk9EWSBURVhUDQov +LyAtLS0tLS0tLS0NCg0KcCB7DQogICNmb250ID4gLnNob3J0aGFuZChub3JtYWwsQGJhc2Vmb250 +LEBiYXNlbGluZSk7DQogIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDI7DQogIHNtYWxsIHsN +CiAgICBmb250LXNpemU6IEBiYXNlZm9udCAtIDI7DQogICAgY29sb3I6IEBncmF5TGlnaHQ7DQog +IH0NCn0NCg0KDQovLyBIRUFESU5HUw0KLy8gLS0tLS0tLS0NCg0KaDEsIGgyLCBoMywgaDQsIGg1 +LCBoNiB7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBjb2xvcjogQGdyYXlEYXJrOw0KICBzbWFs +bCB7DQogICAgY29sb3I6IEBncmF5TGlnaHQ7DQogIH0NCn0NCmgxIHsNCiAgbWFyZ2luLWJvdHRv +bTogQGJhc2VsaW5lOw0KICBmb250LXNpemU6IDMwcHg7DQogIGxpbmUtaGVpZ2h0OiBAYmFzZWxp +bmUgKiAyOw0KICBzbWFsbCB7DQogICAgZm9udC1zaXplOiAxOHB4Ow0KICB9DQp9DQpoMiB7DQog +IGZvbnQtc2l6ZTogMjRweDsNCiAgbGluZS1oZWlnaHQ6IEBiYXNlbGluZSAqIDI7DQogIHNtYWxs +IHsNCiAgICBmb250LXNpemU6IDE0cHg7DQogIH0NCn0NCmgzLCBoNCwgaDUsIGg2IHsNCiAgbGlu +ZS1oZWlnaHQ6IEBiYXNlbGluZSAqIDI7DQp9DQpoMyB7DQogIGZvbnQtc2l6ZTogMThweDsNCiAg +c21hbGwgew0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgfQ0KfQ0KaDQgew0KICBmb250LXNpemU6 +IDE2cHg7DQogIHNtYWxsIHsNCiAgICBmb250LXNpemU6IDEycHg7DQogIH0NCn0NCmg1IHsNCiAg +Zm9udC1zaXplOiAxNHB4Ow0KfQ0KaDYgew0KICBmb250LXNpemU6IDEzcHg7DQogIGNvbG9yOiBA +Z3JheUxpZ2h0Ow0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KfQ0KDQoNCi8vIENPTE9S +Uw0KLy8gLS0tLS0tDQoNCi8vIFVub3JkZXJlZCBhbmQgT3JkZXJlZCBsaXN0cw0KdWwsIG9sIHsN +CiAgbWFyZ2luOiAwIDAgQGJhc2VsaW5lIDI1cHg7DQp9DQp1bCB1bCwNCnVsIG9sLA0Kb2wgb2ws +DQpvbCB1bCB7DQogIG1hcmdpbi1ib3R0b206IDA7DQp9DQp1bCB7DQogIGxpc3Qtc3R5bGU6IGRp +c2M7DQp9DQpvbCB7DQogIGxpc3Qtc3R5bGU6IGRlY2ltYWw7DQp9DQpsaSB7DQogIGxpbmUtaGVp +Z2h0OiBAYmFzZWxpbmU7DQogIGNvbG9yOiBAZ3JheTsNCn0NCnVsLnVuc3R5bGVkIHsNCiAgbGlz +dC1zdHlsZTogbm9uZTsNCiAgbWFyZ2luLWxlZnQ6IDA7DQp9DQoNCi8vIERlc2NyaXB0aW9uIExp +c3RzDQpkbCB7DQogIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZTsNCiAgZHQsIGRkIHsNCiAgICBs +aW5lLWhlaWdodDogQGJhc2VsaW5lOw0KICB9DQogIGR0IHsNCiAgICBmb250LXdlaWdodDogYm9s +ZDsNCiAgfQ0KICBkZCB7DQogICAgbWFyZ2luLWxlZnQ6IEBiYXNlbGluZSAvIDI7DQogIH0NCn0N +Cg0KLy8gTUlTQw0KLy8gLS0tLQ0KDQovLyBIb3Jpem9udGFsIHJ1bGVzDQpociB7DQogIG1hcmdp +bjogMjBweCAwIDE5cHg7DQogIGJvcmRlcjogMDsNCiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk +ICNlZWU7DQp9DQoNCi8vIEVtcGhhc2lzDQpzdHJvbmcgew0KICBmb250LXN0eWxlOiBpbmhlcml0 +Ow0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCmVtIHsNCiAgZm9udC1zdHlsZTogaXRhbGljOw0K +ICBmb250LXdlaWdodDogaW5oZXJpdDsNCiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7DQp9DQoubXV0 +ZWQgew0KICBjb2xvcjogQGdyYXlMaWdodDsNCn0NCg0KLy8gQmxvY2txdW90ZXMNCmJsb2NrcXVv +dGUgew0KICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmU7DQogIGJvcmRlci1sZWZ0OiA1cHggc29s +aWQgI2VlZTsNCiAgcGFkZGluZy1sZWZ0OiAxNXB4Ow0KICBwIHsNCiAgICAjZm9udCA+IC5zaG9y +dGhhbmQoMzAwLDE0cHgsQGJhc2VsaW5lKTsNCiAgICBtYXJnaW4tYm90dG9tOiAwOw0KICB9DQog +IHNtYWxsIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICAjZm9udCA+IC5zaG9ydGhhbmQoMzAw +LDEycHgsQGJhc2VsaW5lKTsNCiAgICBjb2xvcjogQGdyYXlMaWdodDsNCiAgICAmOmJlZm9yZSB7 +DQogICAgICBjb250ZW50OiAnXDIwMTQgXDAwQTAnOw0KICAgIH0NCiAgfQ0KfQ0KDQovLyBBZGRy +ZXNzZXMNCmFkZHJlc3Mgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbGluZS1oZWlnaHQ6IEBiYXNl +bGluZTsNCiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lOw0KfQ0KDQovLyBJbmxpbmUgYW5kIGJs +b2NrIGNvZGUgc3R5bGVzDQpjb2RlLCBwcmUgew0KICBwYWRkaW5nOiAwIDNweCAycHg7DQogIGZv +bnQtZmFtaWx5OiBNb25hY28sIEFuZGFsZSBNb25vLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOw0K +ICBmb250LXNpemU6IDEycHg7DQogIC5ib3JkZXItcmFkaXVzKDNweCk7DQp9DQpjb2RlIHsNCiAg +YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAb3JhbmdlLCA0MCUpOw0KICBjb2xvcjogcmdiYSgw +LDAsMCwuNzUpOw0KICBwYWRkaW5nOiAxcHggM3B4Ow0KfQ0KcHJlIHsNCiAgYmFja2dyb3VuZC1j +b2xvcjogI2Y1ZjVmNTsNCiAgZGlzcGxheTogYmxvY2s7DQogIHBhZGRpbmc6IChAYmFzZWxpbmUg +LSAxKSAvIDI7DQogIG1hcmdpbjogMCAwIEBiYXNlbGluZTsNCiAgbGluZS1oZWlnaHQ6IEBiYXNl +bGluZTsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KICBi +b3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4xNSk7DQogIC5ib3JkZXItcmFkaXVzKDNweCk7 +DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsNCiAgd29yZC13 +cmFwOiBicmVhay13b3JkOw0KDQp9 + + + +XWiki.XWikiSkins + + + + + + + + + +0 +baseskin +2 +0 +Base Skin +30 +0 + + +com.xpn.xwiki.objects.classes.StringClass + + + +0 +--- +bootstrap.css +12 +0 +bootstrap.css +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +bootstrap.less +17 +0 +bootstrap.less +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +PureText +edit.vm +9 +0 +Edit +15 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +endpage.vm +14 +0 +endpage.vm +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +PureText +footer.vm +6 +0 +Footer +15 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +PureText +header.vm +5 +0 +Header +15 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +hierarchy.vm +16 +0 +hierarchy.vm +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +livetable.css +20 +0 +livetable.css +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +logo +3 +0 +Logo +30 +0 + + +com.xpn.xwiki.objects.classes.StringClass + + + +0 +name +1 +0 +Name +30 +0 + + +com.xpn.xwiki.objects.classes.StringClass + + + +0 +--- +sidebar.vm +13 +0 +sidebar.vm +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +startpage.vm +10 +0 +startpage.vm +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +PureText +style.css +4 +0 +Style +15 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +topbar.vm +11 +0 +topbar.vm +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +variables.less +18 +0 +variables.less +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +PureText +view.vm +8 +0 +View +15 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +PureText +viewheader.vm +7 +0 +View Header +15 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +xwiki.css +15 +0 +xwiki.css +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + + +0 +--- +xwiki.less +19 +0 +xwiki.less +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + + +Lyrebird.Skin +0 +XWiki.XWikiSkins +4d6aa0a7-e3f5-47d8-81f6-3a2f9dfae84c + +colibri + + +/*! + * Bootstrap v1.4.0 + * + * Copyright 2011 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + * Date: Wed Nov 16 00:28:10 PST 2011 + */ +/* Reset.less + * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc). + * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ +html, body { + margin: 0; + padding: 0; +} +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +cite, +code, +del, +dfn, +em, +img, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +dd, +dl, +dt, +li, +ol, +ul, +fieldset, +form, +label, +legend, +button, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td { + margin: 0; + padding: 0; + border: 0; + font-weight: normal; + font-style: normal; + font-size: 100%; + line-height: 1; + font-family: inherit; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +ol, ul { + list-style: none; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +html { + overflow-y: scroll; + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted; +} +a:hover, a:active { + outline: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; + -ms-interpolation-mode: bicubic; +} +button, +input, +select, +textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} +button, input { + line-height: normal; + *overflow: visible; +} +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +/* Variables.less + * Variables to customize the look and feel of Bootstrap + * ----------------------------------------------------- */ +/* Mixins.less + * Snippets of reusable CSS to develop faster and keep code readable + * ----------------------------------------------------------------- */ +/* + * Scaffolding + * Basic and global styles for generating a grid system, structural layout, and page templates + * ------------------------------------------------------------------------------------------- */ +body { + background-color: #ffffff; + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; + color: #404040; +} +.container { + width: 940px; + margin-left: auto; + margin-right: auto; + zoom: 1; +} +.container:before, .container:after { + display: table; + content: ""; + zoom: 1; +} +.container:after { + clear: both; +} +.container-fluid { + position: relative; + min-width: 940px; + padding-left: 20px; + padding-right: 20px; + zoom: 1; +} +.container-fluid:before, .container-fluid:after { + display: table; + content: ""; + zoom: 1; +} +.container-fluid:after { + clear: both; +} +.container-fluid > .sidebar { + position: absolute; + top: 0; + left: 20px; + width: 220px; +} +.container-fluid > .content { + margin-left: 240px; +} +a { + color: #0069d6; + text-decoration: none; + line-height: inherit; + font-weight: inherit; +} +a:hover { + color: #00438a; + text-decoration: underline; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.row { + zoom: 1; + margin-left: -20px; +} +.row:before, .row:after { + display: table; + content: ""; + zoom: 1; +} +.row:after { + clear: both; +} +.row > [class*="span"] { + display: inline; + float: left; + margin-left: 20px; +} +.span1 { + width: 40px; +} +.span2 { + width: 100px; +} +.span3 { + width: 160px; +} +.span4 { + width: 220px; +} +.span5 { + width: 280px; +} +.span6 { + width: 340px; +} +.span7 { + width: 400px; +} +.span8 { + width: 460px; +} +.span9 { + width: 520px; +} +.span10 { + width: 580px; +} +.span11 { + width: 640px; +} +.span12 { + width: 700px; +} +.span13 { + width: 760px; +} +.span14 { + width: 820px; +} +.span15 { + width: 880px; +} +.span16 { + width: 940px; +} +.span17 { + width: 1000px; +} +.span18 { + width: 1060px; +} +.span19 { + width: 1120px; +} +.span20 { + width: 1180px; +} +.span21 { + width: 1240px; +} +.span22 { + width: 1300px; +} +.span23 { + width: 1360px; +} +.span24 { + width: 1420px; +} +.row > .offset1 { + margin-left: 80px; +} +.row > .offset2 { + margin-left: 140px; +} +.row > .offset3 { + margin-left: 200px; +} +.row > .offset4 { + margin-left: 260px; +} +.row > .offset5 { + margin-left: 320px; +} +.row > .offset6 { + margin-left: 380px; +} +.row > .offset7 { + margin-left: 440px; +} +.row > .offset8 { + margin-left: 500px; +} +.row > .offset9 { + margin-left: 560px; +} +.row > .offset10 { + margin-left: 620px; +} +.row > .offset11 { + margin-left: 680px; +} +.row > .offset12 { + margin-left: 740px; +} +.span-one-third { + width: 300px; +} +.span-two-thirds { + width: 620px; +} +.row > .offset-one-third { + margin-left: 340px; +} +.row > .offset-two-thirds { + margin-left: 660px; +} +/* Typography.less + * Headings, body text, lists, code, and more for a versatile and durable typography system + * ---------------------------------------------------------------------------------------- */ +p { + font-size: 13px; + font-weight: normal; + line-height: 18px; + margin-bottom: 9px; +} +p small { + font-size: 11px; + color: #bfbfbf; +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: bold; + color: #404040; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + color: #bfbfbf; +} +h1 { + margin-bottom: 18px; + font-size: 30px; + line-height: 36px; +} +h1 small { + font-size: 18px; +} +h2 { + font-size: 24px; + line-height: 36px; +} +h2 small { + font-size: 14px; +} +h3, +h4, +h5, +h6 { + line-height: 36px; +} +h3 { + font-size: 18px; +} +h3 small { + font-size: 14px; +} +h4 { + font-size: 16px; +} +h4 small { + font-size: 12px; +} +h5 { + font-size: 14px; +} +h6 { + font-size: 13px; + color: #bfbfbf; + text-transform: uppercase; +} +ul, ol { + margin: 0 0 18px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +ul { + list-style: disc; +} +ol { + list-style: decimal; +} +li { + line-height: 18px; + color: #808080; +} +ul.unstyled { + list-style: none; + margin-left: 0; +} +dl { + margin-bottom: 18px; +} +dl dt, dl dd { + line-height: 18px; +} +dl dt { + font-weight: bold; +} +dl dd { + margin-left: 9px; +} +hr { + margin: 20px 0 19px; + border: 0; + border-bottom: 1px solid #eee; +} +strong { + font-style: inherit; + font-weight: bold; +} +em { + font-style: italic; + font-weight: inherit; + line-height: inherit; +} +.muted { + color: #bfbfbf; +} +blockquote { + margin-bottom: 18px; + border-left: 5px solid #eee; + padding-left: 15px; +} +blockquote p { + font-size: 14px; + font-weight: 300; + line-height: 18px; + margin-bottom: 0; +} +blockquote small { + display: block; + font-size: 12px; + font-weight: 300; + line-height: 18px; + color: #bfbfbf; +} +blockquote small:before { + content: '\2014 \00A0'; +} +address { + display: block; + line-height: 18px; + margin-bottom: 18px; +} +code, pre { + padding: 0 3px 2px; + font-family: Monaco, Andale Mono, Courier New, monospace; + font-size: 12px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + background-color: #fee9cc; + color: rgba(0, 0, 0, 0.75); + padding: 1px 3px; +} +pre { + background-color: #f5f5f5; + display: block; + padding: 8.5px; + margin: 0 0 18px; + line-height: 18px; + font-size: 12px; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} +/* Forms.less + * Base styles for various input types, form layouts, and states + * ------------------------------------------------------------- */ +form { + margin-bottom: 18px; +} +fieldset { + margin-bottom: 18px; + padding-top: 18px; +} +fieldset legend { + display: block; + padding-left: 150px; + font-size: 19.5px; + line-height: 1; + color: #404040; + *padding: 0 0 5px 145px; + /* IE6-7 */ + + *line-height: 1.5; + /* IE6-7 */ + +} +form .clearfix { + margin-bottom: 18px; + zoom: 1; +} +form .clearfix:before, form .clearfix:after { + display: table; + content: ""; + zoom: 1; +} +form .clearfix:after { + clear: both; +} +label, +input, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: normal; +} +label { + padding-top: 6px; + font-size: 13px; + line-height: 18px; + float: left; + width: 130px; + text-align: right; + color: #404040; +} +form .input { + margin-left: 150px; +} +input[type=checkbox], input[type=radio] { + cursor: pointer; +} +input, +textarea, +select, +.uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + font-size: 13px; + line-height: 18px; + color: #808080; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +select { + padding: initial; +} +input[type=checkbox], input[type=radio] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + /* IE6-7 */ + + line-height: normal; + border: none; +} +input[type=file] { + background-color: #ffffff; + padding: initial; + border: initial; + line-height: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +input[type=button], input[type=reset], input[type=submit] { + width: auto; + height: auto; +} +select, input[type=file] { + height: 27px; + *height: auto; + line-height: 27px; + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + +} +select[multiple] { + height: inherit; + background-color: #ffffff; +} +textarea { + height: auto; +} +.uneditable-input { + background-color: #ffffff; + display: block; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +:-moz-placeholder { + color: #bfbfbf; +} +::-webkit-input-placeholder { + color: #bfbfbf; +} +input, textarea { + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); +} +input:focus, textarea:focus { + outline: 0; + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); +} +input[type=file]:focus, input[type=checkbox]:focus, select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: 1px dotted #666; +} +form .clearfix.error > label, form .clearfix.error .help-block, form .clearfix.error .help-inline { + color: #b94a48; +} +form .clearfix.error input, form .clearfix.error textarea { + color: #b94a48; + border-color: #ee5f5b; +} +form .clearfix.error input:focus, form .clearfix.error textarea:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +form .clearfix.error .input-prepend .add-on, form .clearfix.error .input-append .add-on { + color: #b94a48; + background-color: #fce6e6; + border-color: #b94a48; +} +form .clearfix.warning > label, form .clearfix.warning .help-block, form .clearfix.warning .help-inline { + color: #c09853; +} +form .clearfix.warning input, form .clearfix.warning textarea { + color: #c09853; + border-color: #ccae64; +} +form .clearfix.warning input:focus, form .clearfix.warning textarea:focus { + border-color: #be9a3f; + -webkit-box-shadow: 0 0 6px #e5d6b1; + -moz-box-shadow: 0 0 6px #e5d6b1; + box-shadow: 0 0 6px #e5d6b1; +} +form .clearfix.warning .input-prepend .add-on, form .clearfix.warning .input-append .add-on { + color: #c09853; + background-color: #d2b877; + border-color: #c09853; +} +form .clearfix.success > label, form .clearfix.success .help-block, form .clearfix.success .help-inline { + color: #468847; +} +form .clearfix.success input, form .clearfix.success textarea { + color: #468847; + border-color: #57a957; +} +form .clearfix.success input:focus, form .clearfix.success textarea:focus { + border-color: #458845; + -webkit-box-shadow: 0 0 6px #9acc9a; + -moz-box-shadow: 0 0 6px #9acc9a; + box-shadow: 0 0 6px #9acc9a; +} +form .clearfix.success .input-prepend .add-on, form .clearfix.success .input-append .add-on { + color: #468847; + background-color: #bcddbc; + border-color: #468847; +} +.input-mini, +input.mini, +textarea.mini, +select.mini { + width: 60px; +} +.input-small, +input.small, +textarea.small, +select.small { + width: 90px; +} +.input-medium, +input.medium, +textarea.medium, +select.medium { + width: 150px; +} +.input-large, +input.large, +textarea.large, +select.large { + width: 210px; +} +.input-xlarge, +input.xlarge, +textarea.xlarge, +select.xlarge { + width: 270px; +} +.input-xxlarge, +input.xxlarge, +textarea.xxlarge, +select.xxlarge { + width: 530px; +} +textarea.xxlarge { + overflow-y: auto; +} +input.span1, textarea.span1 { + display: inline-block; + float: none; + width: 30px; + margin-left: 0; +} +input.span2, textarea.span2 { + display: inline-block; + float: none; + width: 90px; + margin-left: 0; +} +input.span3, textarea.span3 { + display: inline-block; + float: none; + width: 150px; + margin-left: 0; +} +input.span4, textarea.span4 { + display: inline-block; + float: none; + width: 210px; + margin-left: 0; +} +input.span5, textarea.span5 { + display: inline-block; + float: none; + width: 270px; + margin-left: 0; +} +input.span6, textarea.span6 { + display: inline-block; + float: none; + width: 330px; + margin-left: 0; +} +input.span7, textarea.span7 { + display: inline-block; + float: none; + width: 390px; + margin-left: 0; +} +input.span8, textarea.span8 { + display: inline-block; + float: none; + width: 450px; + margin-left: 0; +} +input.span9, textarea.span9 { + display: inline-block; + float: none; + width: 510px; + margin-left: 0; +} +input.span10, textarea.span10 { + display: inline-block; + float: none; + width: 570px; + margin-left: 0; +} +input.span11, textarea.span11 { + display: inline-block; + float: none; + width: 630px; + margin-left: 0; +} +input.span12, textarea.span12 { + display: inline-block; + float: none; + width: 690px; + margin-left: 0; +} +input.span13, textarea.span13 { + display: inline-block; + float: none; + width: 750px; + margin-left: 0; +} +input.span14, textarea.span14 { + display: inline-block; + float: none; + width: 810px; + margin-left: 0; +} +input.span15, textarea.span15 { + display: inline-block; + float: none; + width: 870px; + margin-left: 0; +} +input.span16, textarea.span16 { + display: inline-block; + float: none; + width: 930px; + margin-left: 0; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + background-color: #f5f5f5; + border-color: #ddd; + cursor: not-allowed; +} +.actions { + background: #f5f5f5; + margin-top: 18px; + margin-bottom: 18px; + padding: 17px 20px 18px 150px; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; +} +.actions .secondary-action { + float: right; +} +.actions .secondary-action a { + line-height: 30px; +} +.actions .secondary-action a:hover { + text-decoration: underline; +} +.help-inline, .help-block { + font-size: 13px; + line-height: 18px; + color: #bfbfbf; +} +.help-inline { + padding-left: 5px; + *position: relative; + /* IE6-7 */ + + *top: -5px; + /* IE6-7 */ + +} +.help-block { + display: block; + max-width: 600px; +} +.inline-inputs { + color: #808080; +} +.inline-inputs span { + padding: 0 2px 0 1px; +} +.input-prepend input, .input-append input { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend .add-on, .input-append .add-on { + position: relative; + background: #f5f5f5; + border: 1px solid #ccc; + z-index: 2; + float: left; + display: block; + width: auto; + min-width: 16px; + height: 18px; + padding: 4px 4px 4px 5px; + margin-right: -1px; + font-weight: normal; + line-height: 18px; + color: #bfbfbf; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, .input-append .active { + background: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on { + *margin-top: 1px; + /* IE6-7 */ + +} +.input-append input { + float: left; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .add-on { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin-right: 0; + margin-left: -1px; +} +.inputs-list { + margin: 0 0 5px; + width: 100%; +} +.inputs-list li { + display: block; + padding: 0; + width: 100%; +} +.inputs-list label { + display: block; + float: none; + width: auto; + padding: 0; + margin-left: 20px; + line-height: 18px; + text-align: left; + white-space: normal; +} +.inputs-list label strong { + color: #808080; +} +.inputs-list label small { + font-size: 11px; + font-weight: normal; +} +.inputs-list .inputs-list { + margin-left: 25px; + margin-bottom: 10px; + padding-top: 0; +} +.inputs-list:first-child { + padding-top: 6px; +} +.inputs-list li + li { + padding-top: 2px; +} +.inputs-list input[type=radio], .inputs-list input[type=checkbox] { + margin-bottom: 0; + margin-left: -20px; + float: left; +} +.form-stacked { + padding-left: 20px; +} +.form-stacked fieldset { + padding-top: 9px; +} +.form-stacked legend { + padding-left: 0; +} +.form-stacked label { + display: block; + float: none; + width: auto; + font-weight: bold; + text-align: left; + line-height: 20px; + padding-top: 0; +} +.form-stacked .clearfix { + margin-bottom: 9px; +} +.form-stacked .clearfix div.input { + margin-left: 0; +} +.form-stacked .inputs-list { + margin-bottom: 0; +} +.form-stacked .inputs-list li { + padding-top: 0; +} +.form-stacked .inputs-list li label { + font-weight: normal; + padding-top: 0; +} +.form-stacked div.clearfix.error { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + margin-top: 0; + margin-left: -10px; +} +.form-stacked .actions { + margin-left: -20px; + padding-left: 20px; +} +/* + * Tables.less + * Tables for, you guessed it, tabular data + * ---------------------------------------- */ +table { + width: 100%; + margin-bottom: 18px; + padding: 0; + font-size: 13px; + border-collapse: collapse; +} +table th, table td { + padding: 10px 10px 9px; + line-height: 18px; + text-align: left; +} +table th { + padding-top: 9px; + font-weight: bold; + vertical-align: middle; +} +table td { + vertical-align: top; + border-top: 1px solid #ddd; +} +table tbody th { + border-top: 1px solid #ddd; + vertical-align: top; +} +.condensed-table th, .condensed-table td { + padding: 5px 5px 4px; +} +.bordered-table { + border: 1px solid #ddd; + border-collapse: separate; + *border-collapse: collapse; + /* IE7, collapse table to remove spacing */ + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.bordered-table th + th, .bordered-table td + td, .bordered-table th + td { + border-left: 1px solid #ddd; +} +.bordered-table thead tr:first-child th:first-child, .bordered-table tbody tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.bordered-table thead tr:first-child th:last-child, .bordered-table tbody tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.bordered-table tbody tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.bordered-table tbody tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} +table .span1 { + width: 20px; +} +table .span2 { + width: 60px; +} +table .span3 { + width: 100px; +} +table .span4 { + width: 140px; +} +table .span5 { + width: 180px; +} +table .span6 { + width: 220px; +} +table .span7 { + width: 260px; +} +table .span8 { + width: 300px; +} +table .span9 { + width: 340px; +} +table .span10 { + width: 380px; +} +table .span11 { + width: 420px; +} +table .span12 { + width: 460px; +} +table .span13 { + width: 500px; +} +table .span14 { + width: 540px; +} +table .span15 { + width: 580px; +} +table .span16 { + width: 620px; +} +.zebra-striped tbody tr:nth-child(odd) td, .zebra-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +.zebra-striped tbody tr:hover td, .zebra-striped tbody tr:hover th { + background-color: #f5f5f5; +} +table .header { + cursor: pointer; +} +table .header:after { + content: ""; + float: right; + margin-top: 7px; + border-width: 0 4px 4px; + border-style: solid; + border-color: #000 transparent; + visibility: hidden; +} +table .headerSortUp, table .headerSortDown { + background-color: rgba(141, 192, 219, 0.25); + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); +} +table .header:hover:after { + visibility: visible; +} +table .headerSortDown:after, table .headerSortDown:hover:after { + visibility: visible; + filter: alpha(opacity=60); + -khtml-opacity: 0.6; + -moz-opacity: 0.6; + opacity: 0.6; +} +table .headerSortUp:after { + border-bottom: none; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000; + visibility: visible; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + filter: alpha(opacity=60); + -khtml-opacity: 0.6; + -moz-opacity: 0.6; + opacity: 0.6; +} +table .blue { + color: #049cdb; + border-bottom-color: #049cdb; +} +table .headerSortUp.blue, table .headerSortDown.blue { + background-color: #ade6fe; +} +table .green { + color: #46a546; + border-bottom-color: #46a546; +} +table .headerSortUp.green, table .headerSortDown.green { + background-color: #cdeacd; +} +table .red { + color: #9d261d; + border-bottom-color: #9d261d; +} +table .headerSortUp.red, table .headerSortDown.red { + background-color: #f4c8c5; +} +table .yellow { + color: #ffc40d; + border-bottom-color: #ffc40d; +} +table .headerSortUp.yellow, table .headerSortDown.yellow { + background-color: #fff6d9; +} +table .orange { + color: #f89406; + border-bottom-color: #f89406; +} +table .headerSortUp.orange, table .headerSortDown.orange { + background-color: #fee9cc; +} +table .purple { + color: #7a43b6; + border-bottom-color: #7a43b6; +} +table .headerSortUp.purple, table .headerSortDown.purple { + background-color: #e2d5f0; +} +/* Patterns.less + * Repeatable UI elements outside the base styles provided from the scaffolding + * ---------------------------------------------------------------------------- */ +.topbar { + height: 40px; + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 10000; + overflow: visible; +} +.topbar a { + color: #bfbfbf; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.topbar h3 a:hover, .topbar .brand:hover, .topbar ul .active > a { + background-color: #333; + background-color: rgba(255, 255, 255, 0.05); + color: #ffffff; + text-decoration: none; +} +.topbar h3 { + position: relative; +} +.topbar h3 a, .topbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + color: #ffffff; + font-size: 20px; + font-weight: 200; + line-height: 1; +} +.topbar p { + margin: 0; + line-height: 40px; +} +.topbar p a:hover { + background-color: transparent; + color: #ffffff; +} +.topbar form { + float: left; + margin: 5px 0 0 0; + position: relative; + filter: alpha(opacity=100); + -khtml-opacity: 1; + -moz-opacity: 1; + opacity: 1; +} +.topbar form.pull-right { + float: right; +} +.topbar input { + background-color: #444; + background-color: rgba(255, 255, 255, 0.3); + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: normal; + font-weight: 13px; + line-height: 1; + padding: 4px 9px; + color: #ffffff; + color: rgba(255, 255, 255, 0.75); + border: 1px solid #111; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.topbar input:-moz-placeholder { + color: #e6e6e6; +} +.topbar input::-webkit-input-placeholder { + color: #e6e6e6; +} +.topbar input:hover { + background-color: #bfbfbf; + background-color: rgba(255, 255, 255, 0.5); + color: #ffffff; +} +.topbar input:focus, .topbar input.focused { + outline: 0; + background-color: #ffffff; + color: #404040; + text-shadow: 0 1px 0 #ffffff; + border: 0; + padding: 5px 10px; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} +.topbar-inner, .topbar .fill { + background-color: #222; + background-color: #222222; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222)); + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} +.topbar div > ul, .nav { + display: block; + float: left; + margin: 0 10px 0 0; + position: relative; + left: 0; +} +.topbar div > ul > li, .nav > li { + display: block; + float: left; +} +.topbar div > ul a, .nav a { + display: block; + float: none; + padding: 10px 10px 11px; + line-height: 19px; + text-decoration: none; +} +.topbar div > ul a:hover, .nav a:hover { + color: #ffffff; + text-decoration: none; +} +.topbar div > ul .active > a, .nav .active > a { + background-color: #222; + background-color: rgba(0, 0, 0, 0.5); +} +.topbar div > ul.secondary-nav, .nav.secondary-nav { + float: right; + margin-left: 10px; + margin-right: 0; +} +.topbar div > ul.secondary-nav .menu-dropdown, +.nav.secondary-nav .menu-dropdown, +.topbar div > ul.secondary-nav .dropdown-menu, +.nav.secondary-nav .dropdown-menu { + right: 0; + border: 0; +} +.topbar div > ul a.menu:hover, +.nav a.menu:hover, +.topbar div > ul li.open .menu, +.nav li.open .menu, +.topbar div > ul .dropdown-toggle:hover, +.nav .dropdown-toggle:hover, +.topbar div > ul .dropdown.open .dropdown-toggle, +.nav .dropdown.open .dropdown-toggle { + background: #444; + background: rgba(255, 255, 255, 0.05); +} +.topbar div > ul .menu-dropdown, +.nav .menu-dropdown, +.topbar div > ul .dropdown-menu, +.nav .dropdown-menu { + background-color: #333; +} +.topbar div > ul .menu-dropdown a.menu, +.nav .menu-dropdown a.menu, +.topbar div > ul .dropdown-menu a.menu, +.nav .dropdown-menu a.menu, +.topbar div > ul .menu-dropdown .dropdown-toggle, +.nav .menu-dropdown .dropdown-toggle, +.topbar div > ul .dropdown-menu .dropdown-toggle, +.nav .dropdown-menu .dropdown-toggle { + color: #ffffff; +} +.topbar div > ul .menu-dropdown a.menu.open, +.nav .menu-dropdown a.menu.open, +.topbar div > ul .dropdown-menu a.menu.open, +.nav .dropdown-menu a.menu.open, +.topbar div > ul .menu-dropdown .dropdown-toggle.open, +.nav .menu-dropdown .dropdown-toggle.open, +.topbar div > ul .dropdown-menu .dropdown-toggle.open, +.nav .dropdown-menu .dropdown-toggle.open { + background: #444; + background: rgba(255, 255, 255, 0.05); +} +.topbar div > ul .menu-dropdown li a, +.nav .menu-dropdown li a, +.topbar div > ul .dropdown-menu li a, +.nav .dropdown-menu li a { + color: #999; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.topbar div > ul .menu-dropdown li a:hover, +.nav .menu-dropdown li a:hover, +.topbar div > ul .dropdown-menu li a:hover, +.nav .dropdown-menu li a:hover { + background-color: #191919; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919)); + background-image: -moz-linear-gradient(top, #292929, #191919); + background-image: -ms-linear-gradient(top, #292929, #191919); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919)); + background-image: -webkit-linear-gradient(top, #292929, #191919); + background-image: -o-linear-gradient(top, #292929, #191919); + background-image: linear-gradient(top, #292929, #191919); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0); + color: #ffffff; +} +.topbar div > ul .menu-dropdown .active a, +.nav .menu-dropdown .active a, +.topbar div > ul .dropdown-menu .active a, +.nav .dropdown-menu .active a { + color: #ffffff; +} +.topbar div > ul .menu-dropdown .divider, +.nav .menu-dropdown .divider, +.topbar div > ul .dropdown-menu .divider, +.nav .dropdown-menu .divider { + background-color: #222; + border-color: #444; +} +.topbar ul .menu-dropdown li a, .topbar ul .dropdown-menu li a { + padding: 4px 15px; +} +li.menu, .dropdown { + position: relative; +} +a.menu:after, .dropdown-toggle:after { + width: 0; + height: 0; + display: inline-block; + content: "&darr;"; + text-indent: -99999px; + vertical-align: top; + margin-top: 8px; + margin-left: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #ffffff; + filter: alpha(opacity=50); + -khtml-opacity: 0.5; + -moz-opacity: 0.5; + opacity: 0.5; +} +.menu-dropdown, .dropdown-menu { + background-color: #ffffff; + float: left; + display: none; + position: absolute; + top: 40px; + z-index: 900; + min-width: 160px; + max-width: 220px; + _width: 160px; + margin-left: 0; + margin-right: 0; + padding: 6px 0; + zoom: 1; + border-color: #999; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 0 1px 1px; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.menu-dropdown li, .dropdown-menu li { + float: none; + display: block; + background-color: none; +} +.menu-dropdown .divider, .dropdown-menu .divider { + height: 1px; + margin: 5px 0; + overflow: hidden; + background-color: #eee; + border-bottom: 1px solid #ffffff; +} +.topbar .dropdown-menu a, .dropdown-menu a { + display: block; + padding: 4px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #808080; + text-shadow: 0 1px 0 #ffffff; +} +.topbar .dropdown-menu a:hover, +.dropdown-menu a:hover, +.topbar .dropdown-menu a.hover, +.dropdown-menu a.hover { + background-color: #dddddd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd)); + background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); + background-image: -ms-linear-gradient(top, #eeeeee, #dddddd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd)); + background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); + background-image: -o-linear-gradient(top, #eeeeee, #dddddd); + background-image: linear-gradient(top, #eeeeee, #dddddd); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0); + color: #404040; + text-decoration: none; + -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); +} +.open .menu, +.dropdown.open .menu, +.open .dropdown-toggle, +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} +.open .menu-dropdown, +.dropdown.open .menu-dropdown, +.open .dropdown-menu, +.dropdown.open .dropdown-menu { + display: block; +} +.tabs, .pills { + margin: 0 0 18px; + padding: 0; + list-style: none; + zoom: 1; +} +.tabs:before, +.pills:before, +.tabs:after, +.pills:after { + display: table; + content: ""; + zoom: 1; +} +.tabs:after, .pills:after { + clear: both; +} +.tabs > li, .pills > li { + float: left; +} +.tabs > li > a, .pills > li > a { + display: block; +} +.tabs { + border-color: #ddd; + border-style: solid; + border-width: 0 0 1px; +} +.tabs > li { + position: relative; + margin-bottom: -1px; +} +.tabs > li > a { + padding: 0 15px; + margin-right: 2px; + line-height: 34px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tabs > li > a:hover { + text-decoration: none; + background-color: #eee; + border-color: #eee #eee #ddd; +} +.tabs .active > a, .tabs .active > a:hover { + color: #808080; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.tabs .menu-dropdown, .tabs .dropdown-menu { + top: 35px; + border-width: 1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} +.tabs a.menu:after, .tabs .dropdown-toggle:after { + border-top-color: #999; + margin-top: 15px; + margin-left: 5px; +} +.tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle { + border-color: #999; +} +.tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after { + border-top-color: #555; +} +.pills a { + margin: 5px 3px 5px 0; + padding: 0 15px; + line-height: 30px; + text-shadow: 0 1px 1px #ffffff; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.pills a:hover { + color: #ffffff; + text-decoration: none; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); + background-color: #00438a; +} +.pills .active a { + color: #ffffff; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); + background-color: #0069d6; +} +.pills-vertical > li { + float: none; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane, +.tab-content > div, +.pill-content > div { + display: none; +} +.tab-content > .active, .pill-content > .active { + display: block; +} +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + background-color: #f5f5f5; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5)); + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} +.breadcrumb li { + display: inline; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #bfbfbf; +} +.breadcrumb .active a { + color: #404040; +} +.hero-unit { + background-color: #f5f5f5; + margin-bottom: 30px; + padding: 60px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; +} +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; +} +footer { + margin-top: 17px; + padding-top: 17px; + border-top: 1px solid #eee; +} +.page-header { + margin-bottom: 17px; + border-bottom: 1px solid #ddd; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.page-header h1 { + margin-bottom: 8px; +} +.btn.danger, +.alert-message.danger, +.btn.danger:hover, +.alert-message.danger:hover, +.btn.error, +.alert-message.error, +.btn.error:hover, +.alert-message.error:hover, +.btn.success, +.alert-message.success, +.btn.success:hover, +.alert-message.success:hover, +.btn.info, +.alert-message.info, +.btn.info:hover, +.alert-message.info:hover { + color: #ffffff; +} +.btn .close, .alert-message .close { + font-family: Arial, sans-serif; + line-height: 18px; +} +.btn.danger, +.alert-message.danger, +.btn.error, +.alert-message.error { + background-color: #c43c35; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #c43c35 #c43c35 #882a25; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} +.btn.success, .alert-message.success { + background-color: #57a957; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #57a957 #57a957 #3d773d; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} +.btn.info, .alert-message.info { + background-color: #339bb9; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9)); + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #339bb9 #339bb9 #22697d; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} +.btn { + cursor: pointer; + display: inline-block; + background-color: #e6e6e6; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); + background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + padding: 5px 14px 6px; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + color: #333; + font-size: 13px; + line-height: normal; + border: 1px solid #ccc; + border-bottom-color: #bbb; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -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); + -webkit-transition: 0.1s linear all; + -moz-transition: 0.1s linear all; + -ms-transition: 0.1s linear all; + -o-transition: 0.1s linear all; + transition: 0.1s linear all; +} +.btn:hover { + background-position: 0 -15px; + color: #333; + text-decoration: none; +} +.btn:focus { + outline: 1px dotted #666; +} +.btn.primary { + color: #ffffff; + background-color: #0064cd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); + background-image: -moz-linear-gradient(top, #049cdb, #0064cd); + background-image: -ms-linear-gradient(top, #049cdb, #0064cd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); + background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); + background-image: -o-linear-gradient(top, #049cdb, #0064cd); + background-image: linear-gradient(top, #049cdb, #0064cd); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #0064cd #0064cd #003f81; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} +.btn.active, .btn:active { + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn.disabled { + cursor: default; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=65); + -khtml-opacity: 0.65; + -moz-opacity: 0.65; + opacity: 0.65; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn[disabled] { + cursor: default; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=65); + -khtml-opacity: 0.65; + -moz-opacity: 0.65; + opacity: 0.65; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn.large { + font-size: 15px; + line-height: normal; + padding: 9px 14px 9px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.btn.small { + padding: 7px 9px 7px; + font-size: 11px; +} +:root .alert-message, :root .btn { + border-radius: 0 \0; +} +button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +.close { + float: right; + color: #000000; + font-size: 20px; + font-weight: bold; + line-height: 13.5px; + text-shadow: 0 1px 0 #ffffff; + filter: alpha(opacity=25); + -khtml-opacity: 0.25; + -moz-opacity: 0.25; + opacity: 0.25; +} +.close:hover { + color: #000000; + text-decoration: none; + filter: alpha(opacity=40); + -khtml-opacity: 0.4; + -moz-opacity: 0.4; + opacity: 0.4; +} +.alert-message { + position: relative; + padding: 7px 15px; + margin-bottom: 18px; + color: #404040; + background-color: #eedc94; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); + background-image: -moz-linear-gradient(top, #fceec1, #eedc94); + background-image: -ms-linear-gradient(top, #fceec1, #eedc94); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); + background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); + background-image: -o-linear-gradient(top, #fceec1, #eedc94); + background-image: linear-gradient(top, #fceec1, #eedc94); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #eedc94 #eedc94 #e4c652; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + border-width: 1px; + border-style: solid; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); +} +.alert-message .close { + margin-top: 1px; + *margin-top: 0; +} +.alert-message a { + font-weight: bold; + color: #404040; +} +.alert-message.danger p a, +.alert-message.error p a, +.alert-message.success p a, +.alert-message.info p a { + color: #ffffff; +} +.alert-message h5 { + line-height: 18px; +} +.alert-message p { + margin-bottom: 0; +} +.alert-message div { + margin-top: 5px; + margin-bottom: 2px; + line-height: 28px; +} +.alert-message .btn { + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); +} +.alert-message.block-message { + background-image: none; + background-color: #fdf5d9; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + padding: 14px; + border-color: #fceec1; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.alert-message.block-message ul, .alert-message.block-message p { + margin-right: 30px; +} +.alert-message.block-message ul { + margin-bottom: 0; +} +.alert-message.block-message li { + color: #404040; +} +.alert-message.block-message .alert-actions { + margin-top: 5px; +} +.alert-message.block-message.error, .alert-message.block-message.success, .alert-message.block-message.info { + color: #404040; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.alert-message.block-message.error { + background-color: #fddfde; + border-color: #fbc7c6; +} +.alert-message.block-message.success { + background-color: #d1eed1; + border-color: #bfe7bf; +} +.alert-message.block-message.info { + background-color: #ddf4fb; + border-color: #c6edf9; +} +.alert-message.block-message.danger p a, +.alert-message.block-message.error p a, +.alert-message.block-message.success p a, +.alert-message.block-message.info p a { + color: #404040; +} +.pagination { + height: 36px; + margin: 18px 0; +} +.pagination ul { + float: left; + margin: 0; + border: 1px solid #ddd; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination li { + display: inline; +} +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + border-right: 1px solid; + border-right-color: #ddd; + border-right-color: rgba(0, 0, 0, 0.15); + *border-right-color: #ddd; + /* IE6-7 */ + + text-decoration: none; +} +.pagination a:hover, .pagination .active a { + background-color: #c7eefe; +} +.pagination .disabled a, .pagination .disabled a:hover { + background-color: transparent; + color: #bfbfbf; +} +.pagination .next a { + border: 0; +} +.well { + background-color: #f5f5f5; + margin-bottom: 20px; + padding: 19px; + min-height: 20px; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.modal-backdrop { + background-color: #000000; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 10000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, .modal-backdrop.fade.in { + filter: alpha(opacity=80); + -khtml-opacity: 0.8; + -moz-opacity: 0.8; + opacity: 0.8; +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 11000; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal .close { + margin-top: 7px; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + border-bottom: 1px solid #eee; + padding: 5px 15px; +} +.modal-body { + padding: 15px; +} +.modal-body form { + margin-bottom: 0; +} +.modal-footer { + background-color: #f5f5f5; + padding: 14px 15px 15px; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + zoom: 1; + margin-bottom: 0; +} +.modal-footer:before, .modal-footer:after { + display: table; + content: ""; + zoom: 1; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn { + float: right; + margin-left: 5px; +} +.modal .popover, .modal .twipsy { + z-index: 12000; +} +.twipsy { + display: block; + position: absolute; + visibility: visible; + padding: 5px; + font-size: 11px; + z-index: 1000; + filter: alpha(opacity=80); + -khtml-opacity: 0.8; + -moz-opacity: 0.8; + opacity: 0.8; +} +.twipsy.fade.in { + filter: alpha(opacity=80); + -khtml-opacity: 0.8; + -moz-opacity: 0.8; + opacity: 0.8; +} +.twipsy.above .twipsy-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.twipsy.left .twipsy-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.twipsy.below .twipsy-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.twipsy.right .twipsy-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.twipsy-inner { + padding: 3px 8px; + background-color: #000000; + color: white; + text-align: center; + max-width: 200px; + text-decoration: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.twipsy-arrow { + position: absolute; + width: 0; + height: 0; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1000; + padding: 5px; + display: none; +} +.popover.above .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.popover.below .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} +.popover .inner { + background: #000000; + background: rgba(0, 0, 0, 0.8); + padding: 3px; + overflow: hidden; + width: 280px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} +.popover .title { + background-color: #f5f5f5; + padding: 9px 15px; + line-height: 1; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + border-bottom: 1px solid #eee; +} +.popover .content { + background-color: #ffffff; + padding: 14px; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.popover .content p, .popover .content ul, .popover .content ol { + margin-bottom: 0; +} +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +.label { + padding: 1px 3px 2px; + font-size: 9.75px; + font-weight: bold; + color: #ffffff; + text-transform: uppercase; + white-space: nowrap; + background-color: #bfbfbf; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.label.important { + background-color: #c43c35; +} +.label.warning { + background-color: #f89406; +} +.label.success { + background-color: #46a546; +} +.label.notice { + background-color: #62cffc; +} +.media-grid { + margin-left: -20px; + margin-bottom: 0; + zoom: 1; +} +.media-grid:before, .media-grid:after { + display: table; + content: ""; + zoom: 1; +} +.media-grid:after { + clear: both; +} +.media-grid li { + display: inline; +} +.media-grid a { + float: left; + padding: 4px; + margin: 0 0 18px 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} +.media-grid a img { + display: block; +} +.media-grid a:hover { + border-color: #0069d6; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +/*! + * Bootstrap @VERSION + * + * Copyright 2011 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + * Date: @DATE + */ + +// CSS Reset +@import "reset.less"; + +// Core variables and mixins +@import "variables.less"; // Modify this for custom colors, font-sizes, etc +@import "mixins.less"; + +// Grid system and page structure +@import "scaffolding.less"; + +// Styled patterns and elements +@import "type.less"; +@import "forms.less"; +@import "tables.less"; +@import "patterns.less"; + +// The XWiki Skin +@import "xwiki.less"; + + + + + + #set ($version = $xwiki.getSpacePreference('version')) + #if ("$!version" == "") + #set ($version = $xwiki.getXWikiPreference("version")) + #end + #if ("$!version" != "") + #set ($version = $xwiki.parseContent($version)) + #else + #set ($version = $!xwiki.version) + #end + <footer> + <p>$!copyright | $!version</p> + </footer> + </div> + </div> + + </body> +</html> + + + + + + + + +#template('xwikivars.vm') +#set($parents = $util.arrayList) +#set($discard = $parents.add($doc.fullName)) +#macro(computeHierarchy $doc $result $level) + #set($parent = $doc.parent) + #if(($parent != '') && ($level < 6) && (!$parents.contains($parent))) + #set($discard = $parents.add($parent)) + #set($pdoc = $xwiki.getDocument($parent).getTranslatedDocument()) + #if ($pdoc) + #set ($pdocurl = $pdoc.getURL('view')) + #set ($nstring = "<li><a href='$pdocurl'>$escapetool.xml(${pdoc.getPlainTitle()})</a> <span class='divider'>/</span> $result</li>") + #set ($level = $level + 1) + #computeHierarchy($pdoc $nstring $level) + #else + ## No access to the parent document + <li><a href='$xwiki.getURL($parent)'>$escapetool.xml(${parent})</a><span class="divider">/</span></li> $result + #end + #else + $result + #end +#end +#if($isInServletMode) ## Visible only in a page + #if ($doc.fullName != 'Main.WebHome') + <ul class="breadcrumb"> + #if ($xcontext.action == 'edit' || $xcontext.action == 'inline') + #computeHierarchy($doc "<a href='${doc.getURL('view')}'>$escapetool.xml($tdoc.getPlainTitle())</a>" 0) + #else + #computeHierarchy($doc "<span class='active'>$escapetool.xml($tdoc.getPlainTitle())</span>" 0) + #end + </ul> + #end +#end + + + /* empty */ + + +logo.png + + +Default XWiki Skin + + + <div class="well"> + <h5>Sidebar</h5> + <ul> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + </ul> + <h5>Sidebar</h5> + <ul> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + </ul> + <h5>Sidebar</h5> + <ul> + <li><a href="#">Link</a></li> + <li><a href="#">Link</a></li> + </ul> + </div> + + +#template("xwikivars.vm") +<!DOCTYPE html> +<html lang="$xcontext.language"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=$xwiki.encoding" /> + + #if(!$title) + #set($title = $!xwiki.getSpacePreference('title')) + #if($title != '') + #set($title = "$escapetool.xml($xwiki.parseContent($title))") + #else + #set($title = "$escapetool.xml($!tdoc.displayTitle)") + #end + #else + #set($title = $escapetool.xml($title)) + #end + <title>$title</title> + + <meta name="description" content=""> + <meta name="author" content=""> + + ## --------------------------------------------------------------------------------------------------------------- + ## Define the default scripting language that is used for intrinsic events (e.g. onmouseover attributes). + ## --------------------------------------------------------------------------------------------------------------- + <meta http-equiv="Content-Script-Type" content="text/javascript" /> + + <meta http-equiv="imagetoolbar" content="no"/> + ## --------------------------------------------------------------------------------------------------------------- + ## Disable the toolbar that comes up when you mouse over an image in MSIE + ## --------------------------------------------------------------------------------------------------------------- + + ## --------------------------------------------------------------------------------------------------------------- + ## Make sure search engine spiders give the plain page instead of ?viewer=comments, ?viewer=code etc. + ## --------------------------------------------------------------------------------------------------------------- + <link rel="canonical" href="$doc.getURL('view')" /> + ## --------------------------------------------------------------------------------------------------------------- + ## Store the space name, page name, wiki name, full document name (for convenience since it can be reconstructed + ## from the individual wiki/space/page names), and other metadata, so that it can be accessed from Javascript code. + ## For example, to pass it to the server side using an Ajax query. + ## Usage example: var name = $$("meta[name='page']")[0].content; + ## --------------------------------------------------------------------------------------------------------------- + <meta name="document" content="$escapetool.xml($doc.fullName)"/> + <meta name="wiki" content="$escapetool.xml($doc.wiki)"/> + <meta name="space" content="$escapetool.xml($doc.space)"/> + <meta name="page" content="$escapetool.xml($doc.name)"/> + <meta name="version" content="$doc.version"/> + <meta name="restURL" content="${request.contextPath}/rest/wikis/${xcontext.database}/spaces/$escapetool.url(${doc.space})/pages/$escapetool.url(${doc.name})"/> + ## --------------------------------------------------------------------------------------------------------------- + ## Localize GWT applications. + ## --------------------------------------------------------------------------------------------------------------- + <meta name="gwt:property" content="locale=$!{xcontext.language}" /> + ## --------------------------------------------------------------------------------------------------------------- + ## Add user-defined Meta directives + ## --------------------------------------------------------------------------------------------------------------- + $xwiki.parseContent($!xwiki.getSpacePreference("meta")) + ## --------------------------------------------------------------------------------------------------------------- + ## Hook for inserting Link extensions. This will be replaced with the pulled link references. + ## --------------------------------------------------------------------------------------------------------------- + <!-- com.xpn.xwiki.plugin.skinx.LinkExtensionPlugin --> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <!-- Le styles --> + ## <link href="$xwiki.getSkinFile('bootstrap.css')" rel="stylesheet"> + <link rel="stylesheet/less" type="text/css" href="$xwiki.getSkinFile('bootstrap.less', true)"> + <script src="$xwiki.getSkinFile('less-1.1.5.min.js')" type="text/javascript"></script> + + <link href="$xwiki.getSkinFile('xwiki.css', true)" rel="stylesheet"> + <style type="text/css"> + body { + padding-top: 60px; + } + </style> + <link href="$xwiki.getSkinFile("uicomponents/suggest/suggest.css", true)" rel="stylesheet" type="text/css" /> + + ## Hook for inserting CSS skin extensions + <!-- com.xpn.xwiki.plugin.skinx.CssSkinExtensionPlugin --> + <!-- com.xpn.xwiki.plugin.skinx.CssSkinFileExtensionPlugin --> + + $xwiki.jsfx.use('uicomponents/widgets/list/xlist.js') + $xwiki.jsfx.use('uicomponents/suggest/suggest.js') + + <script type="text/javascript" src="$xwiki.getSkinFile("js/prototype/prototype.js")"></script> + <script type="text/javascript" src="$xwiki.getSkinFile("js/xwiki/xwiki.js", true)"></script> + <script type="text/javascript"> +// <![CDATA[ +document.observe("dom:loaded", function(event){ + + // Fixs for Bootstrap skin + document.fire("xwiki:dom:loaded", event.memo); + + // Remove livetable styles + $$('.xwiki-livetable-display-header').invoke("removeClassName", "xwiki-livetable-display-header"); + $$('.xwiki-livetable-display-body').invoke("removeClassName", "xwiki-livetable-display-body"); + $$('.xwiki-livetable-display').invoke("addClassName", "condensed-table zebra-striped"); +}); + +XWiki.webapppath = "${xwiki.webAppPath}"; +XWiki.servletpath = "${xwiki.servletPath}"; +XWiki.contextPath = "${request.contextPath}"; +XWiki.mainWiki = "$!{escapetool.javascript(${xcontext.mainWikiName})}"; +XWiki.currentWiki = "$!{escapetool.javascript(${xcontext.database})}"; +XWiki.currentSpace = "$!{escapetool.javascript($doc.space)}"; +XWiki.currentPage = "$!{escapetool.javascript($doc.name)}"; +XWiki.editor = "$!{escapetool.javascript($editor)}"; +XWiki.viewer = "$!{escapetool.javascript($viewer)}"; +XWiki.contextaction = "${xcontext.getAction()}"; +XWiki.docisnew = $!doc.isNew(); +XWiki.docsyntax = "$!doc.getSyntax().toIdString()"; +XWiki.blacklistedSpaces = [ #foreach($space in $blacklistedSpaces)#if($velocityCount > 1),#end"$space"#end ]; +XWiki.hasEdit = $hasEdit; +XWiki.hasProgramming = $hasProgramming; +XWiki.hasBackupPackImportRights =#if ($xwiki.package) $xwiki.package.hasBackupPackImportRights()#else false#end; +window.docviewurl = "${doc.getURL('view')}"; +window.docediturl = "${doc.getURL('edit')}"; +window.docsaveurl = "${doc.getURL('save')}"; +window.docgeturl = "${doc.getURL('get')}"; +// ]]> + </script> + + + ## + ## Hooks for inserting JavaScript skin extensions + ## + ## - Skin file extension hook. Placed first since skin extensions might need to have xwiki or external libraries included first to be able to work properly + <!-- com.xpn.xwiki.plugin.skinx.JsSkinFileExtensionPlugin --> + ## - Skin extension hook + <!-- com.xpn.xwiki.plugin.skinx.JsSkinExtensionPlugin --> + + <!-- Le fav and touch icons --> + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="$xwiki.getSkinFile('apple-touch-icon.png')"> + <link rel="apple-touch-icon" sizes="72x72" href="$xwiki.getSkinFile('apple-touch-icon-72x72.png')"> + <link rel="apple-touch-icon" sizes="114x114" href="$xwiki.getSkinFile('apple-touch-icon-114x114.png')"> + </head> + + <body> + + #template("topbar.vm") + + <div class="container-fluid"> + <div class="sidebar"> + #template('sidebar.vm') + </div> + <div class="content"> + + +<div class="topbar"> + <div class="topbar-inner"> + <div class="container-fluid"> + #set($wikiname = '') + #if($xwiki.wikimanager) + #set($wikiname = $xwiki.wikimanager.getWikiDocument($xcontext.database)).getValue("wikiprettyname")) + #end + #if("$!wikiname" == '') + #set($wikiname = $xcontext.database) + #end + <a class="brand" href="$xwiki.getURL('Main.WebHome')">$wikiname</a> + <ul class="nav"> + <li class="active"><a href="$xwiki.getURL('Main.WebHome')">Home</a></li> + <li><a href="#about">About</a></li> + <li><a href="#contact">Contact</a></li> + </ul> + #if(!$isGuest) + <p class="pull-right">Logged in as $xwiki.getUserName($xcontext.user, true)</p> + #else + #set ($loginurl = $xwiki.getURL('XWiki.XWikiLogin', 'login', "xredirect=$escapetool.url($xwiki.getRequestURL())")) + <p class="pull-right"><a href="$loginurl">Connexion</a></p> + #end + </div> + </div> +</div> + + +/* Variables.less $xwiki.version + * Variables to customize the look and feel of Bootstrap + * ----------------------------------------------------- */ + + +// Links +@linkColor: #0069d6; +@linkColorHover: darken(@linkColor, 15); + +// Grays +@black: #000; +@grayDark: lighten(@black, 25%); +@gray: lighten(@black, 50%); +@grayLight: lighten(@black, 75%); +@grayLighter: lighten(@black, 90%); +@white: #fff; + +// Accent Colors +@blue: #049CDB; +@blueDark: #0064CD; +@green: #46a546; +@red: #9d261d; +@yellow: #ffc40d; +@orange: #f89406; +@pink: #c3325f; +@purple: #7a43b6; + +// Baseline grid +@basefont: 13px; +@baseline: 18px; + +// Griditude +// Modify the grid styles in mixins.less +@gridColumns: 16; +@gridColumnWidth: 40px; +@gridGutterWidth: 20px; +@extraSpace: (@gridGutterWidth * 2); // For our grid calculations +@siteWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); + +// Color Scheme +// Use this to roll your own color schemes if you like (unused by Bootstrap by default) +@baseColor: @blue; // Set a base color +@complement: spin(@baseColor, 180); // Determine a complementary color +@split1: spin(@baseColor, 158); // Split complements +@split2: spin(@baseColor, -158); +@triad1: spin(@baseColor, 135); // Triads colors +@triad2: spin(@baseColor, -135); +@tetra1: spin(@baseColor, 90); // Tetra colors +@tetra2: spin(@baseColor, -90); +@analog1: spin(@baseColor, 22); // Analogs colors +@analog2: spin(@baseColor, -22); + + + +// More variables coming soon: +// - @basefont to @baseFontSize +// - @baseline to @baseLineHeight +// - @baseFontFamily +// - @primaryButtonColor +// - anything else? File an issue on GitHub + + + + + + + + +#template('colorThemeInit.vm') + +.clearfloats { + clear: both; + height: 1px; + margin: -1px 220px 0; + overflow: hidden; +} + +.hidden { + display: none !important; +} + +.invisible { + visibility: hidden !important; +} + +.loading { + background: transparent url("$xwiki.getSkinFile('icons/xwiki/spinner.gif')") no-repeat center; +} + +.separator { + color: $theme.textSecondaryColor; +} + +.column { + float: left; +} +.full { + /* Leave a bit of space for borders. */ + width: 99.8%; +} +.half { + /* Rounding errors with 50%, might end up with one more pixel which pushes the column down. */ + width: 49.9%; +} +.third { + /* Rounding errors with 33.3%, might end up with one more pixel which pushes the column down. */ + width: 33.2%; +} + +.avatar_30 { + max-width: 30px; + max-height: 30px; +} +* html .avatar_30 { + width: 30px; +} +.avatar_50 { + max-width: 50px; + max-height: 50px; +} +* html .avatar_50 { + width: 50px; +} +.avatar_120 { + max-width: 120px; + max-height: 120px; +} +* html .avatar_120 { + width: 120px; +} +th.avatar { + width: 50px; +} + +form div.activityContent { + margin-bottom:50px; +} + +#document-title h1 { + font-size: 36px; +} + +.edit_section { + display: block; + height: 24px; + line-height: 24px; + margin: -19px 0 0; + overflow: hidden; + position: relative; + visibility:hidden; +} + +.edit_section a { + background: transparent url("$xwiki.getSkinFile('icons/xwiki/edit-section.png')") no-repeat left top; + line-height: 999px; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + right: 0; + top: 0; + visibility:visible; + width: 20px; +} + +/* @group COMPONENTS*/ +/* --------------XWiki items types list -----------------*/ +ul.xlist { + margin: 0 0 0 .5em !important; + overflow: hidden; + padding: 0 !important; +} + +ul.xlist li.xunderline { + border-bottom: solid 1px $theme.borderColor !important; +} + +ul.xlist li.xhighlight:hover { + background-color: $theme.highlightColor; +} + +ul.xlist li { + float: right; + height: 100%; + list-style-type: none; + padding-top: .2em; + width: 100% !important; +} + +ul.xlist li.space, ul.xlist li.page, ul.xlist li.comment, ul.xlist li.attachment { + background-position: 2px 3px; + background-repeat: no-repeat; +} + +ul.xlist li.space { + background-image: url("$xwiki.getSkinFile('icons/silk/folder.gif')"); +} + +ul.xlist li.page { + background-image: url("$xwiki.getSkinFile('icons/silk/page_white_text.gif')"); +} + +ul.xlist li.comment { + background-image: url("$xwiki.getSkinFile('icons/silk/comment.gif')"); +} + +ul.xlist li.attachment { + background-image: url("$xwiki.getSkinFile('icons/silk/attach.gif')"); + padding-bottom: 0; +} + +ul.xlist li.create a { + background: url("$xwiki.getSkinFile('icons/silk/bullet_add.gif')") 7px 3px no-repeat; + color: $theme.textSecondaryColor; + text-decoration: none; + padding-left: 1.5em; +} + +ul.xlist li.xitem div.xitemcontainer { + text-indent: 1.5em; +} + +ul.xlist li.xitem div.xitemcontainer ul.xlist { + text-indent: 0; +} + +.xspacer { + display: none; +} + +/* @group forms */ + +.xform fieldset { + margin: 2em 0; +} +.xform fieldset:first-of-type { + margin-top: 1em; +} +.xform fieldset:last-of-type { + margin-bottom: 1em; +} + +.xform input[type="text"], .xform input[type="password"] { + width: 99%; +} +/* Duplicated because IE6 chokes on the first two selectors. Don't recombine! */ +.xform select, .xform textarea { + width: 99%; +} + +/* @group VERTICAL MENU */ +/* General styling */ +.vertical-menu { + border: 1px solid $theme.borderColor; + border-top-width: 0; + float: left; + font-size: .857em;/* 14px -> 12px */ + margin: 0 2em 2em 0; + width: 15em; +} + +.vertical-menu ul { + list-style-type: none; + margin: 0; +} +.vertical-menu ul ul ul { + margin-left: 2em; +} + +.vertical-menu li { + border-top: 1px solid $theme.borderColor; + position: relative; +} + +.vertical-menu span { + background: none no-repeat scroll 7px transparent; + display: block; +} + +.vertical-menu a { + display: block; + padding: .5em .5em .5em 30px; + text-decoration: none; + word-wrap: break-word; +} + +/* Section titles */ +.vertical-menu .group { + background-color: $theme.panelCollapsedBackgroundColor; + font-weight: 700; + font-variant: small-caps; +} +.vertical-menu .group * { + color: $theme.panelCollapsedTextColor; +} + +/* Highlight items when hovering */ +.vertical-menu span:hover { + background-color: $theme.highlightColor; +} +.vertical-menu .group:hover { + background-color: $theme.panelHeaderBackgroundColor; +} +.vertical-menu .group:hover * { + color: $theme.panelHeaderTextColor; +} + +/* Selected item */ +.vertical-menu .current { + background-color: $theme.highlightColor; + font-weight: bold; +} +.vertical-menu .current-group { + background-color: $theme.panelHeaderBackgroundColor; + color: $theme.panelHeaderTextColor; +} +.vertical-menu .current-group *, .vertical-menu .current-group *:visited, .vertical-menu .current-group *:active { + color: $theme.panelHeaderTextColor; +} + +/* Draw an arrow pointing right for the selected item */ +.vertical-menu .current:after, .vertical-menu .current a:after { + border-left: 10px solid $theme.highlightColor; + border-top: 1.2em solid transparent; + border-bottom: 1.2em solid transparent; + content: ""; + display: block; + position: absolute; + right: -10px; + top: 0%; +} +.vertical-menu .current a:after { + border-left-color: $theme.borderColor; + right: -11px; +} +.vertical-menu .current-group:after { + border-left-color: $theme.panelHeaderBackgroundColor !important; +} + +/* Livetable */ +.container-fluid .xwiki-livetable-pagination .xwiki-livetable-pagesize, +.container-fluid .xwiki-livetable-pagination .xwiki-livetable-limits { + line-height:30px; +} + +.container-fluid .xwiki-livetable-pagination .xwiki-livetable-pagination-text { + display:none; +} + +.container-fluid .controlPagination { + width:200px; + height:36px; + line-height: 34px; + padding: 0 14px; +} + +.container-fluid .controlPagination a { + position:relative; + float:left; +} + +.container-fluid .controlPagination a.prevPagination, +.container-fluid .controlPagination a.noPrevPagination, +.container-fluid .controlPagination a.nextPagination, +.container-fluid .controlPagination a.noNextPagination { + background-image: none; + height: auto; + width: auto; + padding-top: 5px; +} + +.container-fluid a.noPrevPagination, +.container-fluid a.prevPagination{ + margin-left: 20px; +} + +.container-fluid .pagination { + margin:0; +} + +.container-fluid a.prevPagination span, +.container-fluid a.nextPagination span, +.container-fluid a.noPrevPagination span, +.container-fluid a.noNextPagination span { + display:block !important; +} + +.container-fluid a.noPrevPagination, +.container-fluid a.noNextPagination { + color: #BFBFBF; + cursor:normal; +} + +.container-fluid a.noPrevPagination:hover, +.container-fluid a.noNextPagination:hover { + text-decoration:none; +} + +.container-fluid table td.actions { + padding: 10px 10px 9px; + background: inherit; +} + + +// Adapt XWiki styles to bootstrap styles + +/** + * Adapt forms + */ + +form.xform { + .form-stacked; +} + +.xHint { + .help-block; +} + +.buttons { + .actions; +} + +.button { + .btn.primary; +} + +.button.secondary { + .btn; +} + +.xform .buttons { + .form-stacked .actions; + width: 100%; +} + +.xform dl dd { + margin-left:0; +} + +/* Boxes */ + +.box { + .alert-message; + + &.infomessage { + .alert-message.info; + } + + &.warningmessage { +// .alert-message.warning; + } + + &.errormessage { + .alert-message.error; + } +} + +/* Tabs */ + +ul.xwikitabbar { + .tabs; +} + +/* Livetable */ + +.pagesizeselect { + .span2; +} + +.pagination, .controlPagination{ + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 3px 3px 3px 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + float: left; + margin: 0; +} + +.nextPagination span { + + &:after { + content: "→"; + } +} + +.prevPagination span { + &:before { + content: "←"; + } +} + + + diff --git a/src/main/resources/Lyrebird/WebHome.xml b/src/main/resources/Lyrebird/WebHome.xml new file mode 100644 index 0000000..7fbb8a2 --- /dev/null +++ b/src/main/resources/Lyrebird/WebHome.xml @@ -0,0 +1,25 @@ + + +Lyrebird +WebHome + +en +0 + +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1321900374000 +1321900457000 +1321900457000 +3.1 +WebHome + + + + +false +xwiki/2.0 +false +{{spaceindex /}} diff --git a/src/main/resources/XWiki/XWikiSkins.xml b/src/main/resources/XWiki/XWikiSkins.xml index 13eef0d..651a530 100644 --- a/src/main/resources/XWiki/XWikiSkins.xml +++ b/src/main/resources/XWiki/XWikiSkins.xml @@ -11,9 +11,9 @@ XWiki.Admin 1303993396000 -1321877303000 -1321877303000 -1.15 +1321903154000 +1321903154000 +1.24 XWiki Skin Class @@ -59,6 +59,21 @@ com.xpn.xwiki.objects.classes.TextAreaClass + + +0 +--- +bootstrap.less +17 +0 +bootstrap.less +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + 0 @@ -134,6 +149,21 @@ com.xpn.xwiki.objects.classes.TextAreaClass + + +0 +--- +livetable.css +20 +0 +livetable.css +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + 0 @@ -220,6 +250,21 @@ com.xpn.xwiki.objects.classes.TextAreaClass + + +0 +--- +variables.less +18 +0 +variables.less +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass + 0 @@ -265,6 +310,21 @@ com.xpn.xwiki.objects.classes.TextAreaClass + + +0 +--- +xwiki.less +19 +0 +xwiki.less +20 +80 +0 + + +com.xpn.xwiki.objects.classes.TextAreaClass +