From 3c5ed586a0b69bbd472d1213c66668531d6c25ad Mon Sep 17 00:00:00 2001 From: Gerti Poppel Date: Mon, 7 Mar 2016 16:53:28 +0100 Subject: [PATCH 001/143] updated screen shots and corrected link --- docs/user-guide/ui.md | 2 +- images/docs/ui-dashboard-deploy-file.png | Bin 24405 -> 26652 bytes images/docs/ui-dashboard-deploy-more.png | Bin 76048 -> 77575 bytes images/docs/ui-dashboard-deploy-simple.png | Bin 54961 -> 57589 bytes images/docs/ui-dashboard-zerostate.png | Bin 31043 -> 20395 bytes 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/ui.md b/docs/user-guide/ui.md index 0acae37975..f9f19a172e 100644 --- a/docs/user-guide/ui.md +++ b/docs/user-guide/ui.md @@ -98,7 +98,7 @@ Kubernetes supports declarative configuration. In this style, all configuration As an alternative to specifying application details in the deploy wizard, you can define your Replication Controllers and Services in YAML or JSON files, and upload the files to your Pods: -![Kubernetes Dashboard deploy from file upload](ui-dashboard-deploy-file.png) +![Kubernetes Dashboard deploy from file upload](/images/docs/ui-dashboard-deploy-file.png) ### Applications view diff --git a/images/docs/ui-dashboard-deploy-file.png b/images/docs/ui-dashboard-deploy-file.png index 215b6c15557a835fb041c03cbb76eeda85ccbf17..459d7772b095c9e8af060e8df38f03dba7fa1a7d 100755 GIT binary patch literal 26652 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 Dta2wH diff --git a/images/docs/ui-dashboard-deploy-more.png b/images/docs/ui-dashboard-deploy-more.png index 58aeda80cd6ce55118cdba0a83fe2d96cb7feee1..9285682b6e0ee1ed2fbe80d8b9f4800ae67113ac 100755 GIT binary patch literal 77575 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 S(?yt^(C*$^JhDq!eoh! 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 aQyAbnAslGszapHH%1#Jt?$pQAkxHM92Z0e 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 bxAzuvOMhAg?R4G&e%?wcN*0U1`}}_Zb!a!~ literal 76048 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 N&!m;XC6cfF{y(dU3Vr|p literal 54961 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
{% capture tabspec %}servicesample
+JSON,json,service-sample.json,/docs/user-guide/services/service-sample.json
+YAML,yaml,service-sample.yaml,/docs/user-guide/services/service-sample.yaml{% endcapture %}
+{% include tabs.html %}
+ +In English, this would read: "Create a set of tabs with the alias `servicesample`, +and have tabs visually labeled "JSON" and "YAML" that use `json` and `yaml` Rouge syntax highlighting, which display the contents of +`service-sample.{extension}` on the page, and link to the file in GitHub at (full path)." + +Example file: [Pods: Multi-Container](/docs/user-guide/pods/multi-container/). + ## Use a global variable The `/_config.yml` file defines some useful variables you can use when editing docs. diff --git a/_data/guides.yml b/_data/guides.yml index 59f44d7123..502c7a8dad 100644 --- a/_data/guides.yml +++ b/_data/guides.yml @@ -132,6 +132,12 @@ toc: path: /docs/getting-started-guides/scratch/ - title: Authenticating Across Clusters with kubeconfig path: /docs/user-guide/kubeconfig-file/ + - title: Replication Controller Operations + path: /docs/user-guide/replication-controller/operations/ + - title: Resizing a Replication Controller + path: /docs/user-guide/resizing-a-replication-controller/ + - title: Service Operations + path: /docs/user-guide/services/operations/ - title: Using Nodes, Pods, and Containers section: @@ -147,6 +153,10 @@ toc: path: /docs/user-guide/getting-into-containers/ - title: The Lifecycle of a Pod path: /docs/user-guide/pod-states/ + - title: Creating Single-Container Pods + path: /docs/user-guide/pods/single-container/ + - title: Creating Multi-Container Pods + path: /docs/user-guide/pods/multi-container/ - title: Pod Templates path: /docs/user-guide/pod-templates/ - title: Assigning Pods to Nodes @@ -166,6 +176,8 @@ toc: section: - title: Networking in Kubernetes path: /docs/admin/networking/ + - title: Creating an External Load Balancer + path: /docs/user-guide/load-balancer/ - title: Using DNS Pods and Services path: /docs/admin/dns/ - title: Setting Up and Configuring DNS @@ -224,6 +236,8 @@ toc: path: /docs/user-guide/managing-deployments/ - title: Deploying Applications path: /docs/user-guide/deploying-applications/ + - title: Updating Applications with Rolling Updates + path: /docs/user-guide/rolling-updates/ - title: Launching, Exposing, and Killing Applications path: /docs/user-guide/quick-start/ diff --git a/_data/support.yml b/_data/support.yml index 6b7daa8e3f..410e24e17c 100644 --- a/_data/support.yml +++ b/_data/support.yml @@ -6,6 +6,8 @@ toc: - title: Troubleshooting section: + - title: Debugging Pods and Replication Controllers + path: /docs/user-guide/debugging-pods-and-replication-controllers/ - title: Web Interface path: /docs/user-guide/ui/ - title: Application Introspection and Debugging diff --git a/_includes/head-header.html b/_includes/head-header.html index 2a1eddb715..f4e81637d5 100644 --- a/_includes/head-header.html +++ b/_includes/head-header.html @@ -4,9 +4,11 @@ - + + + Kubernetes - {{ title }} diff --git a/_includes/tabs.html b/_includes/tabs.html new file mode 100644 index 0000000000..ff672be6ad --- /dev/null +++ b/_includes/tabs.html @@ -0,0 +1,17 @@ +{% assign tabsraw = tabspec | newline_to_br | split: '
' %} +{% assign tabsetname = tabsraw[0] %} + +
+ + {% for tab in tabsraw offset:1 %} + {% assign thisTab = tab | split: ',' %} + {% assign tabLang=thisTab[1] %} + {% assign tabFile=thisTab[2] %} + {% assign tabGHLink=thisTab[3] %} +
+ {% include code.html language=tabLang file=tabFile ghlink=tabGHLink %} +
+ {% endfor %} +
\ No newline at end of file diff --git a/_sass/_base.sass b/_sass/_base.sass index 7f23e8a1fa..4d45a61c83 100644 --- a/_sass/_base.sass +++ b/_sass/_base.sass @@ -120,7 +120,7 @@ header top: 0 left: 0 transform: none - background-image: url(../images/nav_logo.svg) + background-image: url(/images/nav_logo.svg) background-size: contain background-position: center center background-repeat: no-repeat @@ -133,7 +133,7 @@ header left: 20px width: 50px height: 50px - background-image: url(../images/toc_icon.png) + background-image: url(/images/toc_icon.png) background-position: center center background-repeat: no-repeat background-size: auto @@ -152,11 +152,11 @@ header display: block width: 45px height: 44px - background-image: url(../images/favicon.png) + background-image: url(/images/favicon.png) &.flip-nav .flyout-button - background-image: url(../images/toc_icon_grey.png) + background-image: url(/images/toc_icon_grey.png) .nav-buttons @@ -295,7 +295,7 @@ header // HERO #hero - background-image: url(../images/texture.png) + background-image: url(/images/texture.png) background-color: $dark-grey text-align: center padding-left: 0 @@ -321,7 +321,7 @@ header // FOOTER footer width: 100% - background-image: url(../images/texture.png) + background-image: url(/images/texture.png) background-color: $dark-grey main @@ -373,7 +373,7 @@ footer .social a display: inline-block - background-image: url(../images/social_sprite.png) + background-image: url(/images/social_sprite.png) background-repeat: no-repeat background-size: auto width: 50px @@ -845,7 +845,7 @@ dd white-space: nowrap text-indent: 50px overflow: hidden - background: $blue url(../images/pencil.png) no-repeat + background: $blue url(/images/pencil.png) no-repeat background-position: 1px 1px background-size: auto @@ -929,7 +929,7 @@ $feature-box-div-margin-bottom: 40px #home &.flip-nav, &.open-nav .logo - background-image: url(../images/nav_logo2.svg) + background-image: url(/images/nav_logo2.svg) #hero margin-bottom: 0 @@ -979,7 +979,7 @@ $feature-box-div-margin-bottom: 40px #video width: 100% position: relative - background-image: url(../images/kub_video_thm.jpg) + background-image: url(/images/kub_video_thm.jpg) background-position: center center background-size: cover @@ -1084,7 +1084,7 @@ $feature-box-div-margin-bottom: 40px #features padding-top: 140px background-color: $light-grey - background-image: url(../images/wheel.png) + background-image: url(/images/wheel.png) background-position: center 60px background-repeat: no-repeat background-size: auto @@ -1124,7 +1124,7 @@ $feature-box-div-margin-bottom: 40px #community &.open-nav, &.flip-nav .logo - background-image: url(../images/nav_logo2.svg) + background-image: url(/images/nav_logo2.svg) #hero padding-bottom: 20px @@ -1175,6 +1175,30 @@ $feature-box-div-margin-bottom: 40px width: 100% height: 100% +// Tabs +.ui-widget-header + background: transparent !important + background-color: transparent !important + border: 0px !important + +.ui-tabs + ul, ol, li + padding: 0px !important + list-style: none !important + margin-bottom: 0px !important + margin-left: 1px !important + +.ui-widget-content + border: 0px !important + +.ui-widget-content + table + margin: 0px !important + +.ui-tabs .ui-tabs-panel + padding: 0px !important + border: 1px solid #ccc !important + // Talk to us #talkToUs h3, h4 @@ -1203,16 +1227,16 @@ $feature-box-div-margin-bottom: 40px background-repeat: no-repeat div:nth-child(1) - background-image: url(../images/twitter_icon.png) + background-image: url(/images/twitter_icon.png) div:nth-child(2) - background-image: url(../images/github_icon.png) + background-image: url(/images/github_icon.png) div:nth-child(3) - background-image: url(../images/slack_icon.png) + background-image: url(/images/slack_icon.png) div:nth-child(4) - background-image: url(../images/stackoverflow_icon.png) + background-image: url(/images/stackoverflow_icon.png) div + div margin-top: 20px @@ -1240,10 +1264,10 @@ $feature-box-div-margin-bottom: 40px padding-top: 125px div:nth-child(1) - background-image: url(../images/community_logos/viacom_logo.png) + background-image: url(/images/community_logos/viacom_logo.png) div:nth-child(2) - background-image: url(../images/community_logos/ebay_logo.png) + background-image: url(/images/community_logos/ebay_logo.png) div:nth-child(3) - background-image: url(../images/community_logos/wikimedia_foundation_logo.png) + background-image: url(/images/community_logos/wikimedia_foundation_logo.png) \ No newline at end of file diff --git a/css/jquery-ui.min.css b/css/jquery-ui.min.css new file mode 100644 index 0000000000..f13bef32a4 --- /dev/null +++ b/css/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.11.4 - 2016-03-15 +* http://jqueryui.com +* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#2b2b2b;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("/images/jquery-ui/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("/images/jquery-ui/ui-icons_444444_256x240.png")}.ui-state-default .ui-icon{background-image:url("/images/jquery-ui/ui-icons_777777_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("/images/jquery-ui/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon{background-image:url("/images/jquery-ui/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("/images/jquery-ui/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("/images/jquery-ui/ui-icons_cc0000_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:0 0 0 0;padding:5px;background:#666;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file diff --git a/css/jquery-ui.structure.min.css b/css/jquery-ui.structure.min.css new file mode 100644 index 0000000000..92f0049af2 --- /dev/null +++ b/css/jquery-ui.structure.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.11.4 - 2016-03-13 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px} \ No newline at end of file diff --git a/css/jquery-ui.theme.min.css b/css/jquery-ui.theme.min.css new file mode 100644 index 0000000000..a7e0b94f99 --- /dev/null +++ b/css/jquery-ui.theme.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.11.4 - 2016-03-15 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#2b2b2b;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("/images/jquery-ui/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("/images/jquery-ui/ui-icons_444444_256x240.png")}.ui-state-default .ui-icon{background-image:url("/images/jquery-ui/ui-icons_777777_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("/images/jquery-ui/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon{background-image:url("/images/jquery-ui/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("/images/jquery-ui/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("/images/jquery-ui/ui-icons_cc0000_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:0 0 0 0;padding:5px;background:#666;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file diff --git a/docs/admin/networking.md b/docs/admin/networking.md index 12b65e2be6..1bede3d87c 100644 --- a/docs/admin/networking.md +++ b/docs/admin/networking.md @@ -5,10 +5,10 @@ Kubernetes approaches networking somewhat differently than Docker does by default. There are 4 distinct networking problems to solve: 1. Highly-coupled container-to-container communications: this is solved by - [pods](/docs/user-guide/pods) and `localhost` communications. + [pods](/docs/user-guide/pods/) and `localhost` communications. 2. Pod-to-Pod communications: this is the primary focus of this document. -3. Pod-to-Service communications: this is covered by [services](/docs/user-guide/services). -4. External-to-Service communications: this is covered by [services](/docs/user-guide/services). +3. Pod-to-Service communications: this is covered by [services](/docs/user-guide/services/). +4. External-to-Service communications: this is covered by [services](/docs/user-guide/services/). * TOC {:toc} @@ -102,7 +102,7 @@ here. ### Google Compute Engine (GCE) For the Google Compute Engine cluster configuration scripts, we use [advanced -routing](https://developers.google.com/compute/docs/networking#routing) to +routing](https://cloud.google.com/compute/docs/networking#routing) to assign each VM a subnet (default is `/24` - 254 IPs). Any traffic bound for that subnet will be routed directly to the VM by the GCE network fabric. This is in addition to the "main" IP address assigned to the VM, which is NAT'ed for diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index 98945817f2..8271ab278a 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -795,18 +795,18 @@ Notes for setting up each cluster service are given below: * Cluster DNS: * required for many kubernetes examples - * [Setup instructions](http://releases.k8s.io/release-1.2/cluster/addons/dns/) - * [Admin Guide](../admin/dns.md) + * [Setup instructions](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/dns/) + * [Admin Guide](/admin/dns/) * Cluster-level Logging * Multiple implementations with different storage backends and UIs. - * [Elasticsearch Backend Setup Instructions](http://releases.k8s.io/release-1.2/cluster/addons/fluentd-elasticsearch/) - * [Google Cloud Logging Backend Setup Instructions](http://releases.k8s.io/release-1.2/cluster/addons/fluentd-gcp/). + * [Elasticsearch Backend Setup Instructions](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/fluentd-elasticsearch/) + * [Google Cloud Logging Backend Setup Instructions](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/fluentd-gcp/). * Both require running fluentd on each node. - * [User Guide](../user-guide/logging.md) + * [User Guide](/user-guide/logging/) * Container Resource Monitoring - * [Setup instructions](http://releases.k8s.io/release-1.2/cluster/addons/cluster-monitoring/) + * [Setup instructions](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/cluster-monitoring/) * GUI - * [Setup instructions](http://releases.k8s.io/release-1.2/cluster/addons/kube-ui/) + * [Setup instructions](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/kube-ui/) cluster. ## Troubleshooting diff --git a/docs/user-guide/debugging-pods-and-replication-controllers.md b/docs/user-guide/debugging-pods-and-replication-controllers.md new file mode 100644 index 0000000000..bee382d0ea --- /dev/null +++ b/docs/user-guide/debugging-pods-and-replication-controllers.md @@ -0,0 +1,105 @@ +--- +--- + +* TOC +{:toc} + +## Debugging pods + +The first step in debugging a pod is taking a look at it. Check the current +state of the pod and recent events with the following command: + + $ kubectl describe pods ${POD_NAME} + +Look at the state of the containers in the pod. Are they all `Running`? Have +there been recent restarts? + +Continue debugging depending on the state of the pods. + +### My pod stays pending + +If a pod is stuck in `Pending` it means that it can not be scheduled onto a +node. Generally this is because there are insufficient resources of one type or +another that prevent scheduling. Look at the output of the `kubectl describe +...` command above. There should be messages from the scheduler about why it +can not schedule your pod. Reasons include: + +#### Insufficient resources + +You may have exhausted the supply of CPU or Memory in your cluster. In this +case you can try several things: + +* [Add more nodes](/docs/admin/cluster-management/#resizing-a-cluster) to the cluster. + +* [Terminate unneeded pods](/docs/user-guide/pods/single-container/#deleting_a_pod) + to make room for pending pods. + +* Check that the pod is not larger than your nodes. For example, if all + nodes have a capacity of `cpu:1`, then a pod with a limit of `cpu: 1.1` + will never be scheduled. + + You can check node capacities with the `kubectl get nodes -o ` + command. Here are some example command lines that extract just the necessary + information: + + kubectl get nodes -o yaml | grep '\sname\|cpu\|memory' + kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, cap: .status.capacity}' + + The [resource quota](/docs/admin/resource-quota/) + feature can be configured to limit the total amount of + resources that can be consumed. If used in conjunction with namespaces, it can + prevent one team from hogging all the resources. + +#### Using hostPort + +When you bind a pod to a `hostPort` there are a limited number of places that +the pod can be scheduled. In most cases, `hostPort` is unnecessary; try using a +service object to expose your pod. If you do require `hostPort` then you can +only schedule as many pods as there are nodes in your container cluster. + +### My pod stays waiting + +If a pod is stuck in the `Waiting` state, then it has been scheduled to a +worker node, but it can't run on that machine. Again, the information from +`kubectl describe ...` should be informative. The most common cause of +`Waiting` pods is a failure to pull the image. There are three things to check: + +* Make sure that you have the name of the image correct. +* Have you pushed the image to the repository? +* Run a manual `docker pull ` on your machine to see if the image can be + pulled. + +### My pod is crashing or otherwise unhealthy + +First, take a look at the logs of the current container: + + $ kubectl logs ${POD_NAME} ${CONTAINER_NAME} + +If your container has previously crashed, you can access the previous +container's crash log with: + + $ kubectl logs --previous ${POD_NAME} ${CONTAINER_NAME} + +Alternately, you can run commands inside that container with `exec`: + + $ kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN} + +Note that `-c ${CONTAINER_NAME}` is optional and can be omitted for pods that +only contain a single container. + +As an example, to look at the logs from a running Cassandra pod, you might run: + + $ kubectl exec cassandra -- cat /var/log/cassandra/system.log + +If none of these approaches work, you can find the host machine that the pod is +running on and SSH into that host. + +## Debugging Replication Controllers + +Replication controllers are fairly straightforward. They can either create pods +or they can't. If they can't create pods, then please refer to the +[instructions above](#debugging_pods) to debug your pods. + +You can also use `kubectl describe rc ${CONTROLLER_NAME}` to inspect events +related to the replication controller. + diff --git a/docs/user-guide/debugging-services.md b/docs/user-guide/debugging-services.md index 790f15f71b..4fa6f2dbe7 100644 --- a/docs/user-guide/debugging-services.md +++ b/docs/user-guide/debugging-services.md @@ -9,7 +9,6 @@ This document will hopefully help you to figure out what's going wrong. * TOC {:toc} - ## Conventions Throughout this doc you will see various commands that you can run. Some @@ -506,6 +505,66 @@ Setting endpoints for default/hostnames:default to [10.244.0.5:9376 10.244.0.6:9 If you don't see those, try restarting `kube-proxy` with the `-V` flag set to 4, and then look at the logs again. +Services provide load balancing across a set of pods. There are several common +problems that can make services not work properly. The following instructions +should help debug service problems. + +First, verify that there are endpoints for the service. For every service +object, the apiserver makes an `endpoints` resource available. + +You can view this resource with: + + $ kubectl get endpoints ${SERVICE_NAME} + +Make sure that the endpoints match up with the number of containers that you +expect to be a member of your service. For example, if your service is for an +nginx container with 3 replicas, you would expect to see three different IP +addresses in the service's endpoints. + +### My service is missing endpoints + +If you are missing endpoints, try listing pods using the labels that service +uses. Imagine that you have a service where the labels are: + + ... + spec: + - selector: + name: nginx + type: frontend + +You can use: + + $ kubectl get pods --selector=name=nginx,type=frontend + +to list pods that match this selector. Verify that the list matches the pods +that you expect to provide your service. + +If the list of pods matches expectations, but your endpoints are still empty, +it's possible that you don't have the right ports exposed. If your service has +a `containerPort` specified, but the pods that are selected don't have that +port listed, then they won't be added to the endpoints list. + +Verify that the pod's `containerPort` matches up with the service's +`containerPort`. + +### Network traffic is not forwarded + +If you can connect to the service, but the connection is immediately dropped, +and there are endpoints in the endpoints list, it's likely that the proxy can't +contact your pods. + +There are three things to check: + +* Are your pods working correctly? Look for restart count, and + [debug pods](#debugging_pods). + +* Can you connect to your pods directly? Get the IP address for the pod, and + try to connect directly to that IP. + +* Is your application serving on the port that you configured? Container + Engine doesn't do port remapping, so if your application serves on 8080, + the `containerPort` field needs to be 8080. + ## Seek help If you get this far, something very strange is happening. Your `Service` is diff --git a/docs/user-guide/load-balancer.md b/docs/user-guide/load-balancer.md new file mode 100644 index 0000000000..0a3ad8f837 --- /dev/null +++ b/docs/user-guide/load-balancer.md @@ -0,0 +1,73 @@ +--- +--- + +* TOC +{:toc} + +## Overview + +When creating a service, you have the option of automatically creating a +network load balancer. This provides an +externally-accessible IP address that sends traffic to the correct port on your +cluster nodes. + +## Configuration file + +To create an external load balancer, add the following line to your +[service configuration file](/docs/services/operations/#service-configuration-file): + + "type": "LoadBalancer" + +Your configuration file might look like: + + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "example-service" + }, + "spec": { + "ports": [{ + "port": 8765, + "targetPort": 9376, + }], + "selector": { + "app": "example" + }, + "type": "LoadBalancer" + } + } + +## Using kubectl + +You can alternatively create the service with the `kubectl expose` command and +its `--type=LoadBalancer` flag: + + $ kubectl expose rc example --port=8765 --target-port=9376 \ + --name=example-service --type=LoadBalancer + +This command creates a new service using the same selectors as the referenced +resource (in the case of the example above, a replication controller named +`example`.) + +For more information, including optional flags, refer to the +[`kubectl expose` reference](/docs/user-guide/kubectl/kubectl_expose/). + +## Finding your IP address + +You can find the IP address created for your service by getting the service +information through `kubectl`: + + $ kubectl describe services example-service + Name: example-service + Selector: app=example + Type: LoadBalancer + IP: 10.67.252.103 + LoadBalancer Ingress: 123.45.678.9 + Port: 80/TCP + NodePort: 32445/TCP + Endpoints: 10.64.0.4:80,10.64.1.5:80,10.64.2.4:80 + Session Affinity: None + No events. + +The IP address is listed next to `LoadBalancer Ingress`. diff --git a/docs/user-guide/pods/_viewing-a-pod.md b/docs/user-guide/pods/_viewing-a-pod.md new file mode 100644 index 0000000000..11d30057c1 --- /dev/null +++ b/docs/user-guide/pods/_viewing-a-pod.md @@ -0,0 +1,58 @@ +To view a specific pod, use the `kubectl get` command: + +```shell +$ kubectl get pod NAME +NAME READY STATUS RESTARTS AGE +example 1/1 Running 0 2d +``` + +To return the name of the node on which the pod is scheduled, use the `-o wide` +option: + +```shell +$ kubectl get pod NAME -o wide +NAME READY STATUS RESTARTS AGE NODE +example 1/1 Running 0 2d gke-example-c6a38-node-xij3 +``` + +For more details about a pod, including events, use `describe` in place of +`get`: + +```shell +$ kubectl describe pod NAME +Name: example +Namespace: default +Image(s): kubernetes/example-php-redis:v2 +Node: gke-example-c6a38461-node-xij3/10.240.34.183 +Labels: name=frontend +Status: Running +Reason: +Message: +IP: 10.188.2.10 +Replication Controllers: example (5/5 replicas created) +Containers: + php-redis: + Image: kubernetes/example-php-redis:v2 + Limits: + cpu: 100m + State: Running + Started: Tue, 04 Aug 2015 09:02:46 -0700 + Ready: True + Restart Count: 0 +Conditions: + Type Status + Ready True +Events: + FirstSeen LastSeen Coun From SubobjectPath Reason Message + Thu, 06 Aug 2015 11:49:44 -0700 Thu, 06 Aug 2015 11:49:44 -0700 1 {kubelet gke-example-c6a38461-node-xij3} spec.containers{example} started Started with docker id 5705bffa65e2 +``` + +To list all pods running on a cluster: + +```shell +$ kubectl get pods + +NAME READY STATUS RESTARTS AGE +example-xypvc 1/1 Running 0 1m +frontend-7kdod 1/1 Running 0 1d +``` \ No newline at end of file diff --git a/docs/user-guide/pods.md b/docs/user-guide/pods/index.md similarity index 100% rename from docs/user-guide/pods.md rename to docs/user-guide/pods/index.md diff --git a/docs/user-guide/pods/multi-container.md b/docs/user-guide/pods/multi-container.md new file mode 100644 index 0000000000..3b4214f111 --- /dev/null +++ b/docs/user-guide/pods/multi-container.md @@ -0,0 +1,175 @@ +--- +--- + +* TOC +{:toc} + +A pod is a group of containers that are scheduled +onto the same host. Pods serve as units of scheduling, deployment, and +horizontal scaling/replication. Pods share fate, and share some resources, such +as storage volumes and IP addresses. + +## Creating a pod + +Multi-container pods must be created with the `create` command. Properties +are passed to the command as a YAML- or JSON-formatted configuration file. + +The `create` command can be used to create a pod directly, or it can create +a pod or pods through a replication controller. It is highly recommended that +you use a +[replication controller](/docs/user-guide/replication-controller/) +to create your pods. The controller watches for failed pods and will start up +new pods as required to maintain the specified number. + +For instructions on creating pods with a replication controller, refer to +[Creating replication controllers](/docs/user-guide/replication-controller/operations/). + +If you don't want a replication controller to monitor your pod (e.g. your pod +is writing non-persistent data which won't survive a restart, or your pod is +intended to be very short-lived), you can create a pod directly with the +`create` command. + +### Using `create` + +Note: We recommend using a +[replication controller](/docs/user-guide/replication-controller/) +to create pods. You should use the instructions below only if you don't want +to create a replication controller. + +If your pod will contain more than one container, or if you don't want to +create a replication controller to manage your pod, use the +`kubectl create` command and pass a pod specification as a JSON- or +YAML-formatted configuration file. + +```shell +$ kubectl create -f FILE +``` + +Where: + +* `-f FILE` or `--filename FILE` is the name of a + [pod configuration file](#pod-configuration-file) in either JSON or YAML + format. + +A successful create request returns the pod name. Use the +[`kubectl get`](#viewing_a_pod) command to view status after creation. + +### Pod configuration file + +A pod configuration file specifies required information about the pod. +It can be formatted as YAML or as JSON, and supports the following fields: + +{% capture tabspec %}configfiles +JSON,json,pod-config.json,/docs/user-guide/pods/pod-config.json +YAML,yaml,pod-config.yaml,/docs/user-guide/pods/pod-config.yaml{% endcapture %} +{% include tabs.html %} + +Required fields are: + +* `kind`: Always `Pod`. +* `apiVersion`: Currently `v1`. +* `metadata`: An object containing: + * `name`: Required if `generateName` is not specified. The name of this pod. + It must be an + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt) compatible value and be + unique within the namespace. + * `labels`: Optional. Labels are arbitrary key:value pairs that can be used + by + [replication controllers](/docs/user-guide/replication-controller) + and [services](/docs/user-guide/services/) for grouping and targeting + pods. + * `generateName`: Required if `name` is not set. A prefix to use to generate + a unique name. Has the same validation rules as `name`. + * `namespace`: Required. The namespace of the pod. + * `annotations`: Optional. A map of string keys and values that can be used + by external tooling to store and retrieve arbitrary metadata about + objects. +* `spec`: The pod specification. See [The `spec` schema](#the_spec_schema) for + details. + + +### The `spec` schema + +A full description of the `spec` schema is contained in the +[Kubernetes API reference](/docs/api-reference/v1/definitions/#_v1_podspec). + +The following fields are required or commonly used in the `spec` schema: + +{% capture tabspec %}specfiles +JSON,json,pod-spec-common.json,/docs/user-guide/pods/pod-spec-common.json +YAML,yaml,pod-spec-common.yaml,/docs/user-guide/pods/pod-spec-common.yaml{% endcapture %} +{% include tabs.html %} + +#### `containers[]` + +A list of containers belonging to the pod. Containers cannot be added or removed once the pod is created, and there must be at least one container in a pod. + +The `containers` object **must contain**: + +* `name`: Name of the container. It must be a DNS_LABEL and be unique within the pod. Cannot be updated. +* `image`: Docker image name. + +The `containers` object **commonly contains** the following optional properties: + +* `command[]`: The entrypoint array. Commands are not executed within a shell. The docker image's entrypoint is used if this is not provided. Cannot be updated. +* `args[]`: A command array containing arguments to the entrypoint. The docker image's `cmd` is used if this is not provided. Cannot be updated. +* `env[]`: A list of environment variables in key:value format to set in the container. Cannot be updated. + * `name`: The name of the environment variable; must be a `C_IDENTIFIER`. + * `value`: The value of the environment variable. Defaults to empty string. +* `imagePullPolicy`: The image pull policy. Accepted values are: + * `Always` + * `Never` + * `IfNotPresent`Defaults to `Always` if `:latest` tag is specified, or `IfNotPresent` otherwise. Cannot be updated. +* `ports[]`: A list of ports to expose from the container. Cannot be updated. + * `containerPort`: The port number to expose on the pod's IP address. + * `name`: The name for the port that can be referred to by services. Must be a `DNS_LABEL` and be unique without the pod. + * `protocol`: Protocol for the port. Must be UDP or TCP. Default is TCP. +* `resources`: The Compute resources required by this container. Contains: + * `cpu`: CPUs to reserve for each container. Default is whole CPUs; scale suffixes (e.g. `100m` for one hundred milli-CPUs) are supported. If the host does not have enough available resources, your pod will not be scheduled. + * `memory`: Memory to reserve for each container. Default is bytes; [binary scale suffixes](http://en.wikipedia.org/wiki/Binary_prefix) (e.g. `100Mi` for one hundred mebibytes) are supported. If the host does not have enough available resources, your pod will not be scheduled.Cannot be updated. + +#### `restartPolicy` + +Restart policy for all containers within the pod. Options are: + +* `Always` +* `OnFailure` +* `Never` + +#### `volumes[]` + +A list of volumes that can be mounted by containers belonging to the pod. You must specify a `name` and a source for each volume. The container must also include a `volumeMount` with matching `name`. Source is one of: + +* `emptyDir`: A temporary directory that shares a pod's lifetime. Contains: + * `medium`: The type of storage used to back the volume. Must be an empty string (default) or `Memory`. +* `hostPath`: A pre-existing host file or directory. This is generally used for privileged system daemons or other agents tied to the host. Contains: + * `path`: The path of the directory on the host. +* `secret`: Secret to populate volume. Secrets are used to hold sensitive information, such as passwords, OAuth tokens, and SSH keys. Learn more from [the docs on secrets](/docs/user-guide/secrets/). Contains: + * `secretName`: The name of a secret in the pod's namespace. + +The `name` must be a DNS_LABEL and unique within the pod. + + +### Sample file + +For example, the following configuration file creates two containers: a +`redis` key-value store image, and a `django` frontend image. + +{% capture tabspec %}samplefiles +JSON,json,pod-sample.json,/docs/user-guide/pods/pod-sample.json +YAML,yaml,pod-sample.yaml,/docs/user-guide/pods/pod-sample.yaml{% endcapture %} +{% include tabs.html %} + +## Viewing a pod + +{% include_relative _viewing-a-pod.md %} + +## Deleting a pod + +If you created your pod directly with `kubectl create`, use `kubectl delete`: + +```shell +$ kubectl delete pod NAME +``` + +A successful delete request returns the name of the deleted pod. diff --git a/docs/user-guide/pods/pod-config.json b/docs/user-guide/pods/pod-config.json new file mode 100644 index 0000000000..265db0368d --- /dev/null +++ b/docs/user-guide/pods/pod-config.json @@ -0,0 +1,18 @@ +{ + "kind": "Pod", + "apiVersion": "v1", + "metadata": { + "name": "", + "labels": { + "name": "" + }, + "generateName": "", + "namespace": "", + "annotations": [] + }, + "spec": { + + // See 'The spec schema' for details. + + } +} diff --git a/docs/user-guide/pods/pod-config.yaml b/docs/user-guide/pods/pod-config.yaml new file mode 100644 index 0000000000..9eb3691a74 --- /dev/null +++ b/docs/user-guide/pods/pod-config.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "" + labels: + name: "" + namespace: "" + annotations: [] + generateName: "" +spec: + ? "// See 'The spec schema' for details." + : ~ diff --git a/docs/user-guide/pods/pod-sample.json b/docs/user-guide/pods/pod-sample.json new file mode 100644 index 0000000000..25d0373204 --- /dev/null +++ b/docs/user-guide/pods/pod-sample.json @@ -0,0 +1,32 @@ +{ + "kind": "Pod", + "apiVersion": "v1", + "metadata": { + "name": "redis-django", + "labels": { + "app": "webapp" + } + }, + "spec": { + "containers": [ + { + "name": "key-value-store", + "image": "redis", + "ports": [ + { + "containerPort": 6379, + } + ] + }, + { + "name": "frontend", + "image": "django", + "ports": [ + { + "containerPort": 8000, + } + ] + } + ] + } +} diff --git a/docs/user-guide/pods/pod-sample.yaml b/docs/user-guide/pods/pod-sample.yaml new file mode 100644 index 0000000000..84635ff24f --- /dev/null +++ b/docs/user-guide/pods/pod-sample.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Pod +metadata: + name: redis-django + labels: + app: web +spec: + containers: + - name: key-value-store + image: redis + ports: + - containerPort: 6379 + - name: frontend + image: django + ports: + - containerPort: 8000 diff --git a/docs/user-guide/pods/pod-spec-common.json b/docs/user-guide/pods/pod-spec-common.json new file mode 100644 index 0000000000..c449c34de5 --- /dev/null +++ b/docs/user-guide/pods/pod-spec-common.json @@ -0,0 +1,44 @@ +"spec": { + "containers": [ + { + "name": "", + "image": "", + "command": [ + "" + ], + "args": [ + "" + ], + "env": [ + { + "name": "", + "value": "" + } + ], + "imagePullPolicy": "", + "ports": [ + { + "containerPort": 0, + "name": "", + "protocol": "" + } + ], + "resources": { + "cpu": "" + "memory": "" + } + } + ], + "restartPolicy": "", + "volumes": [ + { + "name": "", + "emptyDir": { + "medium": "" + }, + "secret": { + "secretName": "" + } + } + ] +} diff --git a/docs/user-guide/pods/pod-spec-common.yaml b/docs/user-guide/pods/pod-spec-common.yaml new file mode 100644 index 0000000000..96e4c1c6e8 --- /dev/null +++ b/docs/user-guide/pods/pod-spec-common.yaml @@ -0,0 +1,31 @@ +spec: + containers: + - + args: + - "" + command: + - "" + env: + - + name: "" + value: "" + image: "" + imagePullPolicy: "" + name: "" + ports: + - + containerPort: 0 + name: "" + protocol: "" + resources: + cpu: "" + memory: "" + restartPolicy: "" + volumes: + - + emptyDir: + medium: "" + name: "" + secret: + secretName: "" + diff --git a/docs/user-guide/pods/single-container.md b/docs/user-guide/pods/single-container.md new file mode 100644 index 0000000000..36f0fa128b --- /dev/null +++ b/docs/user-guide/pods/single-container.md @@ -0,0 +1,88 @@ +--- +--- + +* TOC +{:toc} + +A pod is a group of containers that are scheduled +onto the same host. Pods serve as units of scheduling, deployment, and +horizontal scaling/replication. Pods share fate, and share some resources, such +as storage volumes and IP addresses. + +## Creating a pod + +Single-container pods can be created with the `run` command. The +pod's properties are specified with flags on the command line. + +The `run` command creates a replication controller to monitor the pod(s). +The controller watches for failed pods and will start up new pods as required +to maintain the specified number. + +Note: If you don't want a replication controller to monitor your pod (e.g. your pod +is writing non-persistent data which won't survive a restart, or your pod is +intended to be very short-lived), you can +[create a pod directly with the `create` command](/docs/user-guide/pods/multi-container/). + +To create a pod using the `run` command: + +```shell +$ kubectl run NAME + --image=image + [--port=port] + [--replicas=replicas] + [--labels=key=value,key=value,...] +``` + +Where: + +* `NAME` (required) is the name of the container to create. This value is also + applied as the name of the replication controller, and as the prefix of the + pod name. For example: + + ```shell + $ kubectl run example --image=nginx + replicationcontroller "example" created + + $ kubectl get pods + NAME READY STATUS RESTARTS AGE + example-xypvc 1/1 Running 0 13s + ``` +* `--image=IMAGE` (required) is the Docker container image to use for this + container. +* `--port=PORT` is the port to expose on the container. +* `--replicas=NUM` is the number of replicated pods to create. If not specified, + one pod will be created. +* `--labels=key=value` specifies one or more labels to attach to the pod. In + addition to any labels specified here, `run` attaches a label of + the format `run=NAME`. This is used by the replication controller + to target the pods created by the command. + +There are additional flags that can be specified. For a complete list, run: + + $ kubectl run --help + +## Viewing a pod + +{% include_relative _viewing-a-pod.md %} + +## Deleting a pod + +If your pod was created using the `run` command, kubernetes creates a +[replication controller](/docs/user-guide/replication-controller/) +to manage the pod. Pods managed by a replication controller are rescheduled if +they go away, including being deleted by `kubectl delete pod`. To permanently +delete the pod, delete its replication controller. + +First, find the controller's name: + +```shell +$ kubectl get rc +CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS +example example busybox run=example 1 +``` + +Then, `delete` the controller: + +```shell +$ kubectl delete rc CONTROLLER_NAME +``` \ No newline at end of file diff --git a/docs/user-guide/replication-controller.md b/docs/user-guide/replication-controller/index.md similarity index 98% rename from docs/user-guide/replication-controller.md rename to docs/user-guide/replication-controller/index.md index ba562e5545..4b4e888c67 100644 --- a/docs/user-guide/replication-controller.md +++ b/docs/user-guide/replication-controller/index.md @@ -92,8 +92,8 @@ A Replication Controller also needs a [`.spec` section](https://github.com/kuber The `.spec.template` is the only required field of the `.spec`. -The `.spec.template` is a [pod template](/docs/user-guide/replication-controller/#pod-template). It has exactly -the same schema as a [pod](pods.md), except it is nested and does not have an `apiVersion` or +The `.spec.template` is a [pod template](#pod-template). It has exactly +the same schema as a [pod](/docs/user-guide/pods/), except it is nested and does not have an `apiVersion` or `kind`. In addition to required fields for a Pod, a pod template in a job must specify appropriate @@ -241,3 +241,7 @@ Use a [DaemonSet](/docs/admin/daemons/) instead of a replication controller for machine-level function, such as machine monitoring or machine logging. These pods have a lifetime is tied to machine lifetime: the pod needs to be running on the machine before other pods start, and are safe to terminate when the machine is otherwise ready to be rebooted/shutdown. + +## For more information + +Read [Replication Controller Operations](/docs/user-guide/replication-controller/operations/). diff --git a/docs/user-guide/replication-controller/operations.md b/docs/user-guide/replication-controller/operations.md new file mode 100644 index 0000000000..78f10dbd3f --- /dev/null +++ b/docs/user-guide/replication-controller/operations.md @@ -0,0 +1,226 @@ +--- +--- +* TOC +{:toc} + +A replication controller ensures that a specified number of pod "replicas" are +running at any one time. If there are too many, it will kill some. If there are +too few, it will start more. + +## Creating a replication controller + +Replication controllers are created with `kubectl create`: + +```shell +$ kubectl create -f FILE +``` + +Where: + +* `-f FILE` or `--filename FILE` is a relative path to a + [configuration file](#replication_controller_configuration_file) in + either JSON or YAML format. + +You can use the [sample file](#sample_file) below to try a create request. + +A successful create request returns the name of the replication controller. To +view more details about the controller, see +[Viewing replication controllers](#viewing_replication_controllers) below. + +### Replication controller configuration file + +When creating a replication controller, you must point to a configuration file +as the value of the `-f` flag. The configuration +file can be formatted as YAML or as JSON, and supports the following fields: + +```json +{ + "apiVersion": "v1", + "kind": "ReplicationController", + "metadata": { + "name": "", + "labels": "", + "namespace": "" + }, + "spec": { + "replicas": int, + "selector": { + "":"" + }, + "template": { + "metadata": { + "labels": { + "":"" + } + }, + "spec": { + // See 'The spec schema' below + } + } + } +} +``` + +Required fields are: + +* `kind`: Always `ReplicationController`. +* `apiVersion`: Currently `v1`. +* `metadata`: An object containing: + * `name`: Required if `generateName` is not specified. The name of this + replication controller. It must be an + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt) compatible value and be + unique within the namespace. + * `labels`: Optional. Labels are arbitrary key:value pairs that can be used + for grouping and targeting by other resources and services. + * `generateName`: Required if `name` is not set. A prefix to use to generate + a unique name. Has the same validation rules as `name`. + * `namespace`: Optional. The namespace of the replication controller. + * `annotations`: Optional. A map of string keys and values that can be used + by external tooling to store and retrieve arbitrary metadata about + objects. +* `spec`: The configuration for this replication controller. It must + contain: + * `replicas`: The number of pods to create and maintain. + * `selector`: A map of key:value pairs assigned to the set of pods that + this replication controller is responsible for managing. **This must** + **match the key:value pairs in the `template`'s `labels` field**. + * `template` contains: + * A `metadata` object with `labels` for the pod. + * The [`spec` schema](#the_spec_schema) that defines the pod + configuration. + +### The `spec` schema + +The `spec` schema (that is a child of `template`) is described in the locations +below: + +* The [`spec` schema](/docs/user-guide/pods/multi-container/#the_spec_schema) + section of the Creating Multi-Container Pods page covers required and + frequently-used fields. +* The entire `spec` schema is documented in the + [Kubernetes API reference](/docs/api-reference/v1/definitions/#_v1_podspec). + +### Sample file + +The following sample file creates 2 pods, each containing a single container +using the `redis` image. Port 80 on each container is opened. The replication +controller is tagged with the `serving` label. The pods are given the label +`frontend` and the `selector` is set to `frontend`, to indicate that the +controller should manage pods with the `frontend` label. + +```json +{ + "kind": "ReplicationController", + "apiVersion": "v1", + "metadata": { + "name": "frontend-controller", + "labels": { + "state": "serving" + } + }, + "spec": { + "replicas": 2, + "selector": { + "app": "frontend" + }, + "template": { + "metadata": { + "labels": { + "app": "frontend" + } + }, + "spec": { + "volumes": null, + "containers": [ + { + "name": "php-redis", + "image": "redis", + "ports": [ + { + "containerPort": 80, + "protocol": "TCP" + } + ], + "imagePullPolicy": "IfNotPresent" + } + ], + "restartPolicy": "Always", + "dnsPolicy": "ClusterFirst" + } + } + } +} +``` + +## Updating replication controller pods + +See [Rolling Updates](/docs/user-guide/rolling-updates/). + +## Resizing a replication controller + +See +[Resizing a replication controller](/docs/user-guide/resizing-a-replication-controller/). + +## Viewing replication controllers + +To list replication controllers on a cluster, use the `kubectl get` command: + +```shell +$ kubectl get rc +``` + +A successful get command returns all replication controllers on the cluster in +the specified or default namespace. For example: + +```shell +CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS +frontend php-redis redis name=frontend 2 +``` + +You can also use `get rc NAME` to return information about a specific +replication controller. + +To view detailed information about a specific replication controller, use the +`kubectl describe` command: + +```shell +$ kubectl describe rc NAME +``` + +A successful describe request returns details about the replication controller +including number and status of pods managed, and recent events: + +```conf +Name: frontend +Namespace: default +Image(s): gcr.io/google_samples/gb-frontend:v3 +Selector: name=frontend +Labels: name=frontend +Replicas: 2 current / 2 desired +Pods Status: 2 Running / 0 Waiting / 0 Succeeded / 0 Failed +Events: + FirstSeen LastSeen Count From SubobjectPath Reason Message + Fri, 06 Nov 2015 16:52:50 -0800 Fri, 06 Nov 2015 16:52:50 -0800 1 {replication-controller } SuccessfulCreate Created pod: frontend-gyx2h + Fri, 06 Nov 2015 16:52:50 -0800 Fri, 06 Nov 2015 16:52:50 -0800 1 {replication-controller } SuccessfulCreate Created pod: frontend-vc9w4 +``` + +## Deleting replication controllers + +To delete a replication controller as well as the pods that it controls, use +`kubectl delete`: + +```shell +$ kubectl delete rc NAME +``` + +By default, `kubectl delete rc` will resize the controller to zero (effectively +deleting all pods) before deleting it. + +To delete a replication controller without deleting its pods, use +`kubectl delete` and specify `--cascade=false`: + +```shell +$ kubectl delete rc NAME --cascade=false +``` + +A successful delete request returns the name of the deleted resource. diff --git a/docs/user-guide/replication.yaml b/docs/user-guide/replication-controller/replication.yaml similarity index 100% rename from docs/user-guide/replication.yaml rename to docs/user-guide/replication-controller/replication.yaml diff --git a/docs/user-guide/resizing-a-replication-controller.md b/docs/user-guide/resizing-a-replication-controller.md new file mode 100644 index 0000000000..ada87aade0 --- /dev/null +++ b/docs/user-guide/resizing-a-replication-controller.md @@ -0,0 +1,33 @@ +--- +--- + +To increase or decrease the number of pods under a replication controller's +control, use the `kubectl scale` command: + + $ kubectl scale rc NAME --replicas=COUNT \ + [--current-replicas=COUNT] \ + [--resource-version=VERSION] + +Tip: You can use the `rc` alias in your commands in place of +`replicationcontroller`. + +Required fields are: + +* `NAME`: The name of the replication controller to update. +* `--replicas=COUNT`: The desired number of replicas. + +Optional fields are: + +* `--current-replicas=COUNT`: A precondition for current size. If specified, + the resize will only take place if the current number of replicas matches + this value. +* `--resource-version=VERSION`: A precondition for resource version. If + specified, the resize will only take place if the current replication + controller version matches this value. Versions are specified in the + `labels` field of the replication controller's configuration file, as a + key:value pair with a key of `version`. For example, + `--resource-version test` matches: + + "labels": { + "version": "test" + } diff --git a/docs/user-guide/rolling-updates.md b/docs/user-guide/rolling-updates.md new file mode 100644 index 0000000000..fe79c7305d --- /dev/null +++ b/docs/user-guide/rolling-updates.md @@ -0,0 +1,127 @@ +--- +--- + +* TOC +{:toc} + +## Overview + +A rolling update applies changes to the configuration of pods being managed by +a replication controller. The changes can be passed as a new replication +controller configuration file; or, if only updating the image, a new container +image can be specified directly. + +A rolling update works by: + +1. Creating a new replication controller with the updated configuration. +2. Increasing/decreasing the replica count on the new and old controllers until + the correct number of replicas is reached. +3. Deleting the original replication controller. + +Rolling updates are initiated with the `kubectl rolling-update` command: + + $ kubectl rolling-update NAME \ + ([NEW_NAME] --image=IMAGE | -f FILE) + +## Passing a configuration file + +To initiate a rolling update using a configuration file, pass the new file to +`kubectl rolling-update`: + + $ kubectl rolling-update NAME -f FILE + +The configuration file must: + +* Specify a different `metadata.name` value. + +* Overwrite at least one common label in its `spec.selector` field. + +* Use the same `metadata.namespace`. + +Replication controller configuration files are described in +[Creating Replication Controllers](/docs/user-guide/replication-controller/operations/). + +### Examples + + // Update pods of frontend-v1 using new replication controller data in frontend-v2.json. + $ kubectl rolling-update frontend-v1 -f frontend-v2.json + + // Update pods of frontend-v1 using JSON data passed into stdin. + $ cat frontend-v2.json | kubectl rolling-update frontend-v1 -f - + +## Updating the container image + +To update only the container image, pass a new image name and tag with the +`--image` flag and (optionally) a new controller name: + + $ kubectl rolling-update NAME [NEW_NAME] --image=IMAGE:TAG + +The `--image` flag is only supported for single-container pods. Specifying +`--image` with multi-container pods returns an error. + +If no `NEW_NAME` is specified, a new replication controller is created with +a temporary name. Once the rollout is complete, the old controller is deleted, +and the new controller is updated to use the original name. + +The update will fail if `IMAGE:TAG` is identical to the +current value. For this reason, we recommend the use of versioned tags as +opposed to values such as `:latest`. Doing a rolling update from `image:latest` +to a new `image:latest` will fail, even if the image at that tag has changed. + +### Examples + + // Update the pods of frontend-v1 to frontend-v2 + $ kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 + + // Update the pods of frontend, keeping the replication controller name + $ kubectl rolling-update frontend --image=image:v2 + +## Required and optional fields + +Required fields are: + +* `NAME`: The name of the replication controller to update. + +as well as either: + +* `-f FILE`: A replication controller configuration file, in either JSON or + YAML format. The configuration file must specify a new top-level `id` value + and include at least one of the existing `spec.selector` key:value pairs. + See the + [Replication Controller Operations](/docs/user-guide/replication-controller/operations#replication-controller-configuration-file) + page for details. +
+
+ or: +
+
+* `--image IMAGE:TAG`: The name and tag of the image to update to. Must be + different than the current image:tag currently specified. + +Optional fields are: + +* `NEW_NAME`: Only used in conjunction with `--image` (not with `-f FILE`). The + name to assign to the new replication controller. +* `--poll-interval DURATION`: The time between polling the controller status + after update. Valid units are `ns` (nanoseconds), `us` or `µs` (microseconds), + `ms` (milliseconds), `s` (seconds), `m` (minutes), or `h` (hours). Units can + be combined (e.g. `1m30s`). The default is `3s`. +* `--timeout DURATION`: The maximum time to wait for the controller to update a + pod before exiting. Default is `5m0s`. Valid units are as described for + `--poll-interval` above. +* `--update-period DURATION`: The time to wait between updating pods. Default + is `1m0s`. Valid units are as described for `--poll-interval` above. + +Additional information about the `kubectl rolling-update` command is available +from the [`kubectl` reference](/docs/user-guide/kubectl/kubectl_rolling-update/). + +## Troubleshooting + +If the `timeout` duration is reached during a rolling update, the operation will +fail with some pods belonging to the new replication controller, and some to the +original controller. + +To continue the update from where it failed, retry using the same command. + +To roll back to the original state before the attempted update, append the +`--rollback=true` flag to the original command. This will revert all changes. diff --git a/docs/user-guide/services.md b/docs/user-guide/services/index.md similarity index 99% rename from docs/user-guide/services.md rename to docs/user-guide/services/index.md index 60a373c385..99b1453c6d 100644 --- a/docs/user-guide/services.md +++ b/docs/user-guide/services/index.md @@ -569,3 +569,7 @@ through a load-balancer, though in those cases the client IP does get altered. Service is a top-level resource in the kubernetes REST API. More details about the API object can be found at: [Service API object](/docs/api-reference/v1/definitions/#_v1_service). + +## For More Information + +Read [Service Operations](/docs/user-guide/services/operations/). diff --git a/docs/user-guide/services/load-balancer-sample.json b/docs/user-guide/services/load-balancer-sample.json new file mode 100644 index 0000000000..847f21dbb6 --- /dev/null +++ b/docs/user-guide/services/load-balancer-sample.json @@ -0,0 +1,17 @@ +{ + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "myapp" + }, + "spec": { + "ports": [{ + "port": 8765, + "targetPort": 9376 + }], + "selector": { + "app": "example" + }, + "type": "LoadBalancer" + } +} diff --git a/docs/user-guide/services/load-balancer-sample.yaml b/docs/user-guide/services/load-balancer-sample.yaml new file mode 100644 index 0000000000..b66c5ea231 --- /dev/null +++ b/docs/user-guide/services/load-balancer-sample.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: myapp +spec: + ports: + - + port: 8765 + targetPort: 9376 + selector: + app: example + type: LoadBalancer diff --git a/docs/user-guide/services/operations.md b/docs/user-guide/services/operations.md new file mode 100644 index 0000000000..64551d47a4 --- /dev/null +++ b/docs/user-guide/services/operations.md @@ -0,0 +1,161 @@ +--- +--- +* TOC +{:toc} + +Services map a port on each cluster node to ports on one or more pods. + +The mapping uses a `selector` key:value pair in the service, and the +`labels` property of pods. Any pods whose labels match the service selector +are made accessible through the service's port. + +For more information, see the +[Services Overview](/docs/user-guide/services/). + +## Create a service + +Services are created by passing a configuration file to the `kubectl create` +command: + +```shell +$ kubectl create -f FILE +``` + +Where: + +* `-f FILE` or `--filename FILE` is a relative path to a + [service configuration file](#service-configuration-file) in either JSON + or YAML format. + +A successful service create request returns the service name. You can use +a [sample file](#sample_files) below to try a create request. + +### Service configuration file + +When creating a service, you must point to a service configuration file as the +value of the `-f` flag. The configuration file can be formatted as +YAML or as JSON, and supports the following fields: + +```json +{ + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": string + }, + "spec": { + "ports": [{ + "port": int, + "targetPort": int + }], + "selector": { + string: string + }, + "type": "LoadBalancer" + } +} +``` + +Required fields are: + +* `kind`: Always `Service`. +* `apiVersion`: Currently `v1`. +* `metadata`: Contains: + * `name`: The name to give to this service. +* `spec`: Contains: + * `ports`: The ports to map. `port` is the service port to expose on the + cluster IP. `targetPort` is the port to target on the pods that are part + of this service. + * `selector`: The label key:value pair that defines the pods to + target. + * `type`: Optional. If the type is `LoadBalancer`, sets up a [network load balancer](/docs/user-guide/load-balancer/) + for your service. This provides an externally-accessible IP address that + sends traffic to the correct port on your cluster nodes. + +For the full `service` schema see the +[Kubernetes api reference](/docs/api-reference/v1/definitions/#_v1_service). + +### Sample files + +The following service configuration files assume that you have a set of pods +that expose port 9376 and carry the label `app=example`. + +Both files create a new service named `myapp` which resolves to TCP port 9376 +on any pod with the `app=example` label. + +The difference in the files is in how the service is accessed. The first file +does not create an external load balancer; the service can be accessed through +port 8765 on any of the nodes' IP addresses. + +{% capture tabspec %}servicesample +JSON,json,service-sample.json,/docs/user-guide/services/service-sample.json +YAML,yaml,service-sample.yaml,/docs/user-guide/services/service-sample.yaml{% endcapture %} +{% include tabs.html %} + +The second file uses +[network load balancing](/docs/user-guide/load-balancer/) to create a +single IP address that spreads traffic to all of the nodes in +your cluster. This option is specified with the +`"type": "LoadBalancer"` property. + +{% capture tabspec %}loadbalancesample +JSON,json,load-balancer-sample.json,/docs/user-guide/services/load-balancer-sample.json +YAML,yaml,load-balancer-sample.yaml,/docs/user-guide/services/load-balancer-sample.yaml{% endcapture %} +{% include tabs.html %} + +To access the service, a client connects to the external IP address, which +forwards to port 8765 on a node in the cluster, which in turn accesses +port 9376 on the pod. See the +[Service configuration file](#service-configuration-file) section of this doc +for directions on finding the external IP address. + +## View a service + +To list all services on a cluster, use the +`kubectl get` command: + +```shell +$ kubectl get services +``` + +A successful get request returns all services that exist on the specified +cluster: + +```shell +NAME LABELS SELECTOR IP PORT +myapp app=MyApp 10.123.255.83 8765/TCP +``` + +To return information about a specific service, use the +`kubectl describe` command: + +```shell +$ kubectl describe service NAME +``` + +Details about the specific service are returned: + +```conf +Name: myapp +Labels: +Selector: app=MyApp +IP: 10.123.255.83 +Port: 8765/TCP +NodePort: 31474/TCP +Endpoints: +Session Affinity: None +No events. +``` + +To return information about a service when event information is not required, +substitute `get` for `describe`. + +## Delete a service + +To delete a service, use the `kubectl delete` command: + +```shell +$ kubectl delete service NAME +``` + +A successful delete request returns the deleted service's name. diff --git a/docs/user-guide/services/service-sample.json b/docs/user-guide/services/service-sample.json new file mode 100644 index 0000000000..764bb32d19 --- /dev/null +++ b/docs/user-guide/services/service-sample.json @@ -0,0 +1,16 @@ +{ + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "myapp" + }, + "spec": { + "ports": [{ + "port": 8765, + "targetPort": 9376 + }], + "selector": { + "app": "example" + } + } +} diff --git a/docs/user-guide/services/service-sample.yaml b/docs/user-guide/services/service-sample.yaml new file mode 100644 index 0000000000..b9c214226f --- /dev/null +++ b/docs/user-guide/services/service-sample.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: myapp +spec: + ports: + - + port: 8765 + targetPort: 9376 + selector: + app: example diff --git a/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png b/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png new file mode 100755 index 0000000000000000000000000000000000000000..ed793737cc1d1383f3478faa1b9519c9f3318268 GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1SErbK34)Mwj^(Nm;YeE8S(uNP=vFJ#Am<$En9-cLebC{re^wgoll|t(`&s7)9J{YxO^N-aI z$5L3jD^ISzl+wQbw$Cm(|Mhq4jH=@2wI8o7+Gd%b|IIx5*Zn&?>lgCSXrXO^WskXw=UX3LH%8!s;k z#x%*aEGp*Jjm(QM&8zq~)!)n5QqVsS=vUPe*NBpo#FA922>S z4={E+nQaGTRC&5MhIkx*d-b$ng949h;3{8svn*F5o}?c;Kir+G=xvlfb9Ucnx!LzV zKYw1UzcGecb6t~6xWlB=3a51)dX2qx%p0t(H?ll;Xvl-Ua7M6%M)vm*~w}RD4lnZuhbmcl2i$G2U9fNc+T-xj%reP%UwdC`m~y zNwrEYN(E93Mh1qax(3F&hK3;q7FH&fR>nZCxs`!|)jXb!C>nC}Q!>*kacl5CyoDF2 Ofx*+&&t;ucLK6U;g=tU# literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-bg_flat_10_000000_40x100.png b/images/jquery-ui/ui-bg_flat_10_000000_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..2fd24e203646d56fa3df07b5df3bf8f364f492b2 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQcOwS?k)_Bce{j_0C}7R9+AaB z+5?Q;PG;Ky8T_6ujv*T7lM^IZ7dQL@YKdTAEH!H@2TG}yxJHzuB$lLFB^RXvDF!10 zLsMM?V_ieT5CaP<6H6;&AlKZ=z`$xA&qfptx%nxXX_dG&cpu)v3)H~i>FVdQ&MBb@ E0QKuIYybcN literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png b/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png new file mode 100755 index 0000000000000000000000000000000000000000..0fccfbcf3243850c80947e1002f035601fc2228b GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!{KIr+qDZgOs>S*DCH8q6)|^lLQ8(vdyV&7=Rv!DK5_Nv5 zKU5EWSl#{5ocZwkn6~@klK(Ue|8%DOm~7JJCTPgP@M)6!J>`Xd0YEcVOI#yLQW8s2 zt&)pUffR$0fuX6cfw8WkVTgf+m5HU5v5BsMxs`#zoR{pZC>nC}Q!>*kacg+HW&ci~ O1_n=8KbLh*2~7ZcZBZNm literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png b/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png new file mode 100755 index 0000000000000000000000000000000000000000..d7899969c45c69c8cd8bce58571c13e43d352c3d GIT binary patch literal 348 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 ae=7j-pBLECU+rDeT(h#jiofiA_rCyKji%WE literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png b/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png new file mode 100755 index 0000000000000000000000000000000000000000..256154537205de6fed50fafb52e41cfbc5282d03 GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?s03;ZUuHXC*q?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z$cXTCaSV~TeDu&>UIzz;hKv1@CM62OC7#SFv>KYj98XATeSXh}@S{a+@8kk!d7|eOe g&WfTTH$NpatrE9}w_En_1ZrULboFyt=akR{0E|FY@c;k- literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png b/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png new file mode 100755 index 0000000000000000000000000000000000000000..367be20d6d6359689a715e9d10ef0bbc251a97b3 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?szyu^`+!HJTQfx`y?k@kqfHUIz9iRwjfk$L9 zkoEv$x0Bg+Kt`LVi(`n!`KJ>Mxef&gxX1@bahq-QJ@-iVjABv8k}dz1cpvckAS5Q| zCa~sgnvR`g{(^+B71o<|biO4QZ((@QU$9to$Nb3+c9+^q0~7AA&s1G7ldW;K1nZSx z%@1{}Sk7(ZdA*`2jO&K2|NFg5Zyr%7kiMO>_`pxASP`akpQ9dh^WXn}$^S9yv#0i* zg_~-mfG$!kag8WRNi0dVN-jzTQVd20hNij(#=3@vAqEy!CYDylK(4u!fq~ULo{cCP ca`RI%(<*Um@IJhS7pQ^3)78&qol`;+0DZV~UH||9 literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-icons_222222_256x240.png b/images/jquery-ui/ui-icons_222222_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..82fad68f5f7131d7d06c0f8999c511e6d65d67fb GIT binary patch literal 6922 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 literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-icons_228ef1_256x240.png b/images/jquery-ui/ui-icons_228ef1_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..0c554acbc625ea41123a7faea547a5696171fd29 GIT binary patch literal 4549 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 literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-icons_555555_256x240.png b/images/jquery-ui/ui-icons_555555_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7009bf752f54a13850f5cd3c2956b1c4469b5c65 GIT binary patch literal 6988 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 DJqb9i literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-icons_777777_256x240.png b/images/jquery-ui/ui-icons_777777_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..8e26ee4fd8c3d9f55b7495bd708181b8558c861c GIT binary patch literal 6999 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 MNJH&PP0W-304*4($N&HU literal 0 HcmV?d00001 diff --git a/images/jquery-ui/ui-icons_ffffff_256x240.png b/images/jquery-ui/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..4d66f596e5967a460a37526e2130a55711eeca3c GIT binary patch literal 6299 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 literal 0 HcmV?d00001 diff --git a/jquery-ui.html b/jquery-ui.html new file mode 100755 index 0000000000..2473b49692 --- /dev/null +++ b/jquery-ui.html @@ -0,0 +1,513 @@ + + + + + jQuery UI Example Page + + + + + +

Welcome to jQuery UI!

+ +
+

This page demonstrates the widgets and theme you selected in Download Builder. Please make sure you are using them with a compatible jQuery version.

+
+ +

YOUR COMPONENTS:

+ + + +

Accordion

+
+

First

+
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
+

Second

+
Phasellus mattis tincidunt nibh.
+

Third

+
Nam dui erat, auctor a, dignissim quis.
+
+ + + + +

Autocomplete

+
+ +
+ + + + +

Button

+ +
+
+ + + +
+
+ + + + +

Tabs

+
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+
Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.
+
Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.
+
+ + + + +

Dialog

+

Open Dialog

+ +

Overlay and Shadow Classes (not currently used in UI widgets)

+
+

Lorem ipsum dolor sit amet, Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci.

Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam.

Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante.

Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi.

+ + +
+
+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+
+ +
+ + +
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+ + + +

Framework Icons (content color preview)

+
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
+ + + +

Slider

+
+ + + + +

Datepicker

+
+ + + + +

Progressbar

+
+ + + + +

Selectmenu

+ + + + + +

Spinner

+ + + + + +

Menu

+ + + + + +

Tooltip

+

+ Tooltips can be attached to any element. When you hover +the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip. +

+ + + +

Highlight / Error

+
+
+

+ Hey! Sample ui-state-highlight style.

+
+
+
+
+
+

+ Alert: Sample ui-state-error style.

+
+
+ + + + + + diff --git a/js/jquery-ui.min.js b/js/jquery-ui.min.js new file mode 100755 index 0000000000..5824d1292d --- /dev/null +++ b/js/jquery-ui.min.js @@ -0,0 +1,13 @@ +/*! jQuery UI - v1.11.4 - 2015-03-11 +* http://jqueryui.com +* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("
"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("
"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.widthi?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget); +i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("

fa7kp8lNvFk2e>w;_i-A%h3(a;L!`?)to?8*F$YP4o9v-jrNyic;EYn9g6;l+GoeSiPuvEc`CN{D~)raD7~ zdq}N5e8fmC6wJQo5ouKB`VgVcp&7l)D}=-G!SP!%QxyoXzQ2`tlUgP`ng=|Weacy4 z*oQZxzotVaeXJsvzR`W4IK0WII$&wVdQ14laEs3LZ8kT>p=V<7YX*zAL06w%D)W8{ zzsp3hb82)5Q6!}8*Kz=RAje6>(l)azmcOY3(!GC7d7?O{O-Dy7YEwlXetttkJ>?v5 zt|@o?^wZso#@u)(-B;&AiinYGEL0N>32AHX7XVwI>PPRD;fjZ>`dyQA#hpyv;UTgS zMS=%KdpTByP8WAe> zUhcEwkT6%7GUMFStnd}R{TCsom=@?-1lTp~I;E@-*7oN)H^$+@NGZHJ4>KX^XnYGI zqzp4gP=SzkGXYdn$eSp#Wm!{%#mSy31J|@Z61k*XI=_G*PXh{p)=$ zy&GdoBAE}(y15H><}6^g;Z?O*61|&Z5pdxJ2fe&)IEDeB*}hI__3$U3dXAm^D!V@& z6X4N6Ij3=Q$gX*wUPwUg-hZ{wK?PQ6@6g)3;(wShJJL+YV=#ET!#gw3I8k}QojRR- zS5pJ})@~-(LSArWN1IwwHP%RDK2n+^|{?Q6lvooRp618-8>Wwg$UKOXhQ9?{(> zow|=As^VZ4u2orr0tTPolgyCIf4o4}=%ix2-JrYAEL|#5fYPt>8C*OR?;hO6g4 zv|i(w-Yl9Cz#uc_Tww1xe&vBGb$koGcK_~^Bn#jv(#3+)LOVRT4;8aM8mp+%3wNA0 zYtw^4s(9>sAHQ{@>|N9xU?OSR%l#Nge_R3{$dfK%=zj3@U^-IM1B=7S4NmfYT+(qMk0eZ& z1lw2r$mHfV=f-}LVy4?Gm1r~fhqu^lFPL=T>Kl(g#dg{hOT0d2&@XNa&ML6kAi?Kh zb+)Y4ybbcoGkDepu*8mPeuAkNSvlsq&~5c1;aySz`uk*H??HxIy~6Db8l@1|?)xBr z(IqD{wFx7#s@&UG3!NN7?e}1@iSGC2IBg<;cj1n$w=ciFf!>p4Ejusy@)0zA8Ry{?y_* zCF<5f-z~b`C^q7l@1KI5pO>D(-`}b?PBr5c4+|%xUHI(fVrN(4J?nM%XZnp-{FdHB z!y3n^0WuBTJfv&;!RYeI2V>3%WwYtGArWJZ8@j5`%b#|oIrzMHVOFeatf|IC#xE9@#YkY*c>$Z%_#IwdY26IJwS_)E~O?I7Pmc7YL;&zf`w7iA% z$XSbPkI)tcG^=JCrQb+-_k2!ksAU8P=641kcr>m)jVU^j1O>1@{Mv#}JZR$#w+hK^ z(6GCGx|PUY3s=gY;N%?{z^!nMeXJc#;pmey@j>gMbTd_8ty8N7m0~P#vlQ#dDba{2 z|3!s9aF^9&r|df;7w*Ol@^9ZFnaA+c8rEbN3N{a?KF5$a(c9dNm;2Z1<$eYK z%qr&qP^~X+U%Q{{$D$#?ir;D~;RorCErALjR#daaLT9JJk=mP{^li!F*ZZ;Y5bULk zqfu2{n_XjRCQMAs_^S=(yOtr5%k0t|JU!RPlg2CMLmF62Mqjt$H`;45CyW|yP_Vn zdfjL`@L&})Qd*OQC?~zndU;f;Q05S3+#M9!X1hG*>kAok2AIW>Q%hw=>&p*a> zj3rT>Uae)f6Ly}Ork*R!vhCk~L;7ALt}T#gRn`9>fs68i_V4})6j1M%%?X5)K$C=g z)M+0-?;wbVlPpQ~g)#c0p7mc36Mb8TiFzKIm{R5$sRNFEtyObzFVh>+HM*1{Lg0e$ zN+0>33U=I=WFl1gL7JC1D5B8H@5_zUWeNixS;7h{5K|a6bFXX=a|VeUJ+i9XtllC;7yEa;7G>&~KZ{=_*I{(a z0rqx}1)CW#!Pxau3y)TNi5)^VmmYFKBBVD3U9A}g%Gn{^u#TSfYJf6}nRb$5H*4?B z0gT(39O~S%lQ(29TBkrynzV-ZDj6uUrB(c5+ zEqTl@gX?{iDkBJasQ+K>Y!9%esGd14sSNlNVwb${F>otd!`?Q~0!@3DU_PA~io=P0 zU;h5yX`yFH!Nt<|EzVE~k`AR6)Vx#M?5OQ0m*h*k#JlUn>;k=uGWozSo z{L&U33gnBSO&8_s>53lXJ>v2QlXf$``o=?P$V=e;pt%z>d>)mNnWDsi5BGaMIc3e7 zH0 z{oP|a&|#%7Uw58&OP#mU524u2+!s(Fi@s4^DMp$EpgxI^#FUYPWfO5;r~P z46P2!cea&Ro&!1n#I2Fl(e8^EW7Ubr!6{A7&hZU1`O8q)x%~2`{Q5Bbwcc}&-g}~J z&+)sp-{v23(U?*kbP8#bbe=jSR!TpE*4O z?aOtIRrk)vGDC`yG{sr#R{lOdR{U-EAyy{EjAHS!cygkl;39H z*rp!xKD8I?=N9&RUBTbyWf#1dy^Pzk)BrXT!v)atdRkNJ$kPw@&eXA7mLJm6);D6p z_9L9|Lhd5c$WJM~p|d4c(^M;8%HdOlG4r^`>ql}ou9T4{vA`DZA7^a_EU!>6(sB8& z;JX7i@e}VD|Vvl{<8HHW~Xpqi=uA z#VVeAz>rU+S>WQNE7lF$(f>0q_^>CvF=}eW?=W&Wlq$QAR*mH|F>Fzbdtfoc2ib8c zO#QUn4GyodWF*d<4Q5yA%RHa^-1pS~(y|@pPpMvXqyJ3WnJ{8}=YLkYmV94B;J?YXP6kz3~%X@F@eBMDZhjS>qZR&?*iS>dgFSOIMt zjQeVKL{V@!a8;Ic$!U-X$R{2j(%NgBSEgpBh912GctG0xOiQFTF0j~om*{Nk%}MO5 zx6d6Oa;Yg;C`q`kq^!xBfbZb|A3+XI<*aHvoEWxZbc!Sx8Y7CINLeQx&}y}?|>8BXJXN49uPt)2EQD!2UJUN>Lt~cFG zML5{JQu>R*?}t2n_ZnsU=Tjb~9L1V zf~zGJOUm=6ZKB-%x_Pf@_zLwZja$6VJGnlgNr*LyfxgcK&K=dKJ0c4{3_gN~V0$;F z1;NAft|>ZHU8puD)OMO;IX+HNcZKC!`#9vZd~jDVxp^t8E(Dk*@lx>=Vl0~3*L+KO zyYDS$3$TZ?*~M-(b5_^(V)J?&D!MDG@*xV5gi*tHf~S$e0Fl)+*RCv9qGv0YdSN`U zs3*b5Z6RvVZwD{!v$aQ0R9wLOnar&y{h2Wvh#+Sgd>?8x=4%st&PDIO;qRX*ja$ol zuP2Y1K=V4-=@Ve4?!7uxQ)a`nFy?vGNTQE+Ry=G~iK<4`c?LZ{%8LRTjXsAq9KDJ^iv$j|_^2jToL}a~q}Gc~rq|yCcno}wXJ4mSyq@#s zi2Oc~%Zqw1&*|ZTHK=$hge?)gWFRn^J@I``^0G(qHMmDO=w}Z|UDE5c*`r8c6lcRK z!`qjmjG|!B9XePq(-_}JGspApPcpi1N4oP^-wF!YDHAh(*HHoRNC^*-Mu#B2Y}lO4 za|I+X-d|B~%40S2TL3vzcuH^F_2I!@6xaHqweYC`g#p=K)?+CQymbvH)&F7-JpzxO zEX@k%pMV7+y{$(ze*O&ORIx=g=KOPbS7!*I_Y4T6mwFdfN61%G1o)+TBGf}o}?J5-Mhyu1JH49YhnQ^MkhlSg!scrM8Mc9t^#<~YdZgny|)aD z;$Q#A1ylr)2Bo`Uk?xR|r8|~TKvH7qrKB4qmrm)D5>`^WyCoEsECd;6PTj-_NgvL zTk0W)*o47WGz55(J2)z%*V5~0b8~9-CP-k8%2-IM6sdA=S zOIP6{*kdj)1#*;-6H)4A>94{~DVI*Yr(Zf?dUI9>E-Mg?VI*et6|^k&QNmcXdSE#c zq~ptbv-~8O-YhH;ZC9-**R=44ukWVI8~%8l;yTY9n$eO?j_qt-4FW4Etq1XCgA6gW zu_Ai5RrAT~cuwY?{hK}~OZ-V1l*0zazC;&-h#A;OcZ zw!u#o&Sh2$l_n+HynTOiJA(v%X3Gz(GfG;--QV2Q$WZhn%Ad;*io>nF1hN*35v-z7 z)2kcDws+P}>;qff&0p9Lj|K`1IP8fjW6re=I1cQD!YP>KWoZDpR8z7v)1Q}c4wi^k zXh{_D(`D&gN8aU03Q#IBr@4FrMhj*W51}#^bNaY#E#F66kK(N7g9SCXJ-B2_s$7BOD48=rm>8$8PgiTlLTf!NROQbCV>hQ3_F0AC z^~#ZDBAW}B@;23%<>kb>+v!=>PSa7bBj)Dy7jZ*|n{Xyn@NPBwRk`uxq6j|9TTpVU#FcSEXKM?4#c#3QO!IAwl6(5K^=q6xYh;S^jo2v6S znqlLCWJ8Ff76p$v1Zpn-s8AT3i7*2i4mAzYe|ra_;(n|cv{>^TT|P$vc=w5?eFeyH z+S#0yA&Fvyim@ar$`dsZn&c|W{nh>V_6_)6pwp`U|9u1a;(z-|qW@4T6G<~ASjXHC675(b&&dfEmCQ$%+DAjM^5`C{2?kJ{d)YNOY?7k zL4bjjU(L*-n-b9;slc3%oBE;Ex-o;i2S)X^cVI|v3Btpu!dka_#5X-lyO%|n&U|9z zyUMC08oe%l^oc3OJ`xPwN`QnDj_>4)yT-r{#(%SF7;L_8<|wwIJm}Cene$fFvi%&Fnlhl>wpL0s`N6LU!v7=Z^K0PJi9~!z z1~ai23s)%>JLCuuOPRkUR8>LFnuhHNc;1(8WRP^`PmjCCh#gjCzPN?#)6%tY zasSDAk^{;Q4-Ips>jZmfK6O+#`m!$Nt0a&{>gyGils5f=o#1v~$rs7-N=Eg3jKLS7 zqkm5}Jzg$l|4G$|Am;omSCL0AtpUa&qxg36(kb%Q5cy7hy&Y?W2;Dq|I=R>5Vd3{K zHZs#x(pYTq1q|M_wz<#@p113qz) zclsSPCM-6Ul?UB$EW<7s#*;BM_6cXDSRprf-zvWrVO`LWln_rNO|r`q`lw-as+g}l zyzcVd=R=(HCTfW+UI#>0YY@ew`pcj-AG+^!Rf*tHiJa@;zuiHGq!1#==LE|lO3Ig& zq<(Lb;+Tu^>X$m!ch(mGl!*(L)D(X%vQ|>!{Vm^8HV&K}KTX1QxhKFa9lqKJrbe(M z>7gXsp@CX)V6$d{sAMpk^V&_ZZdr6mkZc_J5Ll|V_lU$=>CHm3LgyRs8^PL|fJNpA z*mazwEtu@rN^S%v}= z$Jn57i!2F3RZHA~X->sgh*uYFUs)wG4|*CNOkeJqiW2(!2J~5RYGBHV!7%R70@ba@ zPfP_2Dg(yyEHYp4K#+uoyjq|LR+9lVB}+(qF~9AJ93w@q)hi>Ypt_;!o4f|AE$wCL zIzQ1OZlY^@p*Z(CDaE0fGg;wra06tu2NmsdCy&I0!#5jAW4ILGp{F zk#+gO;A&^OT+x`1yq=6(6-tErLX4h1?$KmyDx(PF{IcH{qF5scLb_^|t$BYWK&D)w zR)j5!0Ea!CeIi#{CGSP?XgVhG%gq{|g(3nGw!s2>1W^L_FN~7T@>_rdVp;p{L^gu& zm0pYHvj(VEeY#}xfE;K)Nhz2`Gd}~z15AfCPAU?gK}JP>+yw%9No@|yX%bx>WXu8) zbiSOWaK<8FVq}k3?x;W#sX?nNOv*9-(xa7+`0VLYvVExpnCVnjc=nsak4G6ogAOao zl#sL2xA3Ff4AL)o7)Gif{}qlRdzwEZaVX4jgH}&UKM4{Z3r*+IBI>-}EEJG_%lhnh z8=84ob``DX$sAG$Z~5&*EqI8fdbnrU@tYAU^*P>$B{8VU%{+(!+@ss(Q?3;UoMH#$ z1gRp%ouPY}PsmDBI}iCIHb2e!Wvpse)*Zuc9V&qJ#W-?xe}iua=Umq{rb4!%tg}Tm z-hD9aqi+W56E%EuDGe`Umx}dN5Rb%W>KbG4tS!pf;Z}%U0@V($h4JfkjY7&l77JwP zQo^!jnWA5UigWZd#KRy4`o#s%?f1t0OFNu!#i>O=_`Up_pk!Harfv62h% zWbiOqGsMgSg{_G*>%RO)hpqP6KIw&NC>$2k!v{b=OND~eZk9Cs{6Eh|uoT5}vRWK? z2Q`7I6BEGU)r$QVNR5D!xA4YsI^u$fqtiZ%q=uw6$k#IY^P$5x;)kfJA{+=U6KB!T zKhaGVcV`-)1}r|dzjkgWsJn?^B2zZw#b#p!`!RggP0^_G2Ii8XqFk#uk(TOgE%`)B zjJ2JZ8fsmo2;J+_1x-&u1sJi0-?GVprfFS?&Y?46o=}i&EQB<*#9DR1;2E@JgZodM z4RxCJ`T@dh@C#%>rYw#3T*Re(f>)PfPK(k|A7mkDeq|&(*QL(dSMcT7|F-zOvW`eI za9c7|*)1jdeHISc;31)C;bW>^f6PLLNNlW_vnUnNuwP1x&|c7NIdiymZ{-Z)hKARF z7hb8$fRtivde~4CkAvqAYuEPOriqoXEoTziMNHts3Q{!hTfEVT=4I(+jsNPG{WlQ+A9_8tw-g}-g zszpK~7=r%P1s6|A_BY0l?vMNX_S>>OZ|g72#}}B)`x%s$k-|)fRpJ!S6NYFFckvsK zr@VYIT>?v40B}_5NoB?-fC;q@wU3I>tB)CA^OV;CDW8J7H5C1?*YRJ8F~H^QVO=WQ zwTCZ~WWrozUiT*w%4JqChXg1`YjKlK9G|=;OcF1422Ga`K|u@xYC2M;`^r@am(I%S z$B0A)6MCVzdx)5jdwa@`0SW>-dZg-CXOOFX7IGe?e+mGJEnnlb)3Qd%8VNh$aa*q6 zH@XaQ;7ci7IkAwqOi~%CEX7=A0z{(DYx2b}GNDzLx>{|9DoCRhp;jR{bki#3g>7S7 z+O_*iPnKHcq6W9yi{cuu*o}}JmyKTvzNM`MgM9^54`U&v<=U@pGDzEX(03}dbwGI5 z$=a4~8y^lY(gf~`uN2iU-)jd#u3DcCWq^}Pwvmt>G9{m~_N8p4(!{9>aRA4nu>pYe ztBrIAVq)T&dG@LO+nYc2#}@zs=X!pygsHp!`w~)#{mG;S#>c}`i+xj3FE0w%tmjN) zBC`D!rmZZ3RHYou1uru!>jvyFY@J-o1?Hbx zY8f?PS2NVjLQrFf=HL11`!<^-gfqgLTro3tJRJO_F0_p}Vulw7%T=phfsA&GoBsT% zj*;hV{GtE48<$HmxFdf16)vakxX=eU8mzU$XpRM%Z)qA`eXu^w?S( zyu{X05in?haQCk@5cT)NC||_T*Q=B>K70G|(8$n__amg^={PAfWAn3#$8Fd1qrQdv z&%X7=#o+$HCJA31`Q624K-nHU)z`%iag+pc!lt|OqhpU6o`Nhv9_ zva)6zk0RW3GNQ8I$+Wd_)Y;;7ZoksHkL|gty6pmUbtPiTLBXLE z9pjMUq^=Sqkx*4p+2Qsv48Zrjx8b9$BWB3Q^x=M6X7zF)sM-GJ**DU^;B4v>4`)z% z$@+v&YRAdI@t4yFURyHFgR8USgkH)+!j-O|R~a+&(U>GL>jaPawVr{_R<2y~3+x9^ zS;2*86pjLA70>A5Z5Q2~xL@i-FwdnD@!H;2UT;d=2`Sk+IpIAHnf$d{YdKnJ)bx12 zQ&f=L-q8`4lQaZHIVhO}z?pTQFwoP;x z_VdWEzj!L8WM9hqFb?#lGOyTEngbBA#B|{w0Kf)tbwc>i$jEY|6WV6}(B-9Plg3K& z5A&(Ww{LpXlz53`0p7_s#Uo7e=YAF7kFK=`6v^QGj_kWi&LtB6`(>AxYl>&H$@_{r zia3VRb|S2KynzAwa#y9=ZTot^0;PF6&R6d{>JHGHcj?3`y}^wZb!}EfGlf z8MwLD=Fkb6@uc|NQOc+?o+V95LNUHgaO=9XQ~dN4u6fcD*#Ao4jlZKv7w2gt?r^}u z^fRX2&kWd&EI}H*uin@R<8CE`QJuRG>7@b{zut0^sdtFeim50MjFMrOoV8FePAft6%yXvV1N`c@aWcp+T~NeGIGtif>Des9?svYk*V=-wU+N0e934D_nZuQmcPJ|0UsHx=`SxNZupy zm|?{<#}s&kG9bEuum!$2pD=1FQJi<-`tPozNPa<~CAz=1SnP&Gq>0r@8GD_QuxY;* zb%W{P3T`q#)MkUd<;485+yZ|vs7cl0x^(UKr3ZOz2mb_=^~PZq!Uj{HKRt%$gesJD;Ru)2 z)Id69e&!TE)qTTlv0KY2Fuz9$m*Z6l*`ugMZPEN!dut>*p5`0wV% z4me_fqfi#HrAjvQPv27bP-}$)yLOqlYT@5SPM(;&DYziHD>La$h1ClxcH&$RC=rGd z^AVQ$wcjmh&v7oe{$!o9sG@}m6xM0*4lVaT;oB*Y1y+`^%E5R1rN?5nIP1ZRJ7sFm zjl28@UH?H9{;|B2ti6|1+7a8hS~E#~zG9L2{FLg_w$I=UH$x8m!pV2?{j?nhX&b}Q! zJd{rF7|)t0!qo=pij~&w{hnRVP4!=SBu-SJB<^{mcNQZ0JXoFr7HT@Fx&f4H%^ib7cfOG?bXoz$cmHyb-)5b*%kJzvFPzpkmY77D++o+$-0KvCU+YiK^X>ZocqP8)#J|Efl6Et+v zh|Utq_HzWvSM2sip-cRwiX)ya*utIzV^>X+&D6v}*MK#P`?aS=g}Spnw{!zD*;gxf zn8K3m*UYHcG%PA_r_PdGau9m}q5O?1@|kk={X(XwuHK_5WbV>c=Xc)}SHb07(V+$F z7Q1e8T|=(WHJv9atKLVSF6(v`Moo{*%z@6gVO^3E{k<5WoJ}zR28b0FpX%SB{Fn0s*PVt@t(@X{&-8gVQiGS`I#zUe@`J= z&MkzXMz*o{8+1EG)S$PO)JFv;6;D#MsK@(B({A;4*6sKFZ5Y36UX}bRbc0|l0VZMR z3363hA|8+DsKL{$%Vwy!5{h6dVk(+;y`}KKqZ=#9&dW^WmwYYZL(y$JTJ z{_|?b%B1Gn$R-x<81utv$)oYhAC_MRpy5|>p)TKttDwDS-O{XXrL^#tfgfefPp8lh z*Dy{%i|+0(PE+(CzJ|v$90UmV#S8P>_UhExn4wnJ+xg~Jo72nSN<@qNR3sH=*>jU+ zL7v+4&P##V;k|us%H@pjlhwEpBm3Wkm^RiDYSg-fxDjZ*8!E11@%S;rEnZ8FZnxvR z8U`DgWiti|7Ic-I68z^Q4AK>xM_T?2ENnQ*%RYW*^>jR5!jvW+KPvJ*xf|Z0u0wZI zYvt~FE{=G(o*lhjFjkY7+}naurf;7h@Vq6@uq?1VG37b;oMke2V$q+-Uv-iECg`^+ zx*crsr97Qi@4Aez^g7CU^_e1xUuBIe zxgypk#EGW`r$ z1SGH2$0PxUI%mYof%>cikzux#IIFfG1Lw739X~Edc~DZtS+w+4G|R`SgS}*McGHwY zGjarj;W0zbj&F7oK#WoVBwgsTS4-7Gn=zSR4)x?gWi3xXe6HnLkjUaelB7>?oDRK5 zy!sXME7s?#f4wY}#cDOdb{@_)zwW-0?z!olc)W9PIh2L-{1DV;0MGz@>^3eaM8(yH z4*%g0jI~~-JHPDK%&rnQ;(+X?`BXUf*J(tfK|RekGN%S6r=Oo|{(jkqwwWyk@wxnU zw$>s~X_VZn^&BLvo$qPXeMG?Hup-lv#X6H5t$8@y?4ylIf(Vk^IN+ZP5?_y}g5H1D z0pft@kjUDJzV-FVNe=i9lqaj$IJEM|+pt6; zY>MCl52ObBqZ-SI4_C@{{h7I20{%wq@FzxYZn31d1tgAdna1G2z(ZgM8<#M(=!j}i}Gt#qVE8SS>^1(g-zZ}E{nmlafTfBJA_xzlJKzOi?8oy zDn9o=u;xqbl;l;X&AQDm(F<1{$Q|mXgMVeFh?pYY!c3|pDun%P6Za*{p({0CH?#+a zYqk1BtZwKSz?@~)a*4ckO`EZy-l`cFOLv9o`aq8hW_YtNgZ=kfHRHGvHfiBF!b=Ab z>uK2#@mTkvW(KM7wdotMvseBoy?Khyt)spJQloKE==Zw;-Zr#s(OIuWNzi$7_AJ;X zdpULGch>ARJy2Vv+0`|E`Oe`N&0fNmuZ$d7N~1G-~5|au?bW#%!a5d^MHvo zZMHnpWQIHagosY+c@3(8D*W^>?*3i~j)#it_%Ve6>}TY(ln8SEr0x{bz1<$#7`3`4 zs>xMF@LmR(3maT}a@Q+Q%&s~SuR#kpJ~9mC?Wo48g2c36+D%S>j9Aw|wRWVtn~+)0 z5OPVV!Ne>@Tu@GKn?skrdmsHchUz;bC*lU<&82gm?xs`^zy7+%2|s>fr;42L{q|iG zW38hP>u#KVE~ZGXS`XB%AQoEY`L5=JMd868eo1-AH+A=s0(N!9F4{Nbjge9V5Wwzb zvA}mt`xR)|P?%HQlj7pE$?SI)zBf`Mo{6>jsmm|j{#xNKklD79+e>25Zn7^FVbkn| zT032N=Yj0)1vanMQ}OcDV-of>9|A2j;{A?;0qREp{e{xC2I!as|U zhar!Dx;~U&dY^uiV|DCfc+29fy#UyRD|`M!P6#BJOZ2P0L2C4}wg8RxaNj#_8_!4Y zK5KFZMyskdK&0rw#8ZmuM>IVAdaQ7_at&7%dCEvSxc0gRd#UEk`2~DKTZN8?FB&(s z&*GCGE!yN0hN(|?X;nd$@*oB|i%K$GnAHXZMhll^@gMkBA*9K3tqX#NhveMY96l#rN(YxZwlyRf+DU&r?|YXRn&#eXfA&a z`Nw7t5AwRu%@koLGuG?d!fP+BY$<@Xu{%kY{Fh0pEZ?pR zdINV1HP)ZVt7U4M90QsKs57(r1w-jn9YZKGr?KEuVW^^AEQwu8L41g zoa(HPU#Gng=B=P#%2Dc2In7VNz_7{9#r%dRiJvq9L;r4EixE^lfP|FFXw!3+j#E-> z=>`jjD)wtVor$A~>ke?`VXKA7lOv`y$|tNDLW+?SeaeFq&V2GFLIADH7?4$?sec2n zclf%q$1~8M&M-@Lpr(og~n4QH`vkgR<1_Q;jrJ8p0YQSS}cluvVWIj}4#qPM4Vk zwegMN)>lKv@>H9LJexJ!x9gUH_m#FO0mj8(LE~#h9hO0jpIK8uB+zeD1qebC5i*0a zm|91ga%|m%uWIVf;qJ`wFB|Z+%DOvq)dcaurU=LW)?hvEPr4{(^&Z)XH)gm9movnk zvf(pAJXQ{6&$1=5a&;6{U2jEC4N;El^BNbuQv;nQX`ER=%z-n!e%R8Y*JLIOT06`0 zZkt}^|LRz-Yxyual^EVutjsvAVQ(7A7=I=Q*TbGFOMYYa2W-{qxp@&&Xj|{$t_smn z_SB6WobYVPBSXtipk556v~8I#w9Fo4rEuDJGgmTw&cNOYHxu;K757qEU+Cdg6w zASp_h8WA*jW~Lp7X`I|-M%1YnTi@pIRqp|;^YOaIIt^~K{mj_Kr@I_kwD9Hd4b2oQ zV-EV^f<+$m5u`o4qVd{f|DwoYf8xn5mH1_jW^!oN6fo7?xXI^9otRz)a1fiG)uZ$2 zp$iOlA%RITfurma(#Utn8aY$Zf4c(jC`)QE46;jBxoZz=8~0C?o${JMAKNTyJBv;K zB29m=9xs6QFCw!Yy1(7mCbDr0K0Jr_!?hIqR&~O7{V{`}${MqxJ;ExDr!zjq6kk}^ z4J(_>jrEf6U;FQ*3A?8#N)?9vsBZC{UwA)#W98!xWC$nSwWHOruHI%i_L=n*<1~DZ zGO+&j^U?psK>?In6p4Et-}8U9eSiBuS31DxlT4BLzZKY$2&CBmHHY_Qx&S~r{+et4 z>c3wI90={d|NXxM{eL+}fSa!8(P}p^`dO;YzS*+`)I{IBE`hnVDC~s!;_o(%sp#u(aX>zyg7i`k%eTkoVH+pv|fkP#Z74xSf z_$iRXqCEW@n4oGOWE>qiO^NgIY1e<8Adt!(6Ruok_|F9!gWdQ1cYgpMmCcb%G75_N zb*QK3C6mM@hA#&pCJ_0;;@b#2WerHY*E)oTh905a3JVH`&Cp)qAMP3m)W|55fokpgBS$9}h? zcS1r!;VBGSssQ0ExLOZusXgN~mB;c|C)MpwDnMfK9QCU0cJ{7=@N8~w4)9hox+a2R z{OQUDnY2bd|9yFV`Fr!Ib8HOv6AyflrZLPUTimBKSMs3~h ztA~)|Ucc+!^TU<99Uyw-?&gpViBTJ5wHi-#vn5YQM_0VM7Aw(XGM+Lrq5_FmpwDT( zA1>A%9^YT7e>Q&#g`8?6K8kEHSqv145iLzfuy!KvcOoAq2zWo;{gw!QA_e*xb3xRD zksd@S^(?M2Trf|Z20y$}-rdyn0iJv_YQ@w-X@2~fP$P2mc5n0-TiOYe-!aoK-Nbyf zY!knmQ>JY1<3W>KeEx6~lV%T;^=_Qvr@3n6VO9t2BH>2=mE3Ya_K*oQbzS+he2!}+ zgT(ijd++f}q2hzETo_v0+YM3)YG}A49a4jhg0YFqH74A8j(&pKiP|Hado)XIm(rn& z`i;NGBb2^a@vA;vkUA=AvZH<&`^LAXuV3H2d*{d~mGs0}MOBq9&w7wyq{~I9nV@=z z>iP$IbHhJVpZmW}E%B`c5nV6aM^!R~A0dL~XoA9oedU36T# z(NFQ3o81qMOCTe|!>@4hN&#UFxd}o>6iE7f!4%Pfk#Z=v$_VEG=pT z4-Gs8E+2id(%RaZ>B&<)`(NuFu(8I?r^E@u7-whC`8GNxD1(WI7xew-ERY1FksWAq zdMy}F&1D(w>8L>O+vD$P(=09`5*ZGa0aeS6|K1!u6{h*~;c1?EW@`ys$7QNgk2s2W z#JnR#_|Usr4~pQeWA(U7(r@7FDCo&!xiH&2Il?VasQZim$X524QGxOEv+fq&xp}o= zGqeAklN>I<$l|8A0QirTwO*b7n50Qc0})63Q;wgx{_Bk_-rMtv`Pzy7=g_=_04+}X z89JHtzejq2n&;kgZE>x4=3bT~iHjN>F2fu@)F<~`WS?2-T)v}4bL)yxsxP(+@HHTx zd#4F7Q;L5UW>D4K&i&eZnrcoz#ZygpK;SBZRemQH2kwll>a7HZN>37G z?|;wsD}Z#<{}OT%ZwZZh z*JV$UOcO2DpLf8Yn*8VuoBELVIusL?);)f8(0kHocKE^1GX9NLXlgd8QiWwksrJUT zSb78y%Hd&9k0-zg>xjGEe$WtK#%ah2pZ==<_{BODHMaj74>Vv!P4u5Jsw7_Dv+m9~ zE0V*6(Ql5~GAlEfa&Dp|yIAKcQ+e>poJ=k;u1uU?TzgTG_w1YsT-AMe6MExE63Opg zkBguo^Kl9$(OJzpDLYToUj{6Sq?01*taxi6u#hTDE(t_e3e5`<BJxaC`I*f7$lu-<5fI_H z)J3&&p3=P7;CsGJFbZ9GVh!(lZg|##mEaUfgbR+9t22;`BxGR5xYFJ|yU z6-~L|%QzDPvP4ZJdpL&>as8K#R%6}D-EFch?b)E!*NH#Gao=DD!^l-xluko(`v))s zk{+Wsq!FN_3<KVcAR$^N=g8CxV3g6ug%1WzVSO`p!$Wqy#|Y-=k5W%8~iA z!UK!*B+8{@roP?)A*hqAwygd;$7_`8R&iHwp1!nZ{_EQB;dLZ>T1z_hxgTgK8oxMW zcpqfv;kidwdq%?S9avbh>R9(lT+n+Wukw~z#BLbQZG1cSOh1VT8H?^3^uW=Y)_{zrF;_s#%n&}8M-D{yS^ie*krbnAc~i{vu2g$}XZoI`vmaF`O7QE# zrCvNX@^Nj*#G(`XQN@Ud4Qo|a`i6-@3FOL26S_@k!KXS^=tUSoW0gaw_!%0=m8lD) ze2SR$heL8dravIm4s#$QXZFosv(Duje~#fQt@X6Wg|(7ya5{AKuC&!rfs3~$-zRQl zH3O`Q#5W1}wf{!zAkEs<-IFejyFIsyI%K8q$LQNnYZLoN;$d?iQ_=`=wM{&a^QlYs zhu#~BpT~N2`TW^hT%P!#(#)V{?Z!-#w}%l%EDQ448Nlw5j=NR2KCyD3PyATjfP=B; zCih1h&WIa0JACd#HZWV5g(suQB`R5XoY}IJ2*vVDziNr}VYA8ed%yx$=GC*i*QQ0{ zGb=IWJJplRKuPmqx8HpL>`o-#hxJkA%jnBDY(w-^?X-be{o+I8@J#a4SK1eWDIM zT*q8pDBC1K5jg=*?<>$uoP1~cagLQWx(EF#k4qs#rriZmaQbTrCZ? z@CGO{7I*enix?pevco4;RO>aVa*^-vSLSQf?R=V<2e7_t7s>7 z6e!j4>#Zd4!6!R*~k@T1uq%A*Zm1L(G&2o1GRyi!+3 zt{VNaKyiYcchj~z;^%8NAg;_AWOy7Hn+b4M=Cn|IJXGn$Q~J~8-RSX-RC+v-8pA#z zFnVuVr~Y`p8cIYWd9Nhk?FYm@8_@+L1zuh#~mZyB9TRajh06{|C?k(#=&l*f1 z#m=hwH`muUoaE5K!33Zh-PTbU#$_?j$ zDH$=-;tS?|EPx3K&pey{o8UzS&MyHOFQ@8U+4(XB0EmX(&8;U%KJ4MvTZr%@svw5c zS+JWygA$=`95~5jCcNxpVyF=0Qw5E`s;sLGvvRT@7?fdPw3<42#@WTRIT328kI>Rb zQJ~cNCPrcYWwsPO8H^P^faqey`BYPy0dC_L6ktAxSRFt5qQ+nW$ef+jXhej^Vj09< zg;bre0)D(S0;n=ihS}yf@lAN>mn1K#-6k<)t5v}9a_9`24fLB6?m7!Gkceeqj$eCE zOWDIne_cLJ3m*ylbI$b{GN8-Y#98SB+UI!Wg8GR*V&ISEXTSE^Px3c>Svu~hP{oQ2 zaCR=?@2Hc(Cfv9gN^i16>NW>~o0aZXB0glB$!)X^GlF*_^t;=>gT&(UmtEZTn(zZ! z{v@E}ym@HetuWr2Fpwg8#Bd%!S&&_`W$=iz`b@Wq7^nM$+gyl`@Niq_DXddlC$h*q zv)*{L6#jA((3dK%WSLX(j%D~|Z}oDAtBlK^+Zbm-YO>89 z{82!}t@jPpDDZ%&X!??9waK74$j}p!D5~d$4htt1DU(4Rv|wJCJuD}l?SEKcwuy+0 zDp?(8*(oo_nq|A}JZhyOQmhd6hE=$ZYkNE^>yAsni&^dAlI>ecX6MD{nS*)iju4jZW>aBW#VREqpwmNULZZ?8>+UO@|&w1{nVpb8vZPn(2upR<~eLF_0a=%?Vk z=l&b#s|U}50f|WY=LVff__E4H&pS{=Z=Rd;G@=c1wSsX=RB^YG%F$Yr3xv$Qe|0b! z92v?CH}t0Z4CDy;>(Km2C3Z+ssip$zP#`em8&V@TAHqLL(e>rt$%+`LKFy-h4W&^< zJ_4E!bZp@!z)Nnd11MBEL>u==0mU}3hjSFcf2*yPfke-F!p<(adnb*5HXs!MD0h1W ztCRk#+$98#qRgdaNB{4={tip-mfXEtn@p0kbCOMhrb2zx$!gkwAkh~#F zss-hp@92v~NvC0-k{i2}jf2OAs;Kt&qY#|?A2i1OkY5?Jj=`3D@NFB?I%Ed7eWieK z88?9cBajw-@7&T`7OJ~><^me7I)?#aU`as1?iqUjYfBE|&ha9Ko^?xcd3tz=VGpc7 z2B6bt%?^qZvQRPfb*R{shq5CuKlxGa!Fc}`>`?tXTukVrm^^naVZB#!vOi_0hAf4u zh^FYmdxtkeb1j88MH{&0)xiDo#eq`X{<@-T+B`9Acdk4uYxK0P_G zh5<3MV>$k1y&JxEwYZogI$$XFO!UAPiLeo(tR{~PQdesBTZCad1H$RiQl0%B3N4(L zo?J@PiuAGX(enAKeY+m5Uk>~s5@~D`3{5N^qO~`PmY($PO6QLrei~S9?K4ZQ;EC7y zFj`f9Tu(+&DIfOqt}(@x##W4zw1T3)bml6CurEluI*3{q&5}wyx`E0Egz6w(1{;2% z8gvr4l$ndB5wCimgm zf+ylvJzc7MWu=0(tt}hQ@nLIKsfUBOi=q0d))Dmm{&eT)^JQTgZF0c`GX3SC2Aarn zHeg8_In}(p@6?NvK7=V)7K?}_alS}(Y1S07&`0d;MRmY2gRf;IlsFP!483?{MhXv} zwjjU|)Lpsvz$(%>Qft&bsrg6}7V`EpkJih?F)mKmcK}7%(jyoofV#a$GVtQ925$KQ z9#N&%Dvx=8{=Dq;v6aTtEoK#!s6GX`agGrPV%WFqs=-SOzyXZ7CC;3~wgR%+2`}8GWL(y7){oY{G-firg4Xif9*+lW?; zDzdHGaFAH`LXKNB=5x2TR2Tdi9BYMt9Gq1VZN2`{J&=dDlj6CyQ@Tm<03pi#Tg7I5 zdnfWw$)(um&flYym95@Z@GsYUO8{m4cu?KBBlU13{h|1TiIz5z1q%GC3WL1ZbvkfC%1sXb0(;WF`9NPCbW z&oQnwPRW>^!z5$O8gRJc+1qp+_nByr^L=aODAivuX-o7Qyzp~k{NWy-rrQ38WJ~QS zVm=nza;>Hsa0yFn?Zfb*r!gx@N#OJ-A2LI<)%V^Oh{S^+ugAFqRt+dptjoK7794@Q z&Dq}T$DYk*8ytY%xazakb{&0CH`1 z#fy8DPp`=Gx`YehfBf6&j{=;d1?t8hRE=x`qA4bL8STMH4eRB`H&O1p)>^x`)qp?L z`>;Z^0dHqjy+{LB1TUJmCl|A=6qT7x6f2)JnUuP1E<$9JTOw{J+6+^STp5c{HIj~B zXe?03U1-cL)s!E%FS3vxwka&?qwXXpg33BBr(E(;_DyM_o+_qXX-q_YCulrw(aK$K z+f991pZX9appnH@Z@9B^!8*AbHjRDuCezoFd0~lja#aul)$jcAHSDr~z106n-jMS5 zyAmP^Ri@vEzJljh;q$ZWRny1`3;%bnvQW>VWbj&J@eUXRE)0$|UJ}d36Fa@w1v2hn zWNz$UfzbK6J5&A$h|1C5r$Y$SXO_DxcoNuabu!% zXW??7iXRo3O?rKn9Nyxr51?`EUkwz-a2veK&{syw0N4w6xt)}gz*I0t#tJEv`d_WE&~;8qt9r1tK1)g zZRwxkZ$~e<4QxVaoA8;+7NjuL`O77wXbX6a)&=t7Y&hb11!&e+7yVO45QILRkL4A9 zbwxHRS`wy(GFt&^s{8tM+`PP2Q@Ge!AkI1>GR}?k891%5fs=JpBQtk`@Mlrq!cgoJ zEbSKaveLbghhlGeP>g&`LJwHA_%Wp}})}zf;6^mZSSJm=IUR#_a z{h42b$kiyH-A~oVIy-xS;a8nFiXS4V4a+6nHqVRTBQ^jv0pchJKUDtG~K-PIii z_w^;roKFcTt~I-1LNMl?Au3?uC0c@vdu<$Sg<|X)D~Urws|_GF3DOnBIKfgst(uFz zD?WFfacp{?oF14(rMkm#qRw6z%Q}yr9$){X)F&>;Sjw1vKu_L0bNqc3af9w>Gb30w zVxsBozTzTGT2I>Susw)Rg;A~uYg?~hAt?^L((@gPkx8{ZjWiS6`hbiWAktH<3I*9z zp1_~eG>jQ1Sy8i%v0+sXoa|K}JdD;sPVk`l$|&?rtkJP z5ig7Tum9v^U58Xk1L&B~QKNxfYj3T=VjS4I=d{pAWE1Yw^^)j1XTeE z9rHj)$WixmD!*$k)KmoI0D#Ey^YZ~@?sBm08r-*DlgwKI#NO#`+OC#vj%MGDQ{CX9W?vBPgxi4!*5!J_{&8eX0B$Dy+wIl!^q*-^ zKMn$H{T0OIl8&S&3{6t>}|$h718Nqr#DT)v>m9`!pJ zm*+HY{s6H_?-Ke5zQ$bZs`{ud!^;9EBc=bxAbt2XaK$p#dUO)nd!95Fb-TX)0-)zBX}I%HE`&?De_U}lh#}Rk!Ui3oZKg#tE|@_CVydSaM0wZNcPf;XuRa& zh}m`>SnrVw*KK-&lwZxAGX>!$ELzowkYe|0l3cFV63NquOg)bcq6^P8dgl6lgSi+!M(5 zUOjY2KvMP*+H1k&o;E4~0t((!uyJH<*L(jRjzYF}wakY&a#?5=VutTZ_m$m0336C4 ztT-p!)cRC$&VoeNQ0QEOhaS9rwU)l4R?l--G~d- zHQDjxSrpZ#SxWm9Xtlj>NCQOQq5Sk{BjHH$9MMw+=D*mvbK;&vRI>*JDYedrd4%p$=HszpPyK+_HqMzB^Oz!#eGm${xEN&scq$ z5|@?bp_Rr-luBcovG6>>I4FZ}8 z5ZezKtQJAT8&|Hc1n4Ce-mkNS<)>n!9Zu)kcr};Gg18>~%v_|K?a$(!r+>Fkj7s~e zxwQ1~c^h6GXFOgP@_|9=A$nAB4DTN!ZKvj6*bza1I$TRASMP3%aG7o+I)BBiQtH&F z$T;mmr3?7<;0G>9ZhzL2+YKx2#DK&IcU}7oj#ZM4sq0wT1Sj~ z$_*P}W0tE2r43b^ClpVlQ?xwtpCvgUOTu|)mPf@@9Luj-W`{W0k73OvsLxy6Q=@%Y zmdyAzUT8u9WR$8XC!Ej1!j}VCRRXe(HIZk(kdKugT)fA)s?8Wh*l1 zYp&3v4^g}A$y~w9{kCs^TsWh`o9eOTEaXA&0UrZYGn@!cBvZVj6^8s;y&5wYbFgIy zZay}=A8|s)Ia`rT_KNH1HkU;caa00&Kmwy}jHVsGkP8@oO&_`MFhHSXuW<^v-~QIdN3WEv1ldjN=L_J4(UUnYWZLR(MAIo)bxR~m`@uT zE}gcz=Np2+D=h8NoarreR+7HLOVL#sS)5w7vT=hdJd2rRy&@)eWI6IJLruPPca7>G z0jb!(4}x|%48lzaV?4g@WJqE2@G)Pi`{~Gg&vksKJ`YT)$vhIz{#$2?U~higR$8Zo zuons5yawvBH<8#Wt90n&nyO05J_@I4ey-v*iSqij$9Y5p+tAW*_ zjJ-ejS>Z2p6;>4Fs0k%|vD}4hgK(c=h4(}_SgGR2aKBF*V099(e9j;x%F7(b$;8a| z^D90=Yl&+u$Y$}Eb>&k5>6oNK{hOXa=lpNo6HhK)_wmJbouk!OcXM!leM29pT44I2 ziBeVfdU_kRH5=<0?ZC$DBVD#3DMx3SH8h{`7xt_ekX`cFcBnq@!>=FXX&g)IA1k)S z19a#PcgFKS9d}SV_;BjD_hzAUf5D-)cF*7qcDz>(k3C2iYCj_dvb6{Xlr)EuH^w~w zuf4B~i)w58K3IUDlz>V}_t2fvFobjsAYD>JmjfcwEsQi0(n#abA&rDI2nfv3-Oal> zM?Lrb#`pKb!*73L_MW|F?X}ms)^+`3n{_~cdMleAs=KF*M_CmR-@(v$U-Lbfq-u>= zPW$z^!-^4a59-~{uE|a8Jn_sw)7q(m`?L?hANn}T_2t(?LPsKK2+AB89)%n~AX2gY zn;ktQ$IqfZk(vXw4tK9hAnayIH&0S1SKQ|$38E|9c`pl6eN)Z_LmX^JYJ)Zpe||{c zPd{W)>MhbqtXo;nxS9oDuN@usK=aMo zoPP$)5oi>DXj|qoY&=ekAyc7^p79IZea*`D$b9M}JrxWiT*jsR4J&*WP0jVxtwr+L zlL)%pPiI-XA2(b$pMotvol$+-D3Syf^CvsVZg`EtKP=o;-?Be5ij3a(qjBu=Hy%n` ziUrRV7KFoPK{K}Vn#+g8SgzB?>$iN_3cr*A1ZrXek4DSvqPii(rif8nk$dRzgU1k% zCe{vZ?q1z%$r~wmzPC}tH&~43dzkNIz*RC|r)t`+zZgHFJGPid3L8&Rxy5SU9L1w7nGQ3&Ta)CcQ zU{bIyZ_)mCbPc4M)OV6=)gju>1FXqa#`l`6&{g{9S~MDU`lrRgKApYfkrH&H)0U`% zkfvv^13#Tt)tfyDQgrE5zg-smB-oV-?nufLS4gR(;@|YS6JhV}7$SArGC>>^SN3>l z!ol(LLs7bxPw2veWkC<>$uu>79NQNG@aCcZ<`^&-6xP^kzhlHXfO_BS_1)}mVWt<% zz~)+tmxz--Oa2tXWOk3Xs;>{>vVFub-WrF@Vy0(II(e*)>prdj zXkYfDMU9>aVaeVWG_~0)}jylEuoO(NgtSLJK{ZKuCa&KU?E@r;94@ATt zJ8l17HnZ;Zbmg36ZkXqd@tIbAL0HsU4X?6P5>))iWH`y@fjgTDyiz+2b8c4IbnTVb zRev*}^%>H`!oYh=8{AM9J84*B8;|D8ea!?;KUC9+0khPMF&7p~uk6*%Fdf@CrEi_6 zgb6XfG;QcMl=G+AMcjI6yM_%KDK8oFsi3B%a?6* zSG-|D_>nvVYaR%0bJ@tU0T0}nVT#idpw$Wsl9+d_B#B>%0fxv>QQe$}XQy*slRh!4 zdr*~txOFd(7*)C}gqdwGT`fCdUF<*%d7v62z@^1#%-%o+KIC#la{gV(<7?Y|E%_5L zHsDJt)LS%)6)i-sv%0gXc{T);4ej+C+zG}$cB@_6$J4Fp=MQ*HKF9~b_cU2P)<~>u zZFg?csj)4Rg&wc?Dzt5lF66jp!TNLd#nH|isHS;e?&>@Bi3B*1v+J%jeTHaxkAJ?V z;Ojx1P3|iEJp~Wl&}qKOW@^+|=i*S|((1mQ9)2`dd-vwwZoVXqB(x#M%t!7IWP+hj z!U+ccmWIG*0Cx68ovi*VM%kTH#2Msw%fmb9UdSS(8fEIW?~d=sPEZPwaLdgx!XI$r zzWPU4odhV9_{#LLKb6K@8>UE5ixDS7;ZN2F&`vTv@K1+M;|iyHUgb?nxAU6v&oH*eQgr2Ozq*30 zDq)`!_LIvORc^EFPlwoG04w}GDWD{NG8{(C_9-`4cGQ13O$=7ThHzevY+L}anP zk~{g^8eWkDA;V@z1PK6jEYvQmH|FlX-W9v*6w~gUI~9Ui0vq=;%ldf32CqXD+z8;p zUl?5$!VVp-zBPF+r@EIIHANCTbhp&ajJ?b#4 z$tc)`Y06(S{tB~AFbcFGhsM);Mvr&y%bWsMqx<{&dF>Hfxnh@$TLc$`@_4vp@7qW$ zd~1L$Kaj3CsuDXJiaOeu%v$a|%&0#c(|;_)3V;0U!jBE-aSMMSt#7}5smBC&6vd#Gc~IiV z5h!JYc>B=CTYS(7(8cFq7byn_^ufWB>lh3vixmT+!xET?N`uZVMkIbmzBIbAa`s<) z?{w$vUeLgYtPbX`&tcp8kC5dxHN*~lcfw&eIhQ!to=T-l$#(PfDOa>+n?X-OZ6{Zt;5Wr}Z2 z-|-Saj0`D|%4JDO*Bg)V)dQLXH<0M2WACPApi}nJuZCe~Y}cqJDbP|3wd}on_r|od z8t)s?TwMVj*JMuyJ9oI=%#w{-%RfzZUg5apo z;CWF++Hvr;(yMys6NN|5p;UD?>u5pyaB^GDWxVAhnL~mz-kV-hQNNfk3@W8Rh<+6Q zhyB{%n%O_rv6Tt@$Q3gJDdvFe6G5BZ1|*QugB@>Q z8LXh@&h%mHH~fL(Ch$gH*2?6<-fjpzcbFCm$XcwOwt3heXArSo^1t#dg>nm=_%h27 zDJ@`*_EX}-R*=(Mi6uW~@@qCx+x|itdKi&(#Wc`V&BT$ORZNjxd>@|szK~!PHRF30 z^6l?UdYV~DXz00&+#!EAdWGhe+3xT0=>gUQcOMnX+!&0?%h{am2 zh5Nfos`JWD->@#pAy?8KNm_zVnyQediL?&@^I-=Zm9F zq-&gqrOu;AX5YPDoo1YFJUzE)i71@YC^^oV zyO0?FF-z^?bW|J#H`lY&zZ?P2E{zTs_$doot$ZF!;s=VZ}b{cxFZ1`KO zeU6{5z43JSd)GI5hczY>@bS0o($)x-C7e8h*&92>b0w z)ixymEsbE7%scJ?v%$JARDupS^xf07F4}uf*%sFCER3Ci{PUg3nmde~8m}fraYs7> zAG>?teCLZv3lrOYr`vfmi^(NO_tS1rNCx0Z@jt=xs;nC~0I4pm4(GaWP6aX@@I|M( zc>u(^@Pl_kqrz^yWNo?Y459=Pt1Un-QM=W6@Ah$c!nBH3!_crs=^+9dX zRooyR&Q%XfsV6G-?Bt;bQHxx&A7rAHd|5~q2eDjDDEVe79^{V&%ZoG0l*^!5cI-U) ztRF+B@K!?PJ9iYs4Zym}I@#Nk!WoAMt+&D-$Q@3q%7roxt_14%Jz1~loF%hAu#0kr zKXc;356$K3NSb`CN;5tWx=(4qt~rycP>_pSJrj})dH&U%2e%^mbk&8A)KFJZ%lOSi z%c>V;6n<#YBLp`2>Ln=HRaX`HJ=al8OF5!;9=Z(Vca|FB zN&FX&u=DZ0ZbpF?&ckhzy$J2VGT+Le)M^hlV~V0B=*YMntfC+b>#faq?kUY>>!qGk z{p2X#GV!^KpM21mdvSHT8`m3;KKK<8wMD3vkZ#1!wJ-S9X>)XDKT(7NG;8p>DpuF) ze4=kxC^$SA(l}P;$a*dzj1R@Mz4+?!t$T;W+@Ssz2sW^h8wG$NE)wq=}3|J*9Xo2q|I$v+Ex|@fCns zqD9n4ANttae-kTJdIm2g^66^Ph^`5W;v*Afj0I!dZ#6iP`tj7JDCfO+K7{IC2xS}D zyH$sa3<9bdphYbUP8XN~wrnf@qOB~ugc42mY+SOG81ie_;B!C7f@`>tvJ9pmI-IXh zaBF}HA%!^+guyk^WhoBja$`A*y51GDsZXYaGn|TDFJHfMATEtO;ya{m7l4OkOXXJ9 z>g?yQ@!_#!-WN0$g*9~xaKU4ptqp%BeyvQK&f9FkCR&UW5s76C4qu&!BJIdaOLsGh zw4qMjRo!$fxgYJEpZ#@4PBRI@rrxMkS|06>qt}#i-=~K-C$Khrut}tZva`U$mUq@Z ze0|_=()rk#OK0E=PT8ZOQgw~Zcllg>+_&2yQ-)fg1_8LmeLL3za}>TL`6@}boV_Gv zdM|U7d)pn|(@#Ig<>sEdPXO3uEOo~!(eU(G-qRNEiq&2~xOy7bS65fFz`v$R?(wi> z00#FW-G7)#kc!|JJK=skI^kk_)JwMGe5XAThw$|OAjwtx z6aZSidm)bJ@jR!*_0boV{$D0^A9xQH%diC9&*Sg<66Cnye@Vug2{L##4|F@qs_;NoC8mED2x3NkX8uDUGJc?Wq&&xd4 z9PslDr6pe%K(bbY{!{ROe;`aonAiR1*Nt_03l3&hK^-L!E0zX}0!l42o>NUerdKm% zXA5)udnPKU<~=~H$M0CRf1KpxN@CFgJVE_M=Qj-)%6|!BDEYIs(%}t3I=x^gc?}u# z9t{AG=V_?;6NE;Y0{CtpzeQlqX5cR+^kv=Mz1c!xI6R z=8fwQx053@l(@CIb*a@!5tVWC^~G_+qZ;mF7Qv$fTg@fIx4FRL-!j~BOs+;ZTLIBj zdd^q9v>ll)WIlFK-BcR^1b6upvJdezfx%EqnC!l_nG)1m8q_{`gW{3O*Vh6d%#gG4 zazK{DAyw+55VuHR*^4p-eUsw3g5Dft#MkI#O6hr}Z0%~z1n}+ChW6)st}-A8*Kdti zWz1@sggb4Cw<*MuiQ&V7I_?NSnRS?de9VU$K6#PcNp4Vb9j9n>t{n%}C1Fc5kiF%o zkh+uMo~9@JGZCuWIsa01TDsW?)c!NtHpms56HO?%UXXeDd&8M@N&9lS`xrP7*IZA% zP^0l1%J;Y%{9s=s3rV*f}av{L`&eRh@I3()9W3ptcE5eiZ;kv9sNmZ0;J zFm_H>o;%{tq8-YUgHl-{D+n0P*939zSA@ovCdGoO`9w^XeZ4Z{nJ}w}6HB__ zK-B6QN}a%q8Jpj7g~qa~DzS(&*O1X^FQ-{BD8rUl&ybP_oGPi7)miw!vH}h>! z($fH2_o-?gp56IwrRN#pkjzbls&g^38(1SfXx2sMR0NCqEd~Gnvcd!0fO4$^;K}R8 z+G~HeEGFu_Pvsn6;$3y}jtXu?^or_Z0;X)Ocj@z}c;}G6G$tNe2!MEp*rs7j1JQ&^ z?VC;yiVJ^Sy=LiTB+_hS?9shXzOHoCs+8>!1rY>HBg)dqi%y5SGfK$`)B#pMG2MA9 zn<49#y`_198kSolJOn`a;?P+tRaV&krA+p{x3bKo2^~x0f&_Rb#;%u`RYL^`JqVx9 zH+y2++A}cuS?=*+t&U(Lti z2#)UU2=?ZLf2-P$8Zp_|)nzUD&L=XwaN@f=DQn4Du6H4~RJ`AdQ)8^<6A{z<>Eyte z`X=%Cj2|t8TzZ6jEy8ocR@Nn>P&JuJ{&xHRVFYI7R&lIBP_@POWi4OoUEVuD3QH3E zHp%lFdgLLEpOpbii6t8es_RpoIhO=a@0^{T(R;Fu$isa3rF#OU+Di4>=#?~Wcvuln zL*~cCW69pv`npxmB~9sq!8hrxuk7UnH@JqMw0_?%&!QD4#dV+)1hXmU+{c%^bg{lm zTRRVim62&l!`1U1>2p~;B%gAUM{rr9V^b$d>>#}PH7ss%05p>ilO+sb0{zA;rOMqH zkl~oLsJnT*dVn@qGXAZR=Ya()ufNv=2v_6cn#bH27Ip7GY;XqJK?Z1d*}v3qAnk$% zpiqb&OS$>~3uby62w6G8SzaS{huR4^#&+bwd-~G=(`M8+P=Qp9uIXTgOBLl z9rzcRh=#9&?!O7|z1}mr0vB%@cG6a9wd~(aXTOiJ=YYQ8L#z6?|Ncv^IUSJyaPL^c z`ygBg)AsHWzuQK3?nXg2Tc4!E`I{Ic9)N2ljUW|j@P;q*d)QY$cl@07L_gEKLc2eW zgb1@}`#GYBO(j9*7e`!4Jc9=XHPZL4y(*|wY7-C=7Dh~J=1xx^1+5!lp`aD$k*J$` zhon0VXeMg(DbqVO2y{S zA!k!9fjHtQ@~@tCZkwVbPVM1ur!2Q@#ZnC!ogao98s6V)9?kCUIb(Rfs;jDwcSe+eQ0h`3I%catD!`toycT!D7;?+hYSbQL(dvC@Qxk zpzbJD@i|2Vho@?~khgM*;v*-byH?NDXx+LJEArzo5(!6SChI+DMr_av0$$eUvZl0PNh{zAKta}NsO_`7DVKsna=G)qC#}c^uj!yraZY?Vv z5oWAy*seU#i7BOqca*+o9hGalo0!mR5Y+!LYxsM4K9QkEKzl z8c4%_haGC5EYU!!R0$(!m~!6>)e<*t;ic#5V|Y61#=qH!`7FpT_+7zcdQdc0PIQ2Q z*2wcnt6NkmiV#Mbn9wTdiM z2_Il<$B1GtbB8>kO2q&byi4cG4}naDIlHWDF4I|V61;e8QwLOSCs4+aXNRvk6n)|v zaVB5=T8pfn+$v@Sw$-a#QWy!wqEkfNz}{@KdqoRU%Ag0`FH-9Wgd&5TsZXucl!byI;dBb_PihU&CEbyK*=Lc=OwQDprTj z;~l9AFu_dTT;BlQW1GH7*NMkpzbV+dfc63Tb+hxvHUl!pUU}D804wv|u%Ry(O44&N z8hv_riN3k;-AI0o9NXg3D^03^9-MA$ar*m$3r- z0lCAO(HPUI)$j=`bm_HEy5VNl)%i-~ma5O_#@nAplriV3goP9K=1kB^1i9%9OoqxS zRTdKRV&Ot&LPG6!uGdSmMGR96m{SbNNf>t1RJubDA)6#ylRHZh4jKXu8&dp=OLEwBc7=)t}Ds|o|BKCn7y7pfw4N)tr369A{Kup>@~|AUgtFQl}!QIpJMwN^!&)#I^j z*g@t)Rj*aQmB71l3}rTvZ)&S4D1`rac_BH9e{9 zd$(@Rzf#b^Zut4U1Ozu(kk#yTqY(70ZBW`yHMC%+Dg)P|l&^DxF8`U~tu$`|-tPXL zJzT8hCroKyRBvHWZCn0;W01qmasG&nC`C9li(?0fFZ~$KcC5)kdK6v$IGtp(7Z& zs3RxHnmzp0!`}-6FmwCiPP|4S`TwoY0<;BeAR6w)rWN`R>)&Y=V9mKSZ6^BnM1a@` zM7n)1%Bg?d?FOBH3E+6A#qPaA`}Y?A^L76p^_@Q%4P0fLwekFF!&dgj1NK~o+ud}R zP-b^^Q}*O=1PQj4(k1}xS{s^9UR*a?(U>@Y?xp2I7xjUj`U|oq!xp>xNVK&_p9CU< zfRkz*wJ)oo^mWT!eRanh-#5;sQr*n9B(#_`JA3sx7`3jC&w`=|j_=nt_ww)S9Ceh> zWG+*Dl-DA(wf#(PnA%3W?Nc%Umpn9CYW6g3_xYGdJRk}P&5jbfin<-Q+WTD$BDkAs z@x2D@M>mqoemux+akI0vEey1Umpi0Ha~->xNv3~Z^K#|dxISu(Qf`PQcNJutg88mn z7^7xQE7wwm=t^?qPSq(a{@STBt#EKf$#SDr$nV386Rf&Ad63d7(k z2@WV=;>lZdw|4&&x_8#9-?`(wb!8)sfEeHv3UMB9=;U@~E9LRnxVP#k%X=%tWodKZ=wCNt>Qp7TR`-N=U!&+oKKbVl+E5XB&+FgcOh^+j3StOpwU}j zuMoAj2?meffo>UCFK6{m!uR6_vO@=)Z++x~zh6rOtY7!K%q@0VFRB)IW%F~e;N+5X zM(dETf9XO6D(GvA&evmmM^DbbR}H#8YV^1-M&U&2A~dI2l>96HbYu5VrGhiZ;nR5Q z3*fRiUhQ`}qI_oM5H`7$jSoKP*d7LqWs8)%)R2-7x7 zGt>GFa!ezfJB`J*Q7+-bvAr7)E(;?ER)bd;IE6h_`fxo1OATAA5~IjJP^uU#CaW?I zMg|B{wjIYuBaqOmPj4;esx(~9)j+Z%FFK8IAe{Q9yjpy>DHSihJGRQ#Su>?h52K11 z@(WSY?DLV&_K)nCBMYTSFUwmCZGmj1XCXK-kG4F)xTz9_Z~BpNET$J_`BzmFemv7AY$EnCTR!zhu)9B$RA;g~vygim^|8@mzcCLV628pjJKIh|CIjF`u|ap(L- z3!chsV}|m4s!5FS0d1|_(2HgM5>|Mvn~=PC)%>cRll}Ne)9s!I`>PB4X2c6$DkyaH zin8jjp!s-=)k|ex-aaHhK_YTy5K*{4M0Sy5<$!I9+^vzAzFlyyyJqZdoZtI>e>?iY zN@$|NRo?n;o#-_y4Ob3hROtRfg-4&Fh!0n_M{hTRr5oc>su$zD{P4~JJ0a-VL7uP! z>iNT`?ic+`67j+FB2q3p4S{%s%if)lE_$Zxcd+2JG}h8nfLN?F!?%~nVIll|0)KUL z!MN4lfv*FZA7Zp4$`&%Tx=I}-F?UfL&H&oi%a{k;ox>~*1*OG2fvF(Xa>0T_S_rK` z39d*^z~Ym+`>z+9fbdPC;I&kz(Wt6CNL$qJ4EALs1>i8~LXFLNR*fxGUH0oaw)=sX zy5UIv$j^+fZ)4L3>MsDFzGAyi^3Up7x`@eL3^8du@zP>bbGkkr%OR9~;Unu_#ST?R zLEO5qtI}S)rZ@jln|rM2Ss&e)-+YTrH#_`Xk?ThuMjDjY}k z8FW44Tr(_Er-8E>#DI58-SO^ha&8rzx{M#x6q&cErNsk6$|w~J(vid{LkQ8iaNK!w zXj8$-N_~ZJmqjLW@316CKdvMA;@D?a+408<S=UEQ8=!z< zx}hMiOR(|tGq+x@6&SNwblNz5jhgdBf_LPP*ckk9X@8^zokCn%N!x$S)idw6)~m9GiRznouU-J|aM_8SE3@IZMkGtu;uxNCBvT&+mEmXK+ zZP?`?7>#X?`7o6On--fD`Y0mSt$g(`2dPx`rp^PnnxtkF7KagBz;4|6#mT)vqAEWK^wFP92N2BuPwMRdqtux=bq}gg`?F!eVtW{IpoDQ1AR`W)Zee57W4Raa|GHJp!A^!ypt%1K{B_Vm9_J@gGK z<^Hq&C1G$UKuq#`0MjrEQJ*haRPYrxFEU4^s0b_BZgZtz8?W0tW`E8;yOFV!a+`Vh z9(*A91!5y5qy!3}{@+`9v#Y8jYk3rqOhEb`syocuANQxT0O=eQfB?V4F_?7W%{(Vo z6!!ZeWCY)QB9B0dVg1>A-N@@^L)1X)M{Xwn>hJ>cg0!gE>xX}~Z6gulVK>h6#1vDC z30O5H%d^5Ci*|L6_Dt}K;@wpMErI=>!?nVoW5Bb)s2_H@I9gQ&@3z{NN&cL!t0?MG z_QqDrXttr@q~9C5H_O$#Z)>|hUg3SfHK>wTO9Y=A(?q}e{ON6L1j|ad;dQ@I(!W;e}*^p(MI$30#4Iuab2~|l7st2o6+?lkh#*w8r~mw>M5CPNYltEXYhP0klJyZhTd+l}VllN60P!n+h#Eg5c|qnfPn!QL8>jgw0+>T;V5pZIdd zLEad)BXn|F)96Z~&4l>jx}w5%H7ItlS!vy3rG?|DN4enQrPWj) zt;xI^3x`-h(S@C)Sm7APNxSVe4vl`c?`DtVdnXrboc5Tm3JeArFS-CH2l&q<9QA$g z$ZtknN$;kjq4`vCbq^EMz7+Uw*A%^6XbTH^mf-LlAGS!w#R-V9QpIg!%S8{z^j>U= z`MF;mxwG*3df+MK*K2g697t;(XnHdNOrf*w+tYvB&jW*whrmh+;ZsZQ&RV1_wNc%8j|7}I~czF&~n zSI1!EN_)`V(=*j;Tc%iSfzXWUt(!YjTKRbl@&3HX7^@Y%cXf>0bx|zV;Cq=m*IZu% z@D8D;({pDD!Hc`=x^Rf-`~4a96@GoVMGxw*=)ztb0I;7%bYuORuQGHoEAt>}9-MEw zkg1*CU?^xC_QrZWGX;!oNO`(TYBof_yr;v9sINYHIq#|un$yR1Zn*UL>}9U9oY_~f z=uvv|t}lN4VopmjY#E()>_muo#yY|6RyJ9CUzoww8KrMR8qxLU{_*x}S&coMdlUsf zbCHnQ_$Nnm<+tG_iakIiO7=Ay!n@vt1F)O_c@IYvGo(@F3_vjL#dmf>cFK01P}I)h z3|cf;YX?+~YO)7aZZt<&BgwY9a+o%cz$~|GwaT#>GOX-FAhTQ1T{#W>oekwOcX?p@ z`ZaiV8doRlOqQRR(4L|XG@k4`k8xPTkLoWMvzh?7L98m4J%b4gqS$|DbiuyG{ zy&%3B&EUYo_ram{kl_uq6R{h zxOe8%;0AG!&i>Q`yR4Z#?LQ48ZW{ln73uy(D-55`A9v z1&tfdHl>cALwMm3i67(-FIKm&h(=VmolkRhvMLH{YFvn7!uYNjX$~mde)J~^z{j3u zZ1~Zb37$h9_IygLEmb&&WMouHd!w%`C9j@jAz&|i~%bs8{Xn>TNCbO;yI zIqMyZ!dsL|&<2VyhsK)1bf|yl+57g7666J~@12CUvqWpux%El)r<4On!_QFBWh&wg*2$TPx4sk>y%T z0bCEImw|^?3*W!1DFwfIi4^#=4kk+hdfI!Vh1%>P2n51e8|GQMs2#x)=xRNEy+4D# z!gv;Dn6>@9V?u^oNGN$={J?L^D|j{mj>frS{eOPdJaP|^E>}qtPE1R?0yreHGBWS< zkHxnKWe*qY@`(0I|k78M^b8(`O0fX2h^+qMn2FD3r# zx{F3j%>QmSeyR_k{od1a-^bS2cz!5LHgQa3Q0M?pL>dToe%@A;YSG#bW6K^~KZpdz z$G~Vw1}Z64lB{XU!vPgy=O(QKCRFS(;eRy9FIk)n34Q%~HWCsU5y1iN77G78+Wqdh zv7mL)z8#E&NIbHQ1jelU#!Oq}uR7&TFW~vtcGHr_i3kW_s!E4s144v<^5vymm_C5c z1+Ih@B@#DodOiF`THG2@?|lqX_>sskY5TjMZa@+rKT=|ROaL>O*g;PL0+C|o;?o}5 zZJPf$1r2v69xP{?F}h%nNJ&gQMX|vIL`5U<i} zm5~X0*5u?QIu5zd<>7dZ!`$ruc5}46XK!)!Fa$=DA!kWB*P?JekkiWDMFvzdKzwOu zd;PrV-ya2-zQ;9d8~O5ZaGKZMi-pPv7|$5CT9w@Nc19w!Y_pyUq3h3xJSWK$bp_VxWQ?QEA!1ky|nh+McNk za$FgJT{)kifVU5p7ui%Dd3E*r-0~vhy5~O}5#=&=F(-&Dr^#N63-8JT)Ehutc;&Aj%q!iyaU6S(t{e3vn)9QHuDkqb_$5}wXl#F(=vFT~>t#zo*dA+-8vNg_h@dO%j_xTy+BEutT(~r1oe$5MC zoR=S#3my8W|95M6&{$ok4oYnWzp5nX^jE(nl6c6RXX=U=vF(WQ3^89G9K9izVHhun zTRr0WTWJiq{oe9O)B_NniRvs+R%0p2C}u#+xuI2 zeWE+e|JC?UbQz-$4F((0cLT1T-?FRtkq4RbHe9;^i%3V_KKk!&55%-uA6B3D3iQyd zC=z8Yp-!n~c~pR-(fnTz2ZcFtMm)$8(32w)Qqqh18xi$uFqJxEXc)GrAB-~zzL)IO?+A}9_aAUSjijDUbh3`%#mfYKr%-HZrGGjxa2-JMEzhbST4F+&av zGiQ8__x*m?xz69`oa_683wUPF-fOSD_S$RR`(975ijp)w9tGaDYuE5)WhB(DUBjBX zcJ2C$+gO+oT~ij5m3XG%X1LdKpv)lKm@f!XUj%s-A{@3m7AUq1>Gndhrltjk6V!mX zrSa;a)o-iw_t$P`lUDohKO$nn@8IAp%>M9t=#^^5a;aQ?1OE2INXxOo#|ogEU%%eE zdyDd@<5Eh({An7>*XHf>uTV2*b!J{3crfD%jM7d5wOuuG<}Q8>i{RZgY}#wSk8qLf zgMRiLx5a)xqQyQ0w1asqwJ>)0>`aE!~b6M|c!a$ng+#qKL zIv0#*`B$VLgl;d<1V=jajrWgqW*d=vZR!1ZZXD?K-Jmg=mZtwgp6HeN#)IX8ENNPNk3LXaYo}*Z7d~tk4Qo5k!?O z-__QfL&Cft*~l`!9R6kNx3cy8#fDH74JmQGJ!x8Wlp0&W%C$1|YxME*DKxZz)OYyx zZ++;cVj9wY0R-#JZ2>dy6HP^GiuoLkLI3^qu9d6cK;K=`d@b{EtdTm$9vmpo=Jk z#$5Z+hov(Xdi-=*nc6@LnoEz_imFikBR|7CC#T>mu2-jVw?n*^m5oU3$1>*La4Bq5 zQten7m#;HTWrXMPMo;o6V#y6{>LCvTCj$R5sf(W?@#IK;&=5vPMs{bQE*oUJM=yzW zmnPjlcp1N^hgW64>jf;6S7sqftl26E5TBm#X<|zvb6Y1KdFt)~ZLWfYp#@{yRJU>7 z|I_0-i%JTlmxH7tP)sy1_fAlV&4K5pQJ_OlZyQ!GD_IVCqGEN=P)8g-<@Raf`+ zYpy|vz;6u&<4*nnR!Rikme`Q_@@;z=pPqQ(c4$H}J2&(lMCNnHcaF$A#z^r&Ddf6n z@m>Vv2T+IXpRZQm^`$^&p#ki}s=`TKVI?w~?VADq+!7!pimrpZ(l7`&5}6HQZQu$@ z3`cGspqaGl-rv8FUY+WB$oBTq1Ub8LIkF)4UfT9*&sW>6=RNY&!&X9)A{7apT?xiV z9J<)CoOpZ&`UW*8w|rG7%>EYFl|^PSTsF95PRhkUH99f1`HpSF#f*o$I++jU+~^6* zr3Eq>Y3w8W*-BU{vh&@_QV`sE=_9wG7PY0-_4D`eHy)yOm3N2WW`ny-YhJ>(u5UC2 zL|puTDiO1nr9R$5N1h0VBvA9NaL|*&{rcGB5)|CH0jV(wyT;LKLz`iJym5>1sj&~+ zhz1HSSG`g8hYm|>VGOk{$IqKg`B0yn=|rkrax|FSQH4EjQrVuGX#)%0h|cyTB!Rx7 z@JL=tFOERUn}ULXm|>b86NlLs%+cxk3WAbd>L6-CR#q#ih6py!aY3KSy2z-N^irnF z1!lw3Lh(9$=9#WX!&OJ27Q~@s4KK9rOKTQ9yfBxKT(B<9m9kKG6e{${dn28z)lB!x z*C=O*;iKqw9DC=!y%Tt_5t*uv?j%LKx*t`6`8o%K*pjg5E8%%-M~wvyDEm>-wD`nl z<}9;IQa1}>(82DCC=zOlKAYB1cH9TD1=V+{C88j$hE0Tk2jes!0j^CvCH%a0#L|7c zsr6$)e*5@@H!b9pKC*ICLSEZ^fhAZj4%=|0xKAA1Z{>`xNLHEJ1V?4?QeIe`MBLkx z^9Eg3*BpNMrF3C$EWY!=drH{aG`zahC|E2QRToQmFUe*nC)b15PBXoLri=}-o9J2k zeEn`vvyir<9X*@CJ5?Jb0~lR<=4K%GRh96j`ue2Iv1FTvt3uJMToRE8^;BCmVQ8JV zmd1K_7#uqUFP8KeU=TPsZ67FF+H4Ws@Ip8ztnkcIa+x0Hh^AGgTmjYpGU~75ANA0; zi-p%EpJB{6ny%{YkY#9+`$Ie8y~yii_IHSn9yP@t1Bew1JV|)wzX+AJbR|OQW%*#x zW{6YQ24fCGwDmzq^8#DMdaoQE`?_iiWbh%H)gTtHdUG5LHO61O%=Kjk5fBFN?I!x6 z8o@*ub-p&|pzsBXAFl*uK2{V+* z?+|uWx@Ckknll>?z1!bghRg^Jl97dlcCvLO_1Nm5Z%zg#@D+MDQEtne}67@ zuxww`7!_KFdW{bLW)R*+)vOoi58WwPB626;yO7Sw47uu%g@0v_()>0}x%WW$ICrV{ zMIvt8WD2zduO!Xk#Yfg($D0_#ZH*mZ*F$KqLXf6gk;nOw+7P4u0aJ>58((NZP(g1* zbPYQ=boTr#E^ueM1ux0y_P4wtCnAf|kYKLP_<7oA+DmI&CttX=-sdJvet!a9U9?)*m3oOP zVUsRd<*tdG(;_yWC_7Pz(Yxv>iB_NN?5S>hjO&*FalqZ&7FMjB(peQ1JLpJQp`#~C zX`sR=K<1<-uWYP@|ER!`JWWxl#9Z_FkgZSUh@TPD{a;o^;HHB$brI<1m-wttQfN@k zgvZu+Tt3_}5ve|Qhj-n0y)Ds+ph`!kFVknf3UUA=TRhtEAZ8C2&n-{h_c~t{mq_wI zp7Yc%5cqP^W1GMX%{{&_srYorX_f+rnm~FbL!#9H`}+WPh|Ix2m4I(Q_Li^ z8W*;4Y6oi&;XP2xq{0^xZ~I?BIvbOQ(@zOq8v*CU#lzedtjs? z{!6DF87bIzM#n^L+MEuBFMMUoBofV;gO2u+P83ds_y2@!pNZ*I{2(&nk{pb^uuQO; z+Oy^t8e_M0`!u@WtnMie@jZ-=n^P5i41h%GwkrGInffO%#B9-z_Lvv}Ku#Xjz`0Bs zov*roor`Gi_Fx-dhTFqvk^|P~40;R>6ZJ>grhg)}^n1SFkmB2%BYAQ6@pTbdIt-@P zk{TUeT*0)_SoC&P&4Eex)!|7XxIQ7pY*aNg&rw%}`1d{#$DP~-s!_U2l=Mn`2Aj%- zCO5*%^46qu`iDLe#u0uZEP1`@uJ+{Dp?(cZIZ#XlMOTAfF)lQDw5^Q~1CYPMgaX(P;~qBw-{!NmGN-me1AD}FTnf_REMpPU7;e+l&C zHBtT|c-3n##FQld{zD78^)C$^e5a4gaIJ3s3W+Tr`+6b*HTIRiF`Cj!X@N@CMQReG zXKTOd^$M=p*Zg))q)cy(&;&OLVt27pGBm##yXe&+Ns}TBdGpc(}Gz4H-UQlpGf)tDNuih z36B1>^H=<#4Fvlj>mZkP=!9Q~%THzB4*gt)x|nH01^nk()aSCyF-!md`GlzXk5#`D ztH<_n?!5Cm_Qr%N@|d(EK|tE?x88qj-bVjm|3Bs=Nb|=S&T(dbH@t@RE4dhk{ptHN zxc=6kzi+2pLlN@ZN8tRz*aFA@r^j>U;${ z=lYLx|44PcLAJjH&V4XR)r5yR@<<}n$C=M@&R+a<=W!S>tXwd|u1|*S2r=*1CPM!h z{wF*_mlyA_YZ@RsDy2HX_5T1;pTQhEjfYTX%koj=3Q&sJabTlJKOywZYg?C};&RY` zJ`W{HqlN(gc>yax_&&OW zo78yhDxvWC$DcFMaR5ln=G={o`+U7ndl^A)_!55*&e@1);$75S+jW#50l3Rnlu zw+X?=pO`-C8hFGh_>I0TE*$;pu@=0}w>femH09G-U!kptNH9Q`w}ttzzjZ%csnaoU z09N~r=FoGr#r~mL*BrHxLN0INZc0v{Wdpl2hhf3j5xr$yn;wra7JzHlMzp(DlIdy3 z^URi_^kgTlqM!tve!rEm{KA_%bfnZF`RY0l{lnw++9eGRS3bTMBMpy>3z^uDtaq0m zyYf9%aTHm@&e)wb8=ffhuoBI}=`<9W654r(nRvw#Q0wtT$GJ2bs5JPPlpBgCw{#^p zC|(QnfjDe*8yW_2kUMOYJmYuce*2Z1_27I|iHl6RMGZV4bWyy6u`HV(rUsXa)`GBR zFJ#4ruhh_f*@?Asx^*n+xo_i3bOmA&8qAAraYzT1Z>%I!N`@*Bx*wWR5Gm z=!fs^>1g`2?_S#cjq0Vi?MG1BoW^C~x%B+7UPr`vpjnI9ga#SL#@TiZ(N5G?)^asHh)D-5^ovTT4y9oYlF|K#?fRu6{n3HWz3i(l!wwXLA{4J4MLA zJ4(aU=d8<^gyK3ATaR2EIjiyltx@&}4?97=HqWek&OU;?`>U;q)I+1t**cRilReFq z-YwfZ<~_#<4>jt?u0A!@maTsKU`kPYyuta?q<&937SvK|fY*X(Q7GS{uBWkGJm}1+ zSNenbdL97(F~qkb%~3rU2Av3>#8F3>nj1@`)krf08Sn0jOV}kf&BpSoooFABtyswK zZ+KE#lpSwGjN9bQtm(<;8oKO(f$}Arydv|8pe?#=ycLiyvn{2dHcTM!MWa4N=EIAN z6*Gm5f)}^48rK)}0c&$!4;)1`f+~|{3XKt=EW{%U;nI8=@0DElh3o2myd5C>3VB?W z^>%Hz3aAC*T{xFlwzlLe;>w;Yaor#3HtRjG@;OnPLAcoM43@*Yz;YVmKKh02U(Un1 zgoTc{ZS(|dndmw?C#U0D$4h6(TAmp7@lJ))D2H=dIM3VGYD0&Z5`@~^rV@1e0Ur!U zHhs%a>)4K@>1H+pXX|n4lZlb#E=(+~BKoYY6hSjw!x|OE1FX!eUl&&>Ddiljc=@e zJ1Lm@K(A?kXNLN_HGj;|utK-c2jVPBf$dgZg70sU3{^XGSK7Jrmn#OSPy1o8A`u(@ zaWfZ}g3b0uR085rl{2y(2FQCjrymgt$>$oa%Q~)Eh*;RDJU~Bn;jhcNJlI_egt8Dt z!yMF4>9unq^Qj`%JFq^>+&y}4lwZHAl zTqu>i(>|KOB|q@2D)yPiC3i(g&n)F*k4JBPg1K#+_ccFNj6oCbeQz9+;93aldMY)! zk%aGje_mwcG#>iR^E3lcbS(}scLW`u+6*Dlu0J2?x$o0xf9kO$_`#9<8ctf4XxCqff`cUe+EqGHb86jk~6VecdG+u`Jc zdd*I7ZN$_}(?TcC)U$;_Xg%Tknyk|$;(2fL#bY589K+|q$ID6hS2>Qf1)jzvU*A5z z^G2HbhU#ML<;@ikk8t)1_rr;bQ(wy-ePXEK>@%E*Mw)K8ia8vz3=6N8h z6jU}aBN8>-7xT%r=iPf_fMr(R4{{8z;j$w1LTUu()WCt zYB8naSQPIX(8kZgv(vTdQ=fe zmv`tl!(+wP`0{Rz^vy^7lJx_?=X{L=dsQ?iGp6rFN_#FjYvM zSOO#3sNS|KVRZ%{y+-R~I6e2X`E2srq^#)>~*hK%^Au|C7ETwClXyK+&qp}lu{!?Q*$i+cn&pp#Tmx%luvYBt3 z1!9HZ;A}q)YB6*$f^;8Z(|A_%5t6#|&74mxBMnWoHKEIp5)){i{Ncb^gpX>_ zATp(rHz0dM21mYBSeory-6+^2LMvogvbCpedup+EYRBA@g?bR1;}q(J6rcS(7#|Yi z37Tq3EIY9Eb*vipN_vlkdaccWimCCJ3G*{%=P#5_(>iuFixQT$jlE6d)Y|m*vAE27 zPE)*?+|U5@sa!RMD;81QM%!`GswG;U&;Apn8b7_bR}yp3R3=kUfH~6Zv)9D#Zv8;4 znswi8W$kG^>3*^*as1NXX~Feex)tc`A!mUKHHo>&*OL6;?NtZ<-6uyLw+t}r6n^zG zVBkXfG+e#DcF#Z{O?QM@eOn7fu+K)xpzT<2N;+^Zoe)BYAoigygJT!b!k6%#*%>GoWLADaj)cD-ijlMY#{sX9q;x8px3#m|Xk_x<0Y-=+=^(co$N= z2Yjm&tnpcFB+7mPBp2S6U-0LgSqBf zlc~$(OO-EixgGLEx!d3C`8t4&+QTdXmgrFvd`(0k-b-u`xjmqE76U?Fb={`#FmgsY zWzQMjKc(Rdi7oE-DQ`c6L&pQ%uAw&p=^p`}PL><|RVmvvPewZ)6A?5{fVp6Rfv4%+ zn2^Zw?#zccJtNdsh7+@NgQTcJYDY6t-BASnNGK%s+=Ol|`gx}bziZlofUB;IGYoKr zKY~sx=6q6-^YRM1vErf9ft%hmpB|AQtUU&AN2>FpmQCelnng0#=?fS1O3dJ1yQVTs zf?6xUi_7YTF{hCIR(G_ecJwFaSa!*C%SFKR|Of0qs z$Z<+b*M2q~h=SSe!gNsjI61)lqWk2uR7gfO(cYb+&o*VMWmWXy%7mY6oB)dnH=#(3 zq|J+P$f|4Xb*#nK=+Qh!Nyoa1`ReS6MnqopWYYY!`VCY6<%87hnUs^7qXv9gRuaYm+19-246 zuru#idHS7PiPbDxCAH9qp2W~mQ?p@Nc;z?wO1`o|4uCi53^11%Bu%7N@dHUF@{Y-9 z$LItoyfgDUjv1}Nbqg_D@`15BT`sp|LS)03vQOJ@EWu8_5-Yqf1$Q-rRGUHP6*(}< zng!(B7luk)jqYCot&JR)p7*p8^&cIN_I~mwNkdL_WhLAQOq(E!jyJ6==)VZ;+YQdX z=w2?%oeI9gI>lv%u`bl>NGrCT!hIUGr)>T(vfuei$^`B;KWG=r<;D4$xoo?kNh;3Pk2p-e7~-+I79>om^i-W{B?-Yd zKeXcxL}8gUtxN150zT1sT6nRhL)SKDZJUm)hlF*AO~1Wp`l?|Nfk$#5RIohM7PmD7 zbeUq)PK4-J220Lpn3w7nsGCzX9SKjF{pfy+h~ z&$ac%WYRvl?qCH<`x)?FICT4UKAfoB?zq~uul=hk9jBK?Yn_LaPMx^&3<3J_Mtu9Y4M|Tx`N}>>Fs1L=aE7H?1K%QXrHcFFxYE z{~M&YAjLJrY&oN=RmZ`MHzj-?-oV5@3u0l}uDypL353SxHHky035@@jXH?8K^^NAB zZ@b#dP%b)zQV@M(!^hGjRJl3}*Uje~be%o?oHoT;T#g4et#al#rdjV3y)wZh(7#{? zClETn86HS@2b4(X#{q5#&R^F~cRwc<#qzu}|9y?U6D0=wTQd17Zm&s1sF zM<5ek^v-`?)8Fgi>RSvR-}^5lQn(0~D@78zwWq=W!Ct)&!i(Lv*WBHn5zdN<#u~Xp z2l>PwtWc-T;s9&K}ZPx&HHR{CMhh@U+;SE7=gJKi03DNTAUwR$# zQK~7+tU<`yZA~#6cq=h{hT|UQdO-Nuzu?W(0gy=>MNkw;5KtGUBL-qbceD)$B1&-G zunnU>vIoehc8yGyn2|(!BBY<$w%JV@aTXDHDJYQOuq%9nycd`*EX?Mivz;0JJU#?UfZnX_No3n3%mEqxTO`I`{4l2TflO)onW^Cm#M~;wC|Tl zlQwU-HT@H&rsS9t&Mzne7Eg<`H{U=X;O5Zjc15bT{gRDekE76Vh=qgI@X^Z_i|9Bu78S&V z%r{+F@tK<^XBKJsH^B>`n({^;4R6>HdhW=BJ6(_aP61Puqb+u33EHx|*u^9Ls@#KZ zC!Dm*9JXB2WOC|Z#{KGpQa1HQ-SKl9LEjZG%juKk1m_loqrOH%j|P4tq&WD2-A1o) z#IS)-X=Hipwd4MmmGMQQx>sLy&Ybt4xv|#M4xE`X+f!eg+oeOz(H>-u>CrwM#@2j- zRnDBDDc)`gMl`6QLfzS25AT!bq#2wv5H|ZUQo|6`bZqGC>(RC}l&*-&u=l-kkDz0l zFS-M|9NW2P1h3O=ZtUM=9te=lO2pZpbMA+7(VzF2oT_O8Dbe{9Qxjjywa||cKzLBG z!$6Mb2fCCb?)#u64K1Q0>@Eo*(;K`(xpT`V!*Y8fmz7EWviLWF(zyf#lOe3K_6ZT0PZLZk%%OTTZD19w+PF3^>boo>i`kp6?iosEEmN)a^F_7cu<+ z5`AH3&okjq=`*)5)r2o~Zhk0!Qwr2y^ek3Z7g3sD{L=OysCMUU;B|%X_Z-=pryEs- zC$uMV0a?Rebk5$x?@p<$H#GGfkGeHGz8JeFIv~{xu!2{%pMBI@5@H^JwrZxcr|k!B zeLX7mi;&ely>u}syKa^4Tvz8cxlo1n(n-sj@rs~H!a1TqvnoD;>&0&*u!mFE0=DBO zR|*mgE^Q15Yd$s!hbn>ZFL0JvS0(4{gv!>A$mMzS9ce|SekF!oj@A6R7i;&?M5-*rCxRu z1)J1oRcX_^5~nAyAQLdY(Y8NZ_L0_nhTl9 zyE(qlunrF{*^N*w`#qj^qaW%sli`6daxyi>8TjLtTH3YH!K}NiUCkZ-=~=$o0cLm$nx)C=@#x zbvX;;9}+kAgofkYzx7~_K)>HCXRLaav zk@x|QAHW>YH+TsfiqLWtx1m?@yA31Wu%7i-&&@E)p8cH7`U~PiCi|j03aI))UjK*b zJg8T?ZEzXPaY2LY)e=}T1zweUIc-#Sh!iAVJp_5Oe|YsCxV{GwD@7L0#n@djfI1GQ zj!fRb0B6BR+rC?f;qQu|l1<=#-BZC-kNtcft)LCyh3}T{%#^n-h}`JVu5LT>Wq0R8hVsidhXKJ<0QSv>ea_R9FG}(Eb0-Hdkqdo?W_aij|zIazJE;G-i$=j`T zIJwz7ED+bpj;Lagl5wCCud4VrgeQmhae2}Qc#YM>S3K^Q9deG;%qn?6bs9DOYaoeL z@pt+v^u1?SwIe`DXjOP7=VEfEkfC28bLg8s6%%EvV2^|1ldj^M)gRY!*01;81YL2= z2`Q7K^UrQA>Rm1Y<7-^0QFLcm71tYrV?D9ccrD?|mkXVwvpU8PDp7&OrrSmo5>#CW zOkLMWcj|+mFUok))YAjZ3oaxp;@?Y0=VF-6m9lmmJwq%*lNqc-et%wPR zZaLT3)_FWBL4VS9N2}b*YIP(-NPpq{USid79ym8N<$9rpBIL-^LvM;iGk$1UTS;iN zMc`o{fnU_7LpBLBh7`^ybDQ{F+;P?7n_BvY=}E4 zF^Rbmo`K9%8Sh+Co)58z21-(d&D}ECJkV*7|7rvPP&i_1(W%)BVz51qN}^HLb{gzoa})W z8{UH_K#d45nfTzaA3<5M3PPOqOqz!P7Q8*v)dE-ozQDzvH&o#J>XGuph_-xCzW}p) zJ3_6r?Mt0~bj1yN*^8tiSQfJ&&!%13O zR=TSHQo3NB)&8aj^O<|KCmr9CXt4H%)`qeXkbCX3HDcDoXJ-ECXFJ^%CKxp@!~6PCA&3!_z026Zf5tWwAFEEco&iFWfKP)icU^= zpr`4m07t!oD+dm&X1ElTwKW_KcDfZCu!N*bX|U|wKj#|b{$cuzOLkkl07e!EVW0mb z`;tmDS*;#SosoqE^98BKehDu-!~!V}AtCJr9&fdIBrFKEd1ZBgnYxXt z^$HHY+!!OfS}(bQYZCpGeHAK%lLhJ-iI1KEb~9k|{`dH07l8DW9n+CaBtQ{m{#r|` zR45u}wg^TxPu+hUPa=yGe=#UGE%OZZ+L{3&7m@j?ubbJsUJX@{QBLF9E2-vf0@I!- z#4Z?*j5%=U9IN~k)v=6Jhd3raELRAn%4gI%+ur6S&ux5r=1psGKB*rUE<~o9^@u$u zYxO*|4;=ThPbRxWdVP|W#}^45C$m9J-#rfu=I?W2&ssrM?P~lDxDXU6;U@du;>K%fOcyn*YY|^I=o_p1k)2d+96XueS?2$}r5#b1 zo1WzM)JQW4++19ktUPl39K_HEAQZ_hg>DX-PacI|tzj_z_I5M=+@yT3Mo;dXYK5*_ z?-6-SE3B1LvzeZwt7~CNBKrMcr}w5y4~z7MIwPltkot>T`G`6z_8Qb%P4oTxYZ-F2 z2bH|k9-f?h3=Uc9ifhKK0%)yu*!C{I2wDr+xQqO*=AVJjV)neIPz~;2tGe1v{zk?9 zu9Ydg&<$l{Ulq^Sp8l26)xl0mrm=$H0PxC6UO7_hNIUK-U$)!~DUSS{2Jys%6BS9E z=@9+xOwFj^@e=Z50K?D)l8M)g&5?)_2S%8I&58uEo#PnY|Fd+C$*0) zTlGeYqrMHTykxA%(&14!%$j3Z8(h_&r9Gs5p*|exBXt+x^?L5Anndn&2+{}fEj?;D z1yBsy-8@%x!CWl=W;KW;LV69PIG(+D7Do4xmgp-%UA}OI)^7Hbo1MaYwe40wMVB`# zP81Rth9bdNQV!C;w@QJ>fCloUg4#GTrlNA4Ahb45EQ22pPqCxxFq@Gqol4X-)Y$vX z(U0ogf3GKeud@0j`wCSfn-VCpCIT>YKLW1*L1|bOlI9DIp5Fql(}7$$_(=D?^PU;y zv65mDln4EX-EaVOc*q?Z9XBZ1G9hg0XO%$F0shG#`N=r^bLsWrJdicW{b`y)S{&7Q z@c9|G_1u@F$+=-ySPaueLZpSp6h@ zvdaDyiy7&sf`?%|`da3^7V|L?p-?GoR^y!5U)JShB0?Fa;Jte&D~0 zb}lV)Mth3k;OfQv_u-obNx?Umk!b!a)5)CQSDgQk3Mx_#nOj&`*qk{zIhmT$jGr;U z_Kz;-8TB`OvoL{~>euIgjUgAag|?pM2wXw5l+g)jD#Y%Q_retM`I$H267#YDCr$z5 zZCqc{e>FQHei7)DK}JS~oQiyFcJ? zo+O3L`_9A!9_^#?l-wu&Vt4+v(k;3x@z&O!6*f*^Yrxe=iX+fJ@$Wf2Qyc*|8uUg zMxVjk@qk&?OQe8WY&hIBsw5NYMgjwjK4<5(}{H%oz-^r$Yr!*Q~&N` zcflhqn*vc`@WC#7y-kZ-ik@;|V4mr6Qh|NV#ijf#hv)1}nZS-BhnZu=+BxrH;UV=M zwezXYkLtr!6?c-{D+N9CAF5xls`Uvp38KdarbmTH>b^}ehWf{$qeP?Pq*h4~uq!e@ zqhYi)%Gn{hbR9K6iHb_wT!g^(D>L;cH-M<xQoKjd4D4bOHG|16qpK*-Igmf87zy1i041#Ct#vD|dC;1ZlF7Z9@C4 zbaA993_JVsLl(7Put3qwGO^u-eB!h3Z{=F$Y(W{#6j4LjpLaLkJ?V*h(z9T!;FamE z)eyA1lkkr13V*?xHiHs<$p7%QpaW!1LufvTGAXlv=8?``-YRf^=xlpJz-W@HA7e2g z5aEvys^O;Lu^DxqXw?QsZ#C4C=85@hYjo8Yjbb0}dPil1kMY9#8X7U|eMI@!j~yqX zK4p#?1TJ6CdlPK&4a`Fc7hfPk5{>e^)#eGI=y{*G)p*2Um_x}yGRn{Qhr8J|{8xnM z=Q9%J*NuTI-Mr1N80y*)tpEGidCzNp*GBu}W(B0Uy8_(UYC}u=$pdCKUGW3)H%JC* z#L^C~h#2o<{*ygrmMJ=yvt{f@0`X#Tk0QzBz8|p>gpaH3{7PAy1w5?m{TdIxO}y#I)6_G*uf*%j zq*V#O+&Srz2qdT76!EGu4>|1u4^N2SxU}i$v#EjESg&M%53ZxO0=O7TGNqjNjCHPl z5?y}Qv)b_eAfB@`HmAo3j;au$yei(XG@v%1hir&55IRQHL0L{l2lp1>V*`eHDDMGX zYK_qopz>2nS4pEwFi>cVa@ux&1st$*ax<`_%J;l8-qp$s(M)tt1Xr`d+Qo;b5UoR> z79&mV3rp~##1yPaij(AQ6MMHLa=%$IG5ExTr$7r(F63e)8Tv7-FFcBNrGF|X}E2GED(>+;x zQp-U~Nv$`u+XYHkkjxoL2_4udg_wdg=StCTlF|%3O)PsEz-GPruVF8^I6FJ@ys7oe zO{dgDm=togTzDUbTIn2~#P^5f>&W1uBhz)PSUu7P%omR3?jBe(In>m}MDL%@n(Co- z_uBMi23`)~@RdIxSEH^fY;zi)4<$=!+G?m%i}~8D=hW>*vv--Om7&~^NLH_(H&g+) z>1wSFDsO8-Ki}@0{%L*^bkmO(+UVQ zbS{tfjoDsm5-$Pe3pw+lqPS77p40O5!pF!>VQc$LldjU5x(Zpfh4XO~)>5Mgji@M*%Wsr#4o^#B`Jhdn8Okhx zP0!Z{zTlRD!1@`FE^}8hM7!p_HG++Xi!8e$t#>2@t07*965@{04zZO*67y;+-^7bq zHmNvH5_=bA^bQ= zJGkB8V`rMQF|F#Bm|4e*`IM7BzmZ$f-Ac!HYtA*tuw6emt~$Cp<|Q2|3h^Z+EpwzQ z>62j`Ud%wQS?oqv@tIC%ah>N)QKcnc?=?W-Ep$Cfyt-E-ih^_r^EE#uJD;nR%mw*4W6<5^@ z>)CnFyP#^sHIIZYQ`{=D34mln)LNIEH^$o_0$itueZcE|mpw^Ns4ofeB;@<&THQv+ zi9s}E2&p()RK>o^42pZ5A`qedQYxJ2_R0f24m@;Dp&(OR)5Y4Aim!s(caq(=B*i&| znM7q`sI94S>&%WYqfOVd4=ccots+%BId)(fLpG&Wvbng{Ci~7(JQBk!ww>SPBW7XM4?s=Ca zZ9mJ3CEmmngH8<7tU@GeO?j-BJ}Q(e7h2Q38iLp#Y)T^XzJZ(beXVn^#J~HU^Fa)E>*cJU)3`x2VyF$dx0@v&4Qwhs-vs7oe}kwRai|DNku^n|J0NE+MS&$0KTq|czKG?2c_?pdgM>nnixyZ{OwdW>3N z4Y`QhpRTd5zkaL5xdX|N_xzFM3TRPq1%x>4`!O0TgqWA54*AVSN) zikg^DUDdpdjQw1=n(UCwXvk`hnbY%N0n~VDJMVf^tb6XEE|kZ=jZcoC2#w-Amef-7d8ZbxdCdJJ0D03cz}691DLVZp`n$1 z2f~=TDkkmmT|#mzKsl*VMFWfi#mC(!eMaSF^By#+*9j) z^LSECL#sHHeWN3P%~Fgqa;3mY6kr5Et}G?-S4$vQ#%$Jc&jUm3dXf6B`@41E1#a}| zF4>}jzH9CNtnz;6H`rO|Vo2s@=L7~hnbaO?HPgoZz4yi9 z*&;+uDh~C!KjG!F&#Q=%EmX1eNSlbVa@ZDm38ucJne>>Mthwc8BKDK0M+bJCHW(@3V~y6Pe#nl zXoKan$k41oA^9rzV9*aPY*5`Nm?ZId=LtV*%mGE%46GY(8}UKxH)Tpn>*0#Yr@dkJ zX=sSi1$o$!t!`=r_#>fDpC%l-egU^z_>?jHEX2?hc**}>><;FAH~UjV{x!TPLeedq zr}r=~(W!o0*Ipq0ksa&2=Z5o>aL!w3OO8bx5H;x!cPhk-H!UMHC1 zS&c6S;y;(ZWwq>Auzz=i3^Rn3CEClfr|y=hEJDG&Ueik#PR@twAXQ%U2j7vYb_Gs2-s6 z1Ez_;l469=tJhzeq*Ecm)MMc~X}M}&N7tu}#e7>vq3k_8*dMxyqQRmf9@4fZH&H9# z13ZyeI#ULb;TSZhhxQ#rxWKmPh1pM9F`H4J=S2^u*o!?bL@En?*1m`mN24vWt_vHd zq4!Tp-x7PYA9C9kQeoaVkRS3dx&zn(Vz3Iexjf|z6g;7=xU38fFq|SJ(0Z;=kNZCd z`&0FUK^xZA)@EmQg=rG({rC3v+E6ED<0bGy1u<6Khjh$y{^^gr!cy3KFt0=Tslh+r z^Fst8_Y94UEO^MbB%n~J*<+UWqNiBxazVHPpIGh|HQuQt#HKxb@GqL?A%l**Pp~Cg zHCud~#S=kWaJRXTj<(o8@&92q3mIijnax&ADpNzypK6k3`YVCDIC4ex06<0c6ST|v zFLLpCTU4?E^YG|jxDgj^*($_nfqnh<Ii` zLoNT;zOL%7zj6K9r*hRS{fkGPF zhY0`&b~DtpI3b(KGk`hXJ=j!Tof*R4&;&~K#(|!YZRZZbz^Iv=I#wvjolpN9)O#-`_ zp>Y|gH{{V2KC2&LHsMi^oMq{0B3I4->=CWNIT*EUK^TUv?*id!4piv+hqa4YW6;_hx~OK~e+{00gs1W0iYZP5UM;ts`v zyZaaJ=e%dUXN>Rsc)#=O>_2PoJ=R___nLFfdChA@y;WDh$ECu>!otE=QUq&ZVPUsm zVLb?b`VjNxJMNJIroi@;QPO$(^y$o^#$U`Mk(Zo-m$s{om+yNIYbxrCTBEKYVVUk*QAK zAA4x*BBQTX%Tz6js7 zVZD3rp!4A0I~o4}S@Dzb#gW?HKa3jsmB0RS4wEEq866)Nxt)E848XZ>=`*^d!Q|#s ziLeF-I0?!V7HM}x6y1kt5H< zohQtb-Asjmj|stfbP6ebo?cSrzX}vu^ zIQr#j`aYZbzTSCA1p3qJ_D5xvUmiYD<$c|be35p(Ba;$Z=U!e2cMhK))`wl?6az%} zm4mkEtUO3^wdq4Zb1s%tGtBigG>r?l6fwfSpqACYik36q=DKJ?Ksjr#&+ZozR*;me zr$3u*y~C#DFeMuR%tLe&QbU)tH>UU#s$t%T+ZISq4M z?!&kL6x`{R32VggKe}&sq3O!SzRnmV4n?^8n#V-rcP-ok#UP?IB%0oo3x_u7T|UIS zu9)7jn>D6VnXUi<{jM*{5~ ze4j93^;P7g?3V7P-lAkqLLjx8c_vt(TJr3{#GqOFqGV?9sR({1;(o#*A9kAq<=+s< zf~#{kx9FptCC}F`b2hkKxk-RZx!R8zkjrb>)wwTp=y1e?*>oy@H8l5|d};Tg@rz#5 zshGFBDLF9Ye|mb&qcmlTGcaty@@1;7^9wyumK1q}=D+`bAr>PXvmDqC-Pbk1&v%T5 zXZesx`ZW{VjtDUnHN~<3iyS@ND|~z@&9h;!t31Rg4U;%j z(7m+%&WQs#!mfgw___M6`JzB0&W)$gI^7G7oUSBs)3Xofc7(=RmUaQ{TEBZ~>CZO< zN#fViYF*yD)Wy5B2}l&3k9N)mDximRM z&2qwFvks-K!!|z{pIGFW$}Ic48|aXFx^*kRwcw zS$QX7BZ6?=lofk10`XKM^v?mWOcz&4UyupJp+H!Fi*r=$`3bW+s6HY*X&}aPN`WS` z{4#uki^-|rD7GzMsPgz^d(fCr>$*$2CRrfNf4kb)iQve<+E{g?yr9-2&b7E4#Mp{G z^!!29+D2aRypi3BehBCMvvGo>5QU{;g>Ax)mXUh8c)l54{yCaRpLn~&qe)_DE$?fi z6MvJbvhqK}Eq(8xetWf%>7!vBC#kwdIQ)7e40(=(0Zyuo+IfIvQIn)@p39Y@6ma#$ zSZpY4bSd(D2JvXBW>6IG%CR=SYbMTok>p+v_W$IIKt#4qy4Q9fWq4fVv5cu{=u2%9 zaE*W5t1+ff8?V8)#QcCpoT7J(_DedCMYdi8Fl$boQ^vjAYf; zPlW=_zn9pGMk-jK@|3`_)sc;!SoNQvYsa7Vn;w?SYD?in6twaJ<0~t{;JVZ%1#F`&?h6 zWVxl2a2fTe-)j}&rmdQ*5hzEz3z2Q=yLaxUF|47zY<}(62d#l`y~s9p^y1FU_@8pG z5-e^U9v`lsW#nWK-3OKQxt zg}JFBD#sjI0ppYWcW+L3DKIEjj^v!uLoGt;$ksM&PJ4U$-m7IRU%c@z8n!RFOLPcn;T;$%#wo6rSBJj zxRo77gd{*d_tGG-=KQxBU>}&xZpTC~BeOuEM)jvPozSQ*#Vi zODlTc$BRlJO6G`>r2yOCOyZ+mUfD(pj9_A7fE+PcV0@KBiU}2{e;{qDnk2)h1kRz4 z9X;j-EybL%KLcojCC`xOjT${^g@HCjAKm^02eQ)=(e z@2U3!V{&FCUgBR_ul_>pLTU$N`(zj|w%hPXG~Fu%r6RZt23*W6-+nrYYNhObn7S8F zFt{FjuwE>zvvfC?lpxuq##aYRpvDvD zqv)~h<(5AQE>!oU_MGhw{on}&0f12|t%;aTd94jE{hAP-F^Xo^7Tj7= zq3R30dIEg~OxhEtdU`)E{y7DeqaRX|ur0aQN!cOW7|k0JYWoJC%{uA-FiHPXQl;6a zG1H|}Y08N+#QL*xRYQ1d={(?IGULaZ8PkCYezvz!J-M-1T1-xELkDlC+%%rDR|s>! z{>S@?e;o|25opHgIMkBO4gQrKyz9^aVeRrP#rR{r$&gh?yxuKkl_Sib1!`Sdeia^D z)Grr@Zqi4y!3Q}82U60hW)lMBrR^0b7uch|l}~j_p@`(Zg%^_0<_cSH@DONSvJLUT~ zss)T4v{H)bq0pBz)t6599bkzIW^NBpGjX$nlP21dV7dGvRg*DoG5yW48j7)xi3fnK zbH#?uS{h(f8-dwImIDice3Fr#ZZ^!5Y=gf)vy+4$0BUjKLXM2JNbOR-u{FML^n83) zL8aQlH>0E}R%%x8;tsVDl%15^2_x?vJ$00k~yF%vO)PJWeNlWJhKXpwpB5!=I-sbn=uy4 zeN>5+`{j=+cue7jU3t7M#bp>qXCubkTI!yzCWqWC49Odpe|^k;$vo{GUtWc|NZ1$niU^%{Uku=--z=kkfMhB z-gn31Bq+4KFR@+<{QLYrF0lTm2*rPW@IUV9|N7v+zW@JCzyGHb{r@`O|82kGl6a+m z#W+N`5*7au#DE1N4z)%geDk4wi6(*v`IM{~s$I(m^b<#PY!T6&nc`y_rOuSo1WVjo>jGBhWMmOUj)Awm zu=927ke$h;_tU4S4;VGrmw1XYDkn>Ql8|NwSFn?}3%^QMWVEQH*nEKXw=$~JLS_4( zSh(Few@C!1x-TL{69Z~2pj=IZ<@SC z_hho*A*q{*Fcnkm`M23UUoX;&sD*CS;?3w9_d|~MWSi(Eoby^j_-mHveOGTTZ(>5K z($lDLnsBb&`KDEFZ|U!LSuQi0zg`a#&bO^hTz@}?XCM~l@H#+fQtCRVKXLsB3nAyI4UIdB95a>c%S#kiqM6X#_3F;%VNz$=D_sBP8HfbqU^VP~!nBRrnp3{O z?=RX_T@W%&&Sw+{cE6*Sbf$mGZf$>eGx0#vwl))#KO}XHUfH-iMjmYoTz21`*PHvy z9mmK!78{aN-L$)^-(Kx8y9+KN!_sUFRF!foE+1>V=lY;yb{}kXz(37l12=K7{^lbY z<|?w>fmaK+BWXbrkFO*}{Eto!aaHpO59>6^%kDbMJ4vED?L3X#kjOtK zhr=9@^gJlQfO;f;hHMQsvSWt1RqBbCDzs~ zb+*;LJ=VB8aLo(Z+1bsz-fFA-oBdFR|N8H8Re`WZp!i@k2729Bl&QYk!U80o38D7x zm`@zs_`n=@zXz@_KW$Br&n)|<#cSMcj!)`Y&5cpYxbohIkgV{5yPf{8UIMLe6)kHh zq9S>zC<_`my9y;;KScKX`wNCgs&d@2$G8M6Gt4U)xu2=8BC{kh@yf);S+kZgVcZkz zs+UF>g}Q#Ze2?I|o4K9He@gror7iNjag%S}W$Yye;}tKMR0V%CKB&*S?M>Rmf(};o zKrRy?SI2}v>)WvfR|ETu>p>0f`B+EmT%lbu3xhZCFpU)j94{G?>BBEF?p$jMW zdg$dh($aR}EHh{=+0`eq7~nX+LA+09sIimO<3wIF4-4x#G0yFBAz?A(iZAVV+d`8| zd-S}9Yj{PT8rcI?HJV@;Z4Fs_tD$w zVot{A_d^45?{V`Nb#*k@nwW`;lCRnS->~;67uL@fP0-&n=q-Q>u+c{9GS_KxnSe1c zrwQ>%1J{LZMr|8#t`39S5J&qf=$v^%$PVak9e%5IbS3p@iJ@?0E~bsLIMvuZ5fZ!@ zGY?l#khSXX=eTKZyUXGXM-z1B-ytFJONBmY+wF~78${q6?@ZpUE2Q~B6lLx^_Pf{w z?jYX|i%QG|36Q#Jrc7U(n)dQicgDvc_XzXbo!W!gSiCgr^mEcyhcR{?Dsd0^);qt{KlG?HF}}8UMy}))dq&esE6y=#ouY-a>O{X3nnB z_Vwc6a+E<*={>mVFK%uF=LMZt=*4QEy42v?m&YE#e=p~_^ryD?26o=D(UeFESH7E* zlo^3;*lewzs_?6mv~OQ*ROtgrs2AeS5l|?~LD<+ek?#C(8J|n4-fl*LLn=Y#yy+2^ zw4J;ObHVNdrDx3v4p$}XCjSO23tnDim!E@K#*Bc#v1zU}HPxCDE>U@K%CY|v@mVCl z-VO}?5E!i#A@x)|Ugzw)_J*wXfnn2*m{%4q3rrF(aE1QVHfjV!^P__H*!A`;-cl9@ zna-!o{o8Q;3;uBT*Oi^3Q4Va2(q#CYLfMOZU~D(wmq`-z23=6SLe68R8#1~-IKnKy zyB&3`5h1dZK)+ZqIzT>BHxtP^`q80_2^6j-Cui4ZC&}DQ1A`cx z*2_$8sEa)!!YvMV`;xC_z^ksiMz9LBoaY65IJ5)B6B?l&Hv3y<=B+iHcY@q8(yq+W zVqr`e0DwAPW_WX{w4xvtn@a3E@!F<*0mXXDo@(8F4aC*T$5G|ZByp|JR=v9&Je?`) z1y$5i8ZN9G4pQ9YzV2odMP|2lrok;*$_u^AYQ3M!GUT^ot6G-~3=Dr|@mdf4pz;#P zw@R^DM`h%M!s*wSYFfF$m|Z zeWNXCRV*Du#w*U`(hzp3y;#!x(oDZLR9~6n@>@(E4uN?*n_5e;N&79AJT!C&@Qh)o z+Bv!VlGs-i83ahvqsC=xTKjvR`qkzr{y0-hFqBxRLavDEghEH6^_SLJ3*t{1F}9Y% z6?l29;il2L+?WDb0Ng4n^iWye>4NthTejcQ7OVAvz)E}44I8R|mrRB9H&LJr99oN= zndOS7fJEoGoh6n2u)@MCoaAZMV3Zyrh_qeXqn|`%=pN-)(uN2r(w%QiimZNvtBRd9 zRUEYr-2_($(qwqVMfmJHR_nZoH*KI9K{ae--f69QML=x0TF5+Rj@2XNgZG>F!&>7VPbVK&DFl7@T0YxN;&sZqC($x!@Cx z;K|+95?zX!m|$JAeOaJ15ZJ6ca_$gtGte#6=degN&r9qeEaE?2$nIV|w!$tVU4Mt~ zSi~^zZWCngsME_Yq)S;vKKW_96uywZ7G=k15Qvt%C3EEwO!=yd**iDbeGNJIq9UvG zp+fqU6E664d|{JYW7sO-?UxHnsRG=Ynv0G8QyNtrfUlvwxNn|ea|+i zou*^Wxwd&~#KD)0c!d-jOUc`xPZCdL zq-0!ZV2XKSQ$7-40n-aiuvGT(RRRJsY6q7BeCAf{5x3$5tw^WE-Z6&wtkE&=*6I8>wje*2#Xlgdd}J zFi5+RcE`L(G;N*bAg>W7k8sdo*2j!f_`J`Ocd7aq-r`c;o8i7uA@qVOl2z#&`}}(` zgI*g}Y9789+>0JQPCs%dyE2}9#zv8F)eFp+SB;@dF^D}6ea?1#qVQ|OIpKM6aK{$m zPOXzgQE~DzjuFGBcE9x#N@!{%tNUsdW7RZ@Ak||tM#T_U!B|3R$@?U5gd@FMY#??| zjB;}o|LRQLluN}LB!F-+>r>(?C&ABCIrV;WmDAHaS(K|;wubW%6o&}TQ#!R!86n8A zKP?7jnWKao%skscm2m$m@6S`WTJr4^z`RXOL8`@_q;!CQ0hhN+s!~-0)^|DK$2&r*Z&Q;34#1TmTc7G~@XrA+vb1 z76HQ<=8ePH84vWr@8~rY6DNSFS?c+mKF|Bbz9?r`JgK8< za)%ZQ&-1sf5|dA{{%%yFTr_Mp(UDtdc@?OoOMCVGV6Zb#fiNh85jdak`MR{$_*^E< zjw9z*wX7JMBYJzraDWe7xki5hk6 zJ0>tQ-hEjB?hdTySZFmp$q*n@w@a^%54<^0!tHnr1lHy-B)2yp<-vyvd$B1K3ocZz zfV#+l@h-dUuvo2&nfcb%9lLd#m#^HKev7S{unmsBv0mA<-PU&z5#=-0>1E}sSVdNb z^VF;9cTyMD?g}TC{)jd2ODr6HD-HhWcJgZ`Ym+6VbUqu_sBK}svX6sE&-!d8uit7U z3%1-nK)K?%2Jx)4uCc9n1@_hmyso@j{?nM-Q%T4&@I+wMTGZ?doUk*PHwkz^ZH|=8 zs4;8`5}cZnoC*R3><(L@N)%ne%MDjlXD4B^yxvIB@~BARy4ifHt+?aflsy4gzCL<3 z{bk+!3j2brn&v(lbeMBBVLKh`=jpYa{=X{NMK54OETp9H(&+==_a}`osnz25Kl!OR6<9 zU%CgRY!n`;xUXo&m%8%Zp0#p6O^3<&+%|v(&Upclc7?AbM#(ckar&8HIzBj-wS11L zFRl5vA!E|tssMlzTpB7p$}3(PXHk01OLpOu@<)slZx=Bod-m7gg?1Imn+qy(4-Vry zZss)~S)FLovhfVr6X*JvnaIeR zY|$(gJcUSu;VGSx;w|dD=g`1q@VA@Fp-)l!GX06MXN2}W8DjJX4A$cG zUvnu}AdZ=`;4sbR#VfHa5)8Fq34ltSdtA%tm)T@h{864zSd*Z^@MUby5p3q|fJ7oC z!CQ|*G2I_s=IWv`!nxY1@I^XVyWG7}ed`}!o8>6qSblRdk+Fvyj7`lJkBda-ohHrc zO3uMegG0ngpT00^0ieT~sg;tf?fHXWDF?`APhyvfLY8y{t=|!4xs*G15tl{hksPbp zkOBaGX=Ry1aBE2V{8k=>kfF~)tSy-s4(8tPf8%ZrexuH$Fj4iQ`L8I#cNNQDoPTe)BPD)0KPar%&ZE0yRefZuQQ zKF!cGir@L`r|boJ<%P#gtKP>EzahXJ8K)p0zqX#u;hm+7?^r!~n3Fc}pv@MkP_mlh zmHXoNGo~7Q)aIx$GqB(rPf}1o%*o$?aEr?LQ#W7fT6>uP&cnEFE#X(h2j6ZC!3-K;B@Od)w?G}M4C1X>PnMikvNipT zTu={ra|(5?pKG3~U^}`@XJ?~ML~%coF5?j-NilVkx_o);XwHuL6341{m^^E5)^$D2 zr^HcY>^Nz&*0JVA@|-UOS3EdLy8jfYwn^od#`l7#`Q|w-0oG5F=UgZaW+q+|&AUIL z$B@4wwR~@oWyRLH+WP5g-VgRKm)DwpW75r^6_-Nl^VoHNdDI0;2VI|d&M{s4s9oM> zdUdY>e5F?noXfbC1zVSmt*~tD1!mpm{Q{oL_MxsO zDR+0byj3Da&YOjEb)P+CVri~)41Xb?N~=$I6^B@H+6$$L1NU>~4;(^UgkwA~s#jMY z;gO#a>v8_n&+)@a6m}n}zJKR&=Whr+46yo0G5?eHDntF<*tJ*162s8=FR&6o8zFSG zVeFohT1%3s;T6ZZp;F?pr=407+$fv#@G%dLX!f`Vzp-}UnxAVnxrq#LfdslrWoj1C z%|k3O_8_$8Xg*f%8=BjHC%~rjsE@lM4cWDS#u-E8?17}0a+P@V5$)*Cw^f%)NgI6Y z4DEQwxf@5c_u9!^b}rcB?w#tSP3eMlU1P_43&FGv?@GJ1pzfIk(vu3I>0paee%UsT z{Tc6ZeKQT{>ArWylz|QRtCA8^JYprfA(i4@TAKxOUZaWy^yr3NZi4aM>brXW@>AXF zNwR|<+o$EsVncDAJl-E873QcDA3ybAOt$bwdc1{tgFgCMqE%`3 z!b6DHUE)D?h|Ns=ahIvRZr?H&ilqE3v+COdXlRK6$UbW^WvAAl9#`+T1O#Zd)N}Z~ zKgAl48W@zB`^X50dQiCiqc?(ypL>U;%qGeOQA>>#}4dZ9(f zQ2b7$Jz{m2hq+XpOY$Ext^Fw4^4sXMV)-NdQ}xk01=sK>gIXWP>0u@kKn4bHXqXiD z`TP99#-P#Vl*~D2jryAac^J<8COOKfd0(?9$T^ z*ffuJb?bfv%z3j){WPal4xEzM-ap}&=T(0}=+*fMIA07v;CXZA_wAn$n0q%Xa-br7 z3<;gbHZGYRr#oH(kRFZ-9eo>)W_+$yNdk=9Aw28oh9-7LOHy;17`hPGrGnRcjU=w0 zkuzeJ%5raJAy(JhPqiF{6OOKY5_R8=Iu)Cqraz#yV z_W4vYVj6ZJN1)J6+?izO{p15nLhs&LAsHgnqH+>*NwwzPzJujWI&ut*`4B3?X{ocW zT>MKGrL8lG&3uI}wA4B;M4T`*kw#M<3|+N^Jn%{9SYwmnbHAH|Cc+zj?8^fxWA}>q z$oOl%KTDY`QLSw(g^U_obSb3?mu^jq5$!d6JF{EcQ@$?rS3dMv%m0EBjp&){$`?VO zBiijs=X=WtV$+4>+7jruA%V`~3=E;xd%^thAUU{EEpEENe*-lC3}0JeXt9w!tv|~q zXiXPYS~Z!Npwn5YdA7{x+&2gB`Z}ub4%geCrq`#j0T z_G|HraK9tV@#3gy6A{1uOcyUeRS_b_`JMtFgMNnZg^8K6-A-80J~y2xSj8?>-l}Rn z9SYOGn)OtS zd&gLk@`I6luI@hDmQP97+(MHUIg70l5Hjb|x&_A{0N!9&aNNP?Rz*0~!#}gDIyAGd zTsyUj?uovb(RZ_e%8^>~c4(243UbwIGYo}KqqWh=Mhg9jve5@k~%H;l@NWEZ4J zCvI-rVN<{Fh$s{CU27zhQ^2cB6$2>fypuTWlXh#;2*aS+i0-t_5~n4d65T4Otmnz| zpuVg=ElN=eC7KKCm#Lk7D)?u!SN&}2i0Tu=>m|N3p5dHXUzkqunBduvb*)H(wQcsU zn`PaWb-DenF<$kWblsKOz^OE~k9d85u-BB}7Rk*=tFIESl4FLJJs~>OHB|9Jl4Du} z;?W}Ox`Qp5tG9ASyl0qOa15;xW1mY(9;BWd&#gGRKMpKT4#40>5olNc=wzmS{LUsEsLd1P z{141X3_E>=SL`89yTX}sEk-BUt(PLE?L1Yc@J-c)>x#4h-kzu}x}lxKFooLX$XT(M zrva}6pJM%74jN9{b%)aKVAbtf$432GmnZKAjTlej{o%QV3)5U??M z^|T)g>nUpgPs)Z&8lP8q^}4#Ho5OibW23)&wS2m#X$;->mg*b-wTIaoU2pphzd<6| z)ODyA{5FZmMa6&Wq-}0_e;_bKo&vcBE-A$DgQ?4%Q7fz-JqL8s!zD zs3$(f*~++ljO;m>ts3V-wzDwVX5@Di7f5eA&G=bjD1Yqp8QvDPI#<>Eb@k7$=sxEp+b1B^TyA%kNd^%^& z(vL1j&uOy&hrJxCyjhjN9d_BqoV8nCK548(S39;JFI9YP^83u}C2wbEmrZ}TL}6TV z_*8E?+`>;e-XF+fgk5gVL_5gkIQN?fKx)WCn`%tuDiq@Fdm!xG8G|kbVgS$gi~)7d zhi2sA9^Q`$O)N{tH}okm#Bzb)*F)^f&icWtl%A%*m{fkgxVvFjB*y@=5a_f5ecT z7e0cQPm1d5zlbzFcdA;{;uH>!s%uypEX%mLFk0aPdX!a;x-Q~E*;yvtY;w2OvMw;n zCeDYkT42N88fM=RIkhvLUCI}>@kG!SbOy;S7cVczR&jt`|Ms(1qN41Q2y*(jY3{yh zv(th@f1{)O@NpK5##eM22Q_Hy@J~FN^vwjN+5wmV2!(=YP4o^GqYtomG>z;fE7KvD z>LwUQnM1I|M{L_qIUOzw_CAOFK7drJgxIkrE8xX8jwMgti_o+Am)d6Fic=)^T2b?@ zfa@wj>-(vmPW9~L2|*3B$aM#^dZ(2=O+4fG(^0h9!2(|A{T&CA)9Y4i_Cro|FiA>E zhNhuiNTbqvT)%eg^_mmC>qyo;-n$$TNF1iV6-BGE+5Z#HCt_W>v0|mIKdb3vpJ~g5 zLhC!@Oz_i9tRRvjcmCl|kvZ0pCg+nUaD2GR)eQaRZcbX?9HUH;b3aYVak;oY~j zc~-2?o#2~Ix!}t;+DCo5SF2~0RPT7bT9`b?ON_$|qwdbKRcq|FD|K-4mh)P@?m#3b zSA5+~oha88QE7NxrFx~Gymbwh4FvZro$6CoF&vrTX}DGjN)F;md<>>PCv32oDzaBI zM(_D#YdVzhsdQ_o3wk5#bkVYdY%yF0fncyr#q7)48g)Un1x+G==B#&@`PHvc2);`O z>(mU>GjPYoY1{j9ua0|s+A&VqA6?8|q+MI;2RnJkw&jUKrT&B)?3L<&6s$<8*11*J zRPYTJ+;SRv(2iZIHdA(`Uz}!Dzsjr*5kEZ)OeVLUwtqqz<&5T`eIMB28-EezbH*A$w0AzKzmU!d)c@RSP-L1V zN51!M?wc(u^JQeDxNPNC2(anwiLvDVpvyL6fnwQ7%H8<~Khu}MO}rlit+QRLr7^+C zu$cTQgW|QlZ4M8nA7$Qs+xR#NmaUkmDCv6mB%cvr-Ov663S+bE(3}7?HEPn+ zf?INV?o`Et2f6EWk(-3=?O-p^(jp(VKJ`Rh3^{}E{KV~~LA7#lp?A%xmI=@UU-Q-& zy$Oul^5BCo$s*oa1~!-%$4popmlnA-$_IiZy<6x9JX>N$oe?7~NKVLc{M{rGK#qr? zw;PgK*Q`2mQ0Zqner~}iw{@_A0vUeG;>iv(+A`}C=eR_}t5q$zrS!#X5fXk^Roub2Xs2R?TdM>q^=ANhd)z@xU{%L_tL5xDm)F zeAmJ0wo8&63(L+v+@CWT!_{Ac8h={jZp(jbenp5Lm7<1Fz71f(VzV`R$kXjY-dB;9D(?h;Om^`iHqo8 zypGk16b;pIUWf&<))PuGO%wbo%gdZhJ6P_LC&tV|h^y`F?89FbiQcsB-6U|DVW4j} zR$wA`=t@lRGYiE&qQ@2!*eeFeudIudDM*{iw)O^Ieaj@v?s@u|IcB98y1n1tFg6q9 z7oGrjtAOrXI~WUcZG$GJ4r@}sO1zUBPjw=Ts2sB9gIcTd8a$$i3@lzCzJ6u_I;x{5 zB#btLm25yWa^j|T3-6Q3ybe1-a>Vj0l^af?G_NdluPth!Cj9OTz&!i#lCr87T?P2i z-|c*Wk~}liTWPPjq_kIDvY!+ViM5jo$89!foT|A$F&QXRgDf*;<9%<-!88 zFg`(eLNKu5dLi}R0?Ql`4g_QDZ*uk9JE_%waT%y#2!s0+;s&R1UI@)Kb7WYdsDU2ae z`MgW15r36A-r+JP4wCrj6GG5@Za~@D*mR1WfuT@O6Iu;WeRN5?rV*_D5T!ksE$Q~E zWH_W+I~!~@L1bMvO0Hgimq9aYgneQjGk0d-+b`?<*7xifLPp3bpLBB`3_Em`DTije6=w$Fk_^?-|YEusH=)f~W>>CSAn&rUD_y7k=-SNzDh z4&@GF|5l@evc0;)6|dLI<^sT5TYH;0=`E$ipaoG)HSbVgI4|{+2Q8>2+Mpv$vP!&X zZ-)AFD>$6f=It5aEX5 zR`KOjX&TU@1R|r%JesrYaVyz;Gk;+o%*myJ5pDth6U^C~?eu1xA`D+*%-VmK5rP33 z&i>I!f}sZAs~tHjXIRZhykv7mVr)T++TZru1|p@y>{8+M9kbv6&=azUQICKnD(>%{gV^{qN8;HE%< z+fLIp22isqzSvTnc?W9@Y^s+SMMBKKLy)Z< z#e&pr`gisyn1B}rERFW5MF{crLzuF%+Nw#H+m58V z-v1j~s`=kQSM7w9qUebr74zy5qroS1maG581;8==gkdgSpO&2~pm?L~7K2ODf_OVj za>4$IMF(=I$89z{qRU47n$oq$N>^kRt#TE(WBkS#4p!3K4sh>}1V8D^rPk0x@AUl{ z(8iVHFm0Z~?1NOx+R7%@spI&)nxx4zBQby_7T;hXmi7r36BF`v_>wTtPp1X%HHvFkh9 zv93pnBL*Lfmvk5>r|yMI@S9B;Bpc4H&D>rbpS^~<-WmqHlGlCk+2$*4CV9^Iw_*DL z%dYC+YLm^lCY&N_*-As0?;R{SU$-1W?IJ51otht!~>-m$EPN(lkoT`#h)C_9i11dnNv_r zWS!dDV^S8b16Mb+h)qSK@)3{kDXg5nP1pE4$_&=OPmt$R?0u(eT!UIm=-Qqs!18H^ zTE1yA_q@STk|rjK-$h>XFKufxb!)THYctgIMrqP{SJzKhESgsX2?@cemFv|RY<11j7_ZH?=%}xWRYLa38QTFyN68r+m zoI-7Dg|z5W=Z#hH?{d45A*CXgpP@P3%{)(ryd7GiDs|vO7Xs1%GC8y+@1)=SaN}2be{Y|M?ZNeVuClFVup!a5xi0DN=XW z)_Ro?wK;pHaA#N@f`Ws7;>kQnCJ=i1%S#dQ&Y@IIw6!EaRTSO)YZN|7!aK7h2uS8A zo*QP4SBing`6XLa)sI_Qs&~Qw194ydYM29C*r?*pBhFLLmpga?!Y}!Mmc6$bPsnJ5 z;JrLlsgW5%nDaid9T#^jk67K$jTj8btxLV^%)?0#mnZz?*!3v%&GB#GH~Z`w)1FZ|DfYmimqGPQh+^RUL6oZr>fC6wf?sezIsx z_`|M9Z>Qu;()k&pL)-NW=c)M@c?P?E+#8%NJ zu~|@RsG6kcnU|%QlsBX90bzwinQm~amGPbmx_8h4gCidlbcF7dQo5o zx04c)BY#l43;BCF;$1$QLidN~R^aV~{drBwfbW6plH$=^v+tT8?eB-}ibpdHx-PsU zt^cdHua1gq`PSs#BqRh9ED6DbyIY`<1W0fQE{(gpYY5hOaA_oXkcQyWxH~}`Xx!ah z=aBp6H*dXpGwZ!IYt3J^piiGuRi|t3{q6nLSB?XX2Ln$f-zUG7tFw2>-2I$=r9(-6 zb>ekgihh)hRX=sRvv++xtI_7;Z+>q`SmHgmQ^i>kNFA_q_-##5^|M09TLA=x6@sGH zdBU8%-#chYdX*dn#Rg##879K;!kp8)$sqgiqIq0yM}|=JkcpR9L|xe!919WmCRa`W zGK<^=DNN0_Gj;PuP_Jou5T!LXUovZ2A83@=IJST(h-9$ji@iEAh0o!Y5~UY6{`$eU z;1L?D`_1d2ki>HmOlSTtXC#=i*E`v7T8G=S*~8LwJ>%O`Li!eIb0hx#TAluVVATZu zlWa_0>+lKweiQ%9OoFGyplroq?UbiA_r4>mXqX}Ctx2)fU)G~UGX2UP?A5$e{Yxjg zsS0F)7K^7Xz*M!lfX+50%i-;=JHoU?&{43h9IN-1r0cPm3OPLk7Q^hs;St)9{nkYDp{?d-RRksnk6g9Ff^^YmYUPt1IB^>fwl3STj<<&MWls9H zB(_=x*j`mj{PuL!i@)WU=1SU5@$_8`$s=x?t&Xi(jd8H4JgkH2VNnt9uuW*eOl}PQ z2GvkX5X<9w!SRxqWi1DwuJJl63t!^?v<0@?n@X!*-kw}=5}sx8R%S9FSPL!)8)VA0 z?ujGy-vU!4)WwK~jT)U@OJX{GqC>h##VDS>j+zvb^^b7sP#*kJr4Xxg7RI%! zziqqh1XHE4h*wj#MpmUzNX}Vomef;mdyIy;zBAFLPo=;fz=dvaY=6#l|D3r+#bZ?NKoc!Im#hg)zxNuL~ozo<$B-m9EQG z9n!H2dd+j{5xPy6bX6Y~aYoJ?xi*2JH3R75@p(DMxl+VJD9xnLhG1oiB|^-&FB~yc zQso^GCMmP&Qx(B*AGhDoEK9xrwmbCe$D7NcHF6L=h(d=qy^9=1?;i<~-p99u&{Z{hd$CWZIq zbYEOjCzPj#yi-dN`J|T~zYcps#njy4ID1U^18~?NFV)&`zU=B=6h(qT0|7I;s}<|W z%~{Rm2i{e}shuiUmE?UVi~FItsM>nT2SVa?c|a78J3VO@=e=n3}Z*t|t) z=)F_ST6D|e6CT|Q>Sm0+++Vm|Aj_am#PUk})o#^mer!8X2nCn7Ozv2BX+{D4YMZ1%YUNsF^;lE-r<0ISE^(@b4t51teFMj_X|5?nT*+@Y7Q zvq@&aj2)F>A7eGEKph8zl8ih>a#Y3r5>=`ILYVCXsj#TW zOwKAgWsuIVD}xLgFK|zhT@K60j!EI!WEU<6P@kx8&Y1Wz#h$?$IS)>oIQ-!Dnk^rqdKL?=A3rcB?@U21n&8!I^g zZ-UAMDeD`Z61k9 z3@eqQUi|*m9KP)RHjt5at_Z%!sYWNA1Ak{nG=-*}hj({{Ije!k1L^Zx1=^?4`>DA%j zQ?%YU_HG0V_#-g}Z7UK+)=W}v-xMRqZdnb?(#MSkT6XXO5^*`OqRmWSjK?EY7;(>T z=ynf$Foq5Th%sLc`QABPms1-rX@Z~@CW^S4{jWwDd|a;-T3m+GM}Vs#KQp*0Or?@; zcSS(cc3gioTjU0wh=0rhjv?(H@>=dXXY6VfA&nM?v3WDA&$ z+b~zXRB-}Gwx6d(mA@}6CW2#OOJN99ixKbzXRmOEvhnqgKcR4<2}0~igQ+@7s(KKR z=j+~UFOQj34S^`h$9AM{$8ddh(eE~JAf1p(|L0d+=B|jUF7xM!9}wLwL85LB;)_zF z8U&029O1ObVQroITNpr970>i6JeCP}hS?woIdb@=c7zuZOt)gH?>S+(T~rvJ9rB@w z+Ru=^UP=G1+o;G94CzMTTbza8tVtz0*@zcvF|8emlI^B9`PZwCDaoYi;#mlmyTv=; zP?5~OAm!&BA;V2-7nz?{<$qhd$?BDoYI%Kr;BlXvTXmwUEpb~nda#+c^GLz<*rlw3 z?piHh<9gr+i==2ECcjx_VfdwSCdB!$)%NzaRaFC46y@HuKC&hy2C~vPIW@6Jp_K?B zKwenC9|gX%_3Trg{H{Wh6O48`GFQ(zu-R%!r=g}l?^+i+Ie=nk6@S(s z6IN6OKWs6Eti+~fi=B6l%gTG+b|r8xGTNb+aIbC`Uw}r~Y5p|7y5c|$jbrON#nG3a00c$}e z5J>?sW^60}omzOCIlI!`fn!7^exH4<0X#vRdd<69<<{V!8qfHZdwhz9LCt0i_(tiX z(FkdOwl*Z^G6RW`IPtbRx0Q4NXUE_cawn$VErxW8mq_rRz-|o$FE`G_r4pR)t5j+@ zELdLnT!~~SKq!~xZ9W(8n|*@rO&>9GHmNqQ_#=N`7S7zTCV|aibb2;v-gQ}CYYkZ7 zQWFWSv^i(%74xwLZ3A!ujLRGJdn{6lQ1>wT+^FKOH56df8bEwv(KGCSzH(4X05@cJ z6&jj6TyEA>;m^OrW5DLR5u<(mO_Aq}7^=4nIFHhMjQz_PSk+8b7TZBKRW;=nP_W#45ZhuQtA{HQaU29NLx3!}FMs1XsRDaedIHOljp) z#N%K{?9(<-gqWfjQBARYfLWZt2o7c8=*rUR8u-e=fF`=sn2W~cu}i9atEi(?+_~X+ z?I#ltf8!bS^+5wv>wvA2pY%~f>8}c;WuJ=NN@yklyaOBZ{5Boi9sOGf+2UUK?g)3EM6Ni1|V>w@6h#l-z`-dHc`D1mT z{8EVATs@n{>Bm<#7VdSmbQ2tX+MKuMJVx=kZUVWOWpB44cW%iRc7^o;6$V#Dz3fXS zgtLG`Y}bHYN6h_cQ~<pRyRj5ytak`E55+AigdeUCNUInUifF)>V zq$Q4f@vG2sbUu@+icK6~e8F2<8?HmWNmEPHA;{V592kD}%} zJ87LYl5X3R_XOu>jPoSrF;F{}R(RE#O@eDEKKXM;2ARCJ^X>(D-6xu%|I7pcV)@B3 z$3kezEhlh2;{tN`T!4*Qj{VDg)bay}u2;3A+XB?pQbm)x$c-OqLCMmNT{QQKxLfAz z=Bk9V%!=a^{Z%Eq&~jr_nx7RHNi#WtV%520##m8BMDSvh;(k+Fo)RZ~9-C4`!rMJ9 zRreG8^USlZJ>2!FWO=xTBU~EJtsY7{H+-t#zyXL|G?RZj3KI%Z)jnL|NnUr7#z~Mx z%{JAD1Kk>=iI3Xc@wpzP6ywOVs<^oRa*k0drOS#I-wWm93DCF-&eeGX@; zDJAB)MP2P4bIKJihGJCriHlZt`8ntuuEcq*uyb2h<3^Qms9cY}YlNZvO4Lg;R>NSG zJI)LMI{apTs4X8Yu>s5;zdE?Tj~~BkKgWbG>evK6zT*!Ye2~=iH+JR7R^dkz!;KC; z^iE^zlksgD<}WgMkR$~n3iMSYRem?F<6jYf)ER|27=Ki4M=3U9lOGjvl3tbHred6N zao@?JdTb1xU8;3G=yNQbf1BdC`|+|ekP`R!50c$rW*h8c9@L4f-*b`%t^hbndV0G; zyfe6As&z~%qZW4oBJYy{zf9Ed^;6b^xJU;6oTnIzKh!I#%t%;%&H_L(PTRzoN;8)a zody^*XWz5X=64hKx!r-D-kC<*(=tcS7Y!2HTlIffnA(DU3-4=p>;XmqT<)WLCFDae ziR9ITO)%zLVQvesjC=rn66TlCWRAW1Z1P^d2-rn^$ zi`1@V<9xvT>p`!hdH)^G)D>b8WN>f45}bCb;DpA~sK2JT)zDIy6A}M>kqRt6W4Tqb z$x-cT)aPaJx3%RxkKcN^C7uOSQc0y=OXsSIP(pyHda+Rcm(tRmkJ2rl&~bIsjDe{R zSiYfL-a$mH32bsb39edxq`V&cM9w(u*vp|3x#8--C*zG(`-;k)e+iv(-9_wfajPv# zI{{`^NcVKS|A0U2L0W>5h|I&$w7lDlvG1i)3cj^=ts$7Z{CftkL#-7OI%aYRRej}- z*x8Frsmrm^Y=Pu{CQ5nT zcAD1)K>7Ak(i*F|7oF0Q|7456@>ori_?Wo7p-giy?gTf<1rMwOn{dr7SsWABlCiB> z!=CjRfyTTvl_PKHYALpS*?K}=8h2ZUPq`G$mGk55Dx0EO4M)}8@0!f7o&3QhG{FXl zcoSD4Y2~mDRd8UvY6VKvsF8CJxs2!4_-t;e!uKSCp_@tm-4?7*nd3gh3RNblw0gmi zt3Zav(8g+-?XMieXSa$h!PYW|r{$H`2}*ov_s_6HQnxb8cH_5-)r>q=qCiaPG~^05 zeioR8d*d^y;DSGakd1PkNxrYR&Gns`fQe&_`=;Hu?k{Iiu*TNdOB{e@hjaH-@+l7ud7VuBS;g1f3hffsqN8yPi`EvoFjkCj5%@Dxh5Q1Akb&Y^kV;_ zv4Z!OVw{Hj(GX7-KYp<}(Pn>qgm>yx{Vc6hAbn&c238E%+%0lxpxTL?JVd8~1TTb% zA@}hfXr25-&;2+7e{QKgheISmSTxr2MC#X?WPK5T)@5Iq*3|S=mmG_eT zGp7-SLdNN{z2}8mx0lP4kD#TVh47#v31-ZPDq>Xe6&W z5r)PS2+e)hj^SE08U^$vTl$Ne*PNi5Qf_AUhXKw#dFUO+2}$jiFHcr%=CYqShQ%hq^yJX=dGs5&$U1N%a zFxFjMuc&x$d-#)Ji0j>`f=CU=NWM&UjtuQe_dGG_{ReiEqSQXM=Q5*7%Y;P*y?l}F z7%bnCAFRYY;7xY3QpN$z#SO|=$mCv{u*VKzetBu@IvHOSa`1-UWne{p7NvZhsA?y| zlo~Rb0hY>UKkg%%3*D=M8Z0kAJ$_C~zjsS;jC)CV%`9WOucYevsfTk@Cp9BV-TB7@ zHbsay|ZGuW3X(fXXz7QFPNGozfa}Sd+ z18IE4BdF8SM_DeuWK_*as!5GTc(sOyi_i>`l3Je8*$2BFbvvfp%jISA#{*mV3gVT5 zMS+@g1JbSxpZI3Q;ig%F$;yuqX*?|ejtiRN`14j5&c72(XaDqGzv|9#ZaARuFyah`zuE(M z_gp&fzWXpi7_phc*x$&toc@h+>tT0>2@7^>$H7|a7(Du!o%|}jl9+;&F$ad3NjXDk z-RxMW3GZ8LOtc}2OhFd-wG0r+SYCrCaWfxec03OXXVOS4#TXV`yEE&_hz`-TrxU|>_ z&mh}RYLOBh)Q>?Hr>0xO^TUTcSv^0+joE1ygNUebx0zo%)Qzi0lFcnDwnk4K&rnWC zTL-T;aAd3@ucmWE+lzW5c(`BAL`HK-o$Sdvgr^(4kwXMA$Wbe?$9l!e-!E4921Qw> z_=n=GT{Mxu#mK~aLnbqdii&!7x{tr{9Pp8c`#$*n{rxMKcw&8HU_imNZ~gvPv->bfIKoRk)1!*V}^tSnGE;`|v(GpQ=2 z%KfZv=*^CAN+eNUZ|m!zxPy&HJH;glmVL&*mH#*e6d$Fs5i&yhyJ-227+ zIy8HifoD}+!y-P0Kg|FSsfHERJu%y01b=#mpL8Nx)`ifif}i`P>-QE`5;@R{1XFFvQyap{we@EaN+xi&C{@X%^y)SbCbU1vT@VEbpTpTRcc z1vjHY8|S(G%{Wwwc|76)F`)}T(%n6qmy|lS0X+VD#~s1ZcwQmwO(04BqbCgD$})Sg zHUgFA)6hR5A$qep;0nZt{KaBvq7*;&UNW6V*Dt6WfQ<~ihu*wV)5)%#KiD+q_5_V! zC!M$N(7SNfJn6AEn~Yg2&H8bP`JC&)Got62R&F#AS-FvqhrQgU=40vl+gb57o)yVF z?JFyOy7b+UpkVvw{gq%#QqbGXl`IE29_{sWm~`3^op&nHe)6_UE{qlTiSX;EpPyT> z&#t3xk>Fx;5nb$mRt?-o&k_&zXnKjzfy_n)OYcmdnmJj^|6AC?AUQP%PS#9Wyq1RX zvnr^?c-i7}ENeqzY4mJjJoD4Vmo7aW4p30u!XM5E5Y*~%(wv}AgEKJS4Ut}-qYjuf zm|cpBUUdZKIn|Aw#c`>QGFQFi(MGsCl^F*suU1+0@n)_x#NYLT^~-r0AT*in<4vdI z{+4)6W#Ta}ZSv$ji}7O4JxjIWrCYeg)dFKTtc?Z!G6HuSGo#_VmY+V}=$r6MuP|1* zR!?iL4Iev|tnJMx+{y!Y_b40@kb2=D-5+lKk&;|yzaEBX6r9A*ydp&YPZ0ZqzZ`Jp zge>$B+B|ET`Rn#Xjz-@%h4lLF)!_>8$>hbK2LQ)x6j`vS0`?$6uBJLmNLwI!wO5?mje95SbUdK&2*yFl@RoA zCxn?+-0cnm-y`)Zs_7|Vdi^hN_qDds*flWPy17H6ND=K1i>7u|YC%F}kN7DKg1JL4 zGlwg&0y)vnG#O2F{O$85hf`!2eaw;-QDc6Cv_3Vtx>+4jEgg;B>pvoK%{K~=Lfdj* zaMq_Mk5VZFaS9|S56!+lwGILsI?ta~ILQjmo6TJZz!(cSBN9G3=-)a62R~%|6rGlr z{;P>v2*FQrASy}@Y-KhxKYk)ZD^ub^cw8RvdheujJP?G}nwq6I{H3<1$~q}=KM@Bt z7uokg^+F*QHfs%De-#oB-mZd7(3#M@R-4gWT5<}9tOO0qF40T9e=Zu~NG&uOt*uDD zWW6cS?%=fc0ba0)Y^#cio6~`4{!plerMVk)_n#f~(@oM}%}<$?0m< z4)x@*3=G^q<;F;?&We*a50;1%;%wumc6A}*^sEVX?#HlAWN$yNJ?$`lGJw2spYtBM z40+yDvFzPaZ@zNp zT)xP4V_HW-;vj?d+i&-O#aUr<1ivEp6;Db0>O}57P9F4qWbBh@naR0-hPe&^S(L?Z zi2|axFhI$*xX}%N!A$CG{Mq$#0Ff}j&VIe@jQ1kfAZ&X9>(PdrIn1@sU$OIc5Y2ws z7o`)5V;3nXNlziQFJWIXThheQs)Nx}xP7kx;Cy^0 zMRVyJr!ioXv-C)ijcEF-iQwIYkpb<+4To2+Kx)X*WDiVg$wMJ~b>BBW$(aRT3&(iq zpD{ck<6|PBbKN3)9S=To%S6*-D{t2zdogj(X*p}iOnwVghl3<6J=3AvzZttEvo&`W z1Zm$K5eu)nH?H>oLP(5vSYBk*?@MO>HqdGrW$3qJd<~vR4&3q~s8UI^r_eaYr;^^` zL>_u}NS=+Y)_h^iS(|wm*{fB7<9>4!Et2G2 z@XzP)vCJWN46i7~S*0rFe$Pe@p1Q>2>d$yxjm=ALj}Bbw)XQ0rTn* z9x?%T{wLX7aT_SSQ~4*J8ycX$?bHeS)eIE2ni9+n4aJCmW~!Id%@B3 zF@arx1Csr9#iXV$D_u4>zF#_Ih)7WiUo%({1>Twfig$K=TQt-TNww}q?gmOFH6KRPWVP^ezXORnz~Cj)6Erz9 zOlOE8>!O)-)Lm-ZR9SGb>Bv@>UaU@a7Y3(ZEL<|%yNzmgq}X~TQ>W&Pbgf-Xkv@7# ziX-2S*K0YYJDY;Xd%-%h!n3bsKxdI)7S5%kc&0Nkwywiqh|dtOF!V^kC21=4HSf64 zBCqxgm{}WC{Mh(?9KH_7Jwmiv$)Y9Ns-u4So8axHql_R4;CDqi8%$bt!wr`yW%h$3 z?h|$Gtr+>xfLyJ2zE^1>*>^Olax3_=5M&sd7UT z!^#u0AWPdMw=QxCBjqhy8oeXSuE<*PachUutr|7+w>8W<$?TRXVEsXw$~)l-eRYjb zXvpY-u6N`kNN*W;LFqy|R}IqSyI02EOlZ`d1sq9FjH~@(;dYl)vOwnd&6Cw0+f_{L zdw;Qs2}5O7a-0W_2HHGTfsFRgz}_mou2Vhjhw2(iQz?o4)&Gl zzIpj5%{)RZ{iGW6-avh=N@ip#_rekHqQ9gvDbkZirHKf#YopvsDec3Dg7QnPXSN_6 zcl%sCt2EKzF(EW*-4vX!bK`cJl(yzh2OYM%ZSnIuuCQI3(WUOUc07GHzylq^l1!y;JuCet>DEdj#KSX-fY z5>;7v*~u||fw~xU)Pn2`#2gSkF_kR=7&0gAx6C;r>Gkm1R6zEl4;5s$pO6G{B$vGM z^5a6(UI|nwHNW2R@ee_+lh>?p?yJc$k9zKIFUdV}N)7x&_XEH>@ESbXOG#ssQ@H1j zgQ<9Mkn5x4N}Jzg923~HYPqw+@o43w>_ zf2mDQE=f-v2(gnUAiAZ%CSL31I))||o*7y@5Ok-_Rg8Xtd^3Ld`L>241@VG$BKIP8 zEM90ucS+*KYrIra|6J|Heq)v;C`DLHnoE3R%Q>cf1NPBMP(Zv_s_xmE`cAE|G`IWZ zbQ7ZE)8ea^kTlD^#V=sr=-?3-`@`fo=nGi z7Ep?W{~VCX$ORv=vIXoT350k|aIm9p-YLx!)Q+W64jyRdkHdSSg|1LjYR*O+MZQI%SqX*BHnlI4+NS>yxvyF=D4#pK9Tnj=3!<}kJkpL9 zKm?stcJ7JxB-5z8-Vn1sU;(Ng{A?ielzg4<<~*ct?Nd@9p%{S2bdtIv@aW4GBvRhK zn+Ef&F4i@j$wk7^HIbT^CT*RoJ(sXB!=JkrskdwL zigTMl&D`qvu2kJc9grC=1C$49s#3G?U1D>I`1mJ{c|4jpK~9zVbV^>|tdM3I5gEyS zhm~OVm%RA*C2byZsC1yhL15=}q*yWUXoP1^uNGiY+MY^v1g;hx8P*iAWyVfNsGupl z8*wF9qEkf5N>NjJc)w6d9afDqNnzrCT-WLZYtf2zYfW{|Z?QkS_C*!D%Gv!KY+`ty zU2QRSJ{;R{5mYGKnSE|0HcR9rMkw3a!+8xkY;Wh+I3#z8B&zK%v4yg;O=2|R#}7Xw zdtM1eG4M=HFyS5(2l^rx-z3de3s|Mb47ntqd+RZT(uY@TpTK!zHehAN_Rou>E3RY! zL} zsTTlhu&Z1g46x1X#2SL|W3&A|B<-*=y0@BO+H5UY(Nm_MU!!lNaVy3m$> zdsMIe_D>cIO+rpui1 zk0}e(p4aN+m!4-;SXVmjo_-nNxi#we1|O?&&f$uo$$X5BX52REFCNw&RY3DP#Kk#g zoGt>-P)gPS`-RIHRd=>aw~|tCBynJidN2C!bi_nys-Pb5!Th8i&OXn7xO()O3)ah4-a?yND z>EIy_6N6|rcDO8Wue87gVg!w2BwD~L*`V(4Fcj+>)Q9}z*J>`#^;Zs#A`Q4X!|-k4 zf8Zl|RCi1PjWT%@g!b}g(Lt{R?2h|GP@}! z^Ak$AI;IBNjkp*AQ`yc!NOZGNxfGUFG+6bz8&z zp%lb`qD%Ijax)UbGvO7-oEp3B4f!d``y^LH zCl|(!i>6@XF z%c{%}=RYHbrP8Y!t6H++-7zT~`_+RrGIXr0$gw>=C!-Fq`J^P zr-e*kx2}J`4FX8m`$$pL6-S1J`L`{;m^Vm{4Y1uS^dC2`RAVFxip)Z>NrSuW8yg!R z-Gp|1)ae6r){83)D>ztV$uAiz&cAHBEaG7zMUdUd9%K;%QT`j^Rf(TRHpw0_N>L`y z9DC-#N@~`FVom=f<(uEzrBz&H|8(3 zA7iflw#M-&x)*GWeVKB=$AB-BiLOIuRpw|eD|+_~ z0ErX>B@Hp^@iM2jTj>A7f=N)tw*LH@u-`Y+9*LdQ^kn@!Kx_>FKpXc05mn$mDD?z0 zn-4hgf1<*F1Bd_h=0As#|5OhCub=(v5jQHHHW-1XoFU$TYe6YvB*b7jh=qlB?vGG(wFBA~yCO-C`Gvabzg3&6VIasDSzl`Xde4SI5wg_X z-5pNIW2i1miPK|Zl7pvjdd#bL5-M1*ZjmOV9P;G_}P_=@7 zeP Date: Mon, 7 Mar 2016 11:01:51 -0500 Subject: [PATCH 002/143] Issue #69: Updated version of k8s from 1.1.4 to 1.1.8 --- docs/getting-started-guides/ubuntu.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting-started-guides/ubuntu.md b/docs/getting-started-guides/ubuntu.md index 1515a55b5d..d6c778b2e9 100644 --- a/docs/getting-started-guides/ubuntu.md +++ b/docs/getting-started-guides/ubuntu.md @@ -24,7 +24,7 @@ use a CNI plugin instead. Internet to download the necessary files, while worker nodes do not. 3. These guide is tested OK on Ubuntu 14.04 LTS 64bit server, but it can not work with Ubuntu 15 which uses systemd instead of upstart. -4. Dependencies of this guide: etcd-2.2.1, flannel-0.5.5, k8s-1.1.4, may work with higher versions. +4. Dependencies of this guide: etcd-2.2.1, flannel-0.5.5, k8s-1.1.8, may work with higher versions. 5. All the remote servers can be ssh logged in without a password by using key authentication. @@ -41,12 +41,12 @@ $ git clone https://github.com/kubernetes/kubernetes.git #### Configure and start the Kubernetes cluster The startup process will first download all the required binaries automatically. -By default etcd version is 2.2.1, flannel version is 0.5.5 and k8s version is 1.1.4. +By default etcd version is 2.2.1, flannel version is 0.5.5 and k8s version is 1.1.8. You can customize your etcd version, flannel version, k8s version by changing corresponding variables `ETCD_VERSION` , `FLANNEL_VERSION` and `KUBE_VERSION` like following. ```shell -$ export KUBE_VERSION=1.0.5 +$ export KUBE_VERSION=1.1.8 $ export FLANNEL_VERSION=0.5.0 $ export ETCD_VERSION=2.2.0 ``` From 04aac861b4f18192f273cc9be31b34483ddae41f Mon Sep 17 00:00:00 2001 From: mfanjie Date: Mon, 7 Mar 2016 17:30:20 +0800 Subject: [PATCH 003/143] update proxy settings doc --- docs/getting-started-guides/vagrant.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/getting-started-guides/vagrant.md b/docs/getting-started-guides/vagrant.md index fde7c6fe26..01ef5b0fa6 100644 --- a/docs/getting-started-guides/vagrant.md +++ b/docs/getting-started-guides/vagrant.md @@ -365,21 +365,25 @@ export KUBERNETES_NODE_MEMORY=2048 #### I want to set proxy settings for my Kubernetes cluster boot strapping! -If you are behind a proxy, you need to install vagrant proxy plugin and set the proxy settings by +If you are behind a proxy, you need to install the Vagrant proxy plugin and set the proxy settings: -```sh +```shell vagrant plugin install vagrant-proxyconf export KUBERNETES_HTTP_PROXY=http://username:password@proxyaddr:proxyport export KUBERNETES_HTTPS_PROXY=https://username:password@proxyaddr:proxyport ``` -Optionally you can specify addresses to not proxy, for example +You can also specify addresses that bypass the proxy, for example: -```sh +```shell export KUBERNETES_NO_PROXY=127.0.0.1 ``` -If you are using sudo to make kubernetes build for example make quick-release, you need run `sudo -E make quick-release` to pass the environment variables. +If you are using sudo to make Kubernetes build, use the `-E` flag to pass in the environment variables. For example, if running `make quick-release`, use: + +```shell +sudo -E make quick-release +``` #### I ran vagrant suspend and nothing works! From 6f59b8a7b94ae56ec03bce1b3cc24f651b2819b0 Mon Sep 17 00:00:00 2001 From: David Oppenheimer Date: Tue, 8 Mar 2016 14:02:31 -0800 Subject: [PATCH 004/143] Add to cluster-large.md CPU and memory consumption for master components at various cluster sizes --- docs/admin/cluster-large.md | 106 ++++++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 42 deletions(-) diff --git a/docs/admin/cluster-large.md b/docs/admin/cluster-large.md index d2a208cf84..aa743bb29c 100644 --- a/docs/admin/cluster-large.md +++ b/docs/admin/cluster-large.md @@ -1,18 +1,18 @@ ---- ---- +--- +--- ## Support At {{page.version}}, Kubernetes supports clusters with up to 1000 nodes. More specifically, we support configurations that meet *all* of the following criteria: -* No more than 1000 nodes +* No more than 1000 nodes * No more than 30000 total pods -* No more than 60000 total containers -* No more than 100 pods per node - -* TOC -{:toc} +* No more than 60000 total containers +* No more than 100 pods per node + +* TOC +{:toc} ## Setup @@ -26,8 +26,8 @@ When setting up a large Kubernetes cluster, the following issues must be conside ### Quota Issues -To avoid running into cloud provider quota issues, when creating a cluster with many nodes, consider: - +To avoid running into cloud provider quota issues, when creating a cluster with many nodes, consider: + * Increase the quota for things like CPU, IPs, etc. * In [GCE, for example,](https://cloud.google.com/compute/docs/resource-quotas) you'll want to increase the quota for: * CPUs @@ -40,35 +40,57 @@ To avoid running into cloud provider quota issues, when creating a cluster with * Target pools * Gating the setup script so that it brings up new node VMs in smaller batches with waits in between, because some cloud providers rate limit the creation of VMs. -### Etcd storage - -To improve performance of large clusters, we store events in a separate dedicated etcd instance. - -When creating a cluster, existing salt scripts: - -* start and configure additional etcd instance -* configure api-server to use it for storing events - +### Etcd storage + +To improve performance of large clusters, we store events in a separate dedicated etcd instance. + +When creating a cluster, existing salt scripts: + +* start and configure additional etcd instance +* configure api-server to use it for storing events + +### Size of master and master components + +On GCE/GKE, `kube-up` automatically configures the proper VM size for your master depending on the number of nodes +in your cluster. On other providers, you will need to configure it manually. For reference, the sizes we use on GCE are +* 1-5 nodes: n1-standard-1 +* 6-10 nodes: n1-standard-2 +* 11-100 nodes: n1-standard-4 +* 101-250 nodes: n1-standard-8 +* 251-500 nodes: n1-standard-16 +* more than 500 nodes: n1-standard-32 + +We have measured the following 99th percentile resource consumption for the various master components at +(100 nodes/500 nodes/1000 nodes) cluster size: +* main etcd instance: CPU (0.135/0.241/0.312) RAM MB (242/706/1792) +* events etcd instance: CPU (0.082/0.099/0.095) RAM MB (237/746/1846) +* API server: CPU (1.233/3.0/5.9) RAM MB (895/2439/4285) +* controller manager: CPU (0.345/0.633/3.57) RAM MB (320/1624/4507) +* scheduler: CPU (0.232/1.576/1.758) RAM MB (48/167/5541) + +In a future Kubernetes release, we will set container limits based on these values, but for now these +containers do not have limits set. + ### Addon Resources To prevent memory leaks or other resource issues in [cluster addons](https://releases.k8s.io/{{page.githubbranch}}/cluster/addons) from consuming all the resources available on a node, Kubernetes sets resource limits on addon containers to limit the CPU and Memory resources they can consume (See PR [#10653](http://pr.k8s.io/10653/files) and [#10778](http://pr.k8s.io/10778/files)). For [example](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/cluster/saltbase/salt/fluentd-gcp/fluentd-gcp.yaml): -```yaml +```yaml containers: - - name: fluentd-cloud-logging + - name: fluentd-cloud-logging image: gcr.io/google_containers/fluentd-gcp:1.16 resources: limits: cpu: 100m memory: 200Mi -``` - +``` + Except for Heapster, these limits are static and are based on data we collected from addons running on 4-node clusters (see [#10335](http://issue.k8s.io/10335#issuecomment-117861225)). The addons consume a lot more resources when running on large deployment clusters (see [#5880](http://issue.k8s.io/5880#issuecomment-113984085)). So, if a large cluster is deployed without adjusting these values, the addons may continuously get killed because they keep hitting the limits. -To avoid running into cluster addon resource issues, when creating a cluster with many nodes, consider the following: - +To avoid running into cluster addon resource issues, when creating a cluster with many nodes, consider the following: + * Scale memory and CPU limits for each of the following addons, if used, as you scale up the size of cluster (there is one replica of each handling the entire cluster so memory and CPU usage tends to grow proportionally with size/load on cluster): * [InfluxDB and Grafana](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/cluster-monitoring/influxdb/influxdb-grafana-controller.yaml) * [skydns, kube2sky, and dns etcd](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/dns/skydns-rc.yaml.in) @@ -79,20 +101,20 @@ To avoid running into cluster addon resource issues, when creating a cluster wit * [FluentD with ElasticSearch Plugin](http://releases.k8s.io/{{page.githubbranch}}/cluster/saltbase/salt/fluentd-es/fluentd-es.yaml) * [FluentD with GCP Plugin](http://releases.k8s.io/{{page.githubbranch}}/cluster/saltbase/salt/fluentd-gcp/fluentd-gcp.yaml) -Heapster's resource limits are set dynamically based on the initial size of your cluster (see [#16185](http://issue.k8s.io/16185) and [#21258](http://issue.k8s.io/21258)). If you find that Heapster is running -out of resources, you should adjust the formulas that compute heapster memory request (see those PRs for details). - -For directions on how to detect if addon containers are hitting resource limits, see the [Troubleshooting section of Compute Resources](/docs/user-guide/compute-resources/#troubleshooting). - -In the [future](http://issue.k8s.io/13048), we anticipate to set all cluster addon resource limits based on cluster size, and to dynamically adjust them if you grow or shrink your cluster. -We welcome PRs that implement those features. - -### Allowing minor node failure at startup - -For various reasons (see [#18969](https://github.com/kubernetes/kubernetes/issues/18969) for more details) running -`kube-up.sh` with a very large `NUM_NODES` may fail due to a very small number of nodes not coming up properly. -Currently you have two choices: restart the cluster (`kube-down.sh` and then `kube-up.sh` again), or before -running `kube-up.sh` set the environment variable `ALLOWED_NOTREADY_NODES` to whatever value you feel comfortable -with. This will allow `kube-up.sh` to succeed with fewer than `NUM_NODES` coming up. Depending on the -reason for the failure, those additional nodes may join later or the cluster may remain at a size of -`NUM_NODES - ALLOWED_NOTREADY_NODES`. +Heapster's resource limits are set dynamically based on the initial size of your cluster (see [#16185](http://issue.k8s.io/16185) and [#21258](http://issue.k8s.io/21258)). If you find that Heapster is running +out of resources, you should adjust the formulas that compute heapster memory request (see those PRs for details). + +For directions on how to detect if addon containers are hitting resource limits, see the [Troubleshooting section of Compute Resources](/docs/user-guide/compute-resources/#troubleshooting). + +In the [future](http://issue.k8s.io/13048), we anticipate to set all cluster addon resource limits based on cluster size, and to dynamically adjust them if you grow or shrink your cluster. +We welcome PRs that implement those features. + +### Allowing minor node failure at startup + +For various reasons (see [#18969](https://github.com/kubernetes/kubernetes/issues/18969) for more details) running +`kube-up.sh` with a very large `NUM_NODES` may fail due to a very small number of nodes not coming up properly. +Currently you have two choices: restart the cluster (`kube-down.sh` and then `kube-up.sh` again), or before +running `kube-up.sh` set the environment variable `ALLOWED_NOTREADY_NODES` to whatever value you feel comfortable +with. This will allow `kube-up.sh` to succeed with fewer than `NUM_NODES` coming up. Depending on the +reason for the failure, those additional nodes may join later or the cluster may remain at a size of +`NUM_NODES - ALLOWED_NOTREADY_NODES`. From df19b45ff90fdf6a50ddd0a99dd76c958f7ffec1 Mon Sep 17 00:00:00 2001 From: David Oppenheimer Date: Wed, 9 Mar 2016 00:00:51 -0800 Subject: [PATCH 005/143] Update cluster-large.md --- docs/admin/cluster-large.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/admin/cluster-large.md b/docs/admin/cluster-large.md index aa743bb29c..148bc94b34 100644 --- a/docs/admin/cluster-large.md +++ b/docs/admin/cluster-large.md @@ -51,7 +51,7 @@ When creating a cluster, existing salt scripts: ### Size of master and master components -On GCE/GKE, `kube-up` automatically configures the proper VM size for your master depending on the number of nodes +On GCE/GKE and AWS, `kube-up` automatically configures the proper VM size for your master depending on the number of nodes in your cluster. On other providers, you will need to configure it manually. For reference, the sizes we use on GCE are * 1-5 nodes: n1-standard-1 * 6-10 nodes: n1-standard-2 @@ -60,7 +60,13 @@ in your cluster. On other providers, you will need to configure it manually. For * 251-500 nodes: n1-standard-16 * more than 500 nodes: n1-standard-32 -We have measured the following 99th percentile resource consumption for the various master components at +And the sizes we use on AWS are +* 1-149 nodes: m3.medium +* more than 150 nodes: m3.large + +Note that these master node sizes are currently only set at cluster startup time, and are not adjusted if you later scale your cluster up or down. + +We have measured the following 99th percentile resource consumption for the various master components on GCE at (100 nodes/500 nodes/1000 nodes) cluster size: * main etcd instance: CPU (0.135/0.241/0.312) RAM MB (242/706/1792) * events etcd instance: CPU (0.082/0.099/0.095) RAM MB (237/746/1846) @@ -68,7 +74,7 @@ We have measured the following 99th percentile resource consumption for the vari * controller manager: CPU (0.345/0.633/3.57) RAM MB (320/1624/4507) * scheduler: CPU (0.232/1.576/1.758) RAM MB (48/167/5541) -In a future Kubernetes release, we will set container limits based on these values, but for now these +In a future Kubernetes release, we will set container resource limits based on these values, but for now these containers do not have limits set. ### Addon Resources From 95b51e46e4e1af4358e7fad8b93c85f4372c54dc Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Wed, 9 Mar 2016 10:21:04 +0100 Subject: [PATCH 006/143] Removed v1beta1 disclaimer for jobs, since jobs are now part of batch/v1 --- docs/user-guide/jobs.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/docs/user-guide/jobs.md b/docs/user-guide/jobs.md index e2fd8a8a2c..7baafcac3f 100644 --- a/docs/user-guide/jobs.md +++ b/docs/user-guide/jobs.md @@ -88,9 +88,9 @@ the same schema as a [pod](/docs/user-guide/pods), except it is nested and does `kind`. In addition to required fields for a Pod, a pod template in a job must specify appropriate -labels (see [pod selector](#pod-selector) and an appropriate restart policy. +labels (see [pod selector](#pod-selector)) and an appropriate restart policy. -Only a [`RestartPolicy`](/docs/user-guide/pod-states) equal to `Never` or `OnFailure` are allowed. +Only a [`RestartPolicy`](/docs/user-guide/pod-states/#restartpolicy) equal to `Never` or `OnFailure` are allowed. ### Pod Selector @@ -331,15 +331,7 @@ driver, and then cleans up. An advantage of this approach is that the overall process gets the completion guarantee of a Job object, but complete control over what pods are created and how work is assigned to them. -## Caveats - -Job objects are in the [`extensions` API Group](/docs/api/#api-groups). - -Job objects have [API version `v1beta1`](/docs/api/)#api-versioning). Beta objects may -undergo changes to their schema and/or semantics in future software releases, but -similar functionality will be supported. - ## Future work Support for creating Jobs at specified times/dates (i.e. cron) is expected in the next minor -release. \ No newline at end of file +release. From fd8584ce88f2d233e8601920194af6af98189664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ragnar=20Dahl=C3=A9n?= Date: Sun, 13 Mar 2016 08:14:14 +0000 Subject: [PATCH 007/143] Fix broken link to ingress contrib tree --- docs/user-guide/ingress.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/ingress.md b/docs/user-guide/ingress.md index 851c5ab712..c8cb42b5bc 100644 --- a/docs/user-guide/ingress.md +++ b/docs/user-guide/ingress.md @@ -43,7 +43,7 @@ Before you start using the Ingress resource, there are a few things you should u * The Ingress is a beta resource, not available in any Kubernetes release prior to 1.1. * You need an Ingress controller to satisfy an Ingress. Simply creating the resource will have no effect. -* On GCE/GKE there should be a [L7 cluster addon](https://releases.k8s.io/{{page.githubbranch}}/cluster/addons/cluster-loadbalancing/glbc/README.md#prerequisites), on other platforms you either need to write your own or [deploy an existing controller](https://github.com/kubernetes/contrib/tree/master/Ingress) as a pod. +* On GCE/GKE there should be a [L7 cluster addon](https://releases.k8s.io/{{page.githubbranch}}/cluster/addons/cluster-loadbalancing/glbc/README.md#prerequisites), on other platforms you either need to write your own or [deploy an existing controller](https://github.com/kubernetes/contrib/tree/master/ingress) as a pod. * The resource currently does not support HTTPS, but will do so before it leaves beta. ## The Ingress Resource @@ -239,7 +239,7 @@ You can achieve the same by invoking `kubectl replace -f` on a modified Ingress * Combining L4 and L7 Ingress * More Ingress controllers -Please track the [L7 and Ingress proposal](https://github.com/kubernetes/kubernetes/pull/12827) for more details on the evolution of the resource, and the [Ingress sub-repository](https://github.com/kubernetes/contrib/tree/master/Ingress) for more details on the evolution of various Ingress controllers. +Please track the [L7 and Ingress proposal](https://github.com/kubernetes/kubernetes/pull/12827) for more details on the evolution of the resource, and the [Ingress sub-repository](https://github.com/kubernetes/contrib/tree/master/ingress) for more details on the evolution of various Ingress controllers. ## Alternatives @@ -248,4 +248,4 @@ You can expose a Service in multiple ways that don't directly involve the Ingres * Use [Service.Type=LoadBalancer](/docs/user-guide/services/#type-loadbalancer) * Use [Service.Type=NodePort](/docs/user-guide/services/#type-nodeport) * Use a [Port Proxy](https://github.com/kubernetes/contrib/tree/master/for-demos/proxy-to-service) -* Deploy the [Service loadbalancer](https://github.com/kubernetes/contrib/tree/master/service-loadbalancer). This allows you to share a single IP among multiple Services and achieve more advanced loadbalancing through Service Annotations. \ No newline at end of file +* Deploy the [Service loadbalancer](https://github.com/kubernetes/contrib/tree/master/service-loadbalancer). This allows you to share a single IP among multiple Services and achieve more advanced loadbalancing through Service Annotations. From 7c81b53161b59f0f29153610834e128bb8b1fca1 Mon Sep 17 00:00:00 2001 From: David Oppenheimer Date: Sun, 13 Mar 2016 14:23:45 -0700 Subject: [PATCH 008/143] Update cluster-large.md --- docs/admin/cluster-large.md | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/docs/admin/cluster-large.md b/docs/admin/cluster-large.md index 148bc94b34..e6434cf2c3 100644 --- a/docs/admin/cluster-large.md +++ b/docs/admin/cluster-large.md @@ -53,6 +53,7 @@ When creating a cluster, existing salt scripts: On GCE/GKE and AWS, `kube-up` automatically configures the proper VM size for your master depending on the number of nodes in your cluster. On other providers, you will need to configure it manually. For reference, the sizes we use on GCE are + * 1-5 nodes: n1-standard-1 * 6-10 nodes: n1-standard-2 * 11-100 nodes: n1-standard-4 @@ -61,21 +62,15 @@ in your cluster. On other providers, you will need to configure it manually. For * more than 500 nodes: n1-standard-32 And the sizes we use on AWS are -* 1-149 nodes: m3.medium -* more than 150 nodes: m3.large -Note that these master node sizes are currently only set at cluster startup time, and are not adjusted if you later scale your cluster up or down. +* 1-5 nodes: m3.medium +* 6-10 nodes: m3.large +* 11-100 nodes: m3.xlarge +* 101-250 nodes: m3.2xlarge +* 251-500 nodes: c4.4xlarge +* more than 500 nodes: c4.8xlarge -We have measured the following 99th percentile resource consumption for the various master components on GCE at -(100 nodes/500 nodes/1000 nodes) cluster size: -* main etcd instance: CPU (0.135/0.241/0.312) RAM MB (242/706/1792) -* events etcd instance: CPU (0.082/0.099/0.095) RAM MB (237/746/1846) -* API server: CPU (1.233/3.0/5.9) RAM MB (895/2439/4285) -* controller manager: CPU (0.345/0.633/3.57) RAM MB (320/1624/4507) -* scheduler: CPU (0.232/1.576/1.758) RAM MB (48/167/5541) - -In a future Kubernetes release, we will set container resource limits based on these values, but for now these -containers do not have limits set. +Note that these master node sizes are currently only set at cluster startup time, and are not adjusted if you later scale your cluster up or down (e.g. manually removing or adding nodes, or using a cluster autoscaler). ### Addon Resources From 9df5b9ea564473c669b4974ea73be7d983791d3a Mon Sep 17 00:00:00 2001 From: Rodrigo Campos Date: Mon, 14 Mar 2016 12:20:27 -0300 Subject: [PATCH 009/143] Fix kube-controller-manager description The item and their description was shown as different items at the same indentation level. This just moves de description so it's clear it is not a new item and is just the description of the previous item. --- docs/admin/cluster-components.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md index bde4d5334f..5c7c4c2699 100644 --- a/docs/admin/cluster-components.md +++ b/docs/admin/cluster-components.md @@ -44,15 +44,11 @@ process. These controllers include: -* Node Controller - * Responsible for noticing & responding when nodes go down. -* Replication Controller - * Responsible for maintaining the correct number of pods for every replication - controller object in the system. -* Endpoints Controller - * Populates the Endpoints object (i.e., join Services & Pods). -* Service Account & Token Controllers - * Create default accounts and API access tokens for new namespaces. +* Node Controller: Responsible for noticing & responding when nodes go down. +* Replication Controller: Responsible for maintaining the correct number of pods for every replication + controller object in the system. +* Endpoints Controller: Populates the Endpoints object (i.e., join Services & Pods). +* Service Account & Token Controllers: Create default accounts and API access tokens for new namespaces. * ... and others. ### kube-scheduler From 57f75e5e2b0ec73e87ac6869e89415d9b75e5b66 Mon Sep 17 00:00:00 2001 From: Rodrigo Campos Date: Mon, 14 Mar 2016 12:35:24 -0300 Subject: [PATCH 010/143] Fix listing kubelet responsabilities --- docs/admin/cluster-components.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md index bde4d5334f..31520e7f93 100644 --- a/docs/admin/cluster-components.md +++ b/docs/admin/cluster-components.md @@ -110,14 +110,15 @@ the Kubernetes runtime environment. ### kubelet [kubelet](/docs/admin/kubelet) is the primary node agent. It: + * Watches for pods that have been assigned to its node (either by apiserver or via local configuration file) and: - * Mounts the pod's required volumes - * Downloads the pod's secrets - * Run the pod's containers via docker (or, experimentally, rkt). - * Periodically executes any requested container liveness probes. - * Reports the status of the pod back to the rest of the system, by creating a - "mirror pod" if necessary. +* Mounts the pod's required volumes +* Downloads the pod's secrets +* Run the pod's containers via docker (or, experimentally, rkt). +* Periodically executes any requested container liveness probes. +* Reports the status of the pod back to the rest of the system, by creating a + "mirror pod" if necessary. * Reports the status of the node back to the rest of the system. ### kube-proxy From 7a2327ec8c0205880858b717f62f03ee7b554965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20L=C3=BCbken?= Date: Mon, 14 Mar 2016 16:49:14 +0100 Subject: [PATCH 011/143] Update binary_release.md Added instructions to use the homebrew package manager on OS X. There is an official formula which is also relatively uptodate: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/kubernetes-cli.rb --- docs/getting-started-guides/binary_release.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/getting-started-guides/binary_release.md b/docs/getting-started-guides/binary_release.md index 1df329d620..667b5f025d 100644 --- a/docs/getting-started-guides/binary_release.md +++ b/docs/getting-started-guides/binary_release.md @@ -12,6 +12,8 @@ The list of binary releases is available for download from the [GitHub Kubernete Download the latest release and unpack this tar file on Linux or OS X, cd to the created `kubernetes/` directory, and then follow the getting started guide for your cloud. +On OS X you can also use the [homebrew](http://brew.sh/) package manager: `brew install kubernetes-cli` + ### Building from source Get the Kubernetes source. If you are simply building a release from source there is no need to set up a full golang environment as all building happens in a Docker container. From 3671bebbeddba318cbff48cade34afc8d00d3177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20L=C3=BCbken?= Date: Mon, 14 Mar 2016 17:08:38 +0100 Subject: [PATCH 012/143] Spelling in guides.yml Spelling acheive => achieve --- _data/guides.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/guides.yml b/_data/guides.yml index 9599485100..59f44d7123 100644 --- a/_data/guides.yml +++ b/_data/guides.yml @@ -1,5 +1,5 @@ bigheader: "Guides" -abstract: "How to get started, and acheive tasks, using Kubernetes" +abstract: "How to get started, and achieve tasks, using Kubernetes" toc: - title: Guides path: /docs/ From a112e4ae7effac82d37b62b889ad2bbc9359782d Mon Sep 17 00:00:00 2001 From: Vladimir Rutsky Date: Mon, 14 Mar 2016 20:11:30 +0300 Subject: [PATCH 013/143] remove trailing commas from JSON Fixes JSON highlighting. --- docs/admin/node.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/node.md b/docs/admin/node.md index b3a346b4bb..13332012b8 100644 --- a/docs/admin/node.md +++ b/docs/admin/node.md @@ -61,8 +61,8 @@ the following conditions mean the node is in sane state: "conditions": [ { "kind": "Ready", - "status": "True", - }, + "status": "True" + } ] ``` From 85034e809072ccd5b0e5e9e356567e8159697329 Mon Sep 17 00:00:00 2001 From: chrismarino Date: Mon, 14 Mar 2016 11:28:30 -0700 Subject: [PATCH 014/143] Added Romana to the list of networking alternatives. --- docs/admin/networking.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/admin/networking.md b/docs/admin/networking.md index 12b65e2be6..814d90b7ec 100644 --- a/docs/admin/networking.md +++ b/docs/admin/networking.md @@ -177,8 +177,12 @@ network, primarily aiming at Docker integration. [Calico](https://github.com/projectcalico/calico-containers) uses BGP to enable real container IPs. +### Romana + +[Romana](https://romana.io) is an open source software defined networking (SDN) solution that lets you deploy Kubernetes without an overlay network. + ## Other reading The early design of the networking model and its rationale, and some future plans are described in more detail in the [networking design -document](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/networking.md). \ No newline at end of file +document](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/networking.md). From bb54f78e2a31456756fc9c6f774e59e863975f07 Mon Sep 17 00:00:00 2001 From: chrismarino Date: Mon, 14 Mar 2016 11:50:23 -0700 Subject: [PATCH 015/143] Removed. Breaks Github Pages... --- CNAME | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CNAME b/CNAME index ed60cf1824..8b13789179 100644 --- a/CNAME +++ b/CNAME @@ -1,2 +1 @@ -kubernetes.io -kubernet.es + From b9faac2e09e8be799d1c1e0663195745d12e488d Mon Sep 17 00:00:00 2001 From: chrismarino Date: Mon, 14 Mar 2016 11:55:41 -0700 Subject: [PATCH 016/143] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1583e70c0a..2eecb4c8ab 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Welcome! We are very pleased you want to contribute to the documentation and/or You can click the "Fork" button in the upper-right area of the screen to create a copy of our site on your GitHub account called a "fork." Make any changes you want in your fork, and when you are ready to send those changes to us, go to the index page for your fork and click "New Pull Request" to let us know about it. -If you want to see your changes staged without having to install anything locally, -change your fork of our repo to be named: +If you want to see your changes staged without having to install anything locally, remove the CNAME file in this directory and +change the name of the fork of our repo to be named: YOUR_GITHUB_USERNAME.github.io From 3c814a9629f0e040abc426cc6459333b2a96a223 Mon Sep 17 00:00:00 2001 From: chrismarino Date: Mon, 14 Mar 2016 11:59:54 -0700 Subject: [PATCH 017/143] Misc.. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2eecb4c8ab..73e88cb3b4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Welcome! We are very pleased you want to contribute to the documentation and/or You can click the "Fork" button in the upper-right area of the screen to create a copy of our site on your GitHub account called a "fork." Make any changes you want in your fork, and when you are ready to send those changes to us, go to the index page for your fork and click "New Pull Request" to let us know about it. If you want to see your changes staged without having to install anything locally, remove the CNAME file in this directory and -change the name of the fork of our repo to be named: +change the name of the fork to be: YOUR_GITHUB_USERNAME.github.io From e67856d224982219c17862270ea088ecc094d724 Mon Sep 17 00:00:00 2001 From: Eric Chiang Date: Mon, 14 Mar 2016 13:57:08 -0700 Subject: [PATCH 018/143] docs/admin: add context to authz webhook example kubeconfig --- docs/admin/authorization.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/admin/authorization.md b/docs/admin/authorization.md index 5442aeb726..2571fb94a8 100644 --- a/docs/admin/authorization.md +++ b/docs/admin/authorization.md @@ -161,6 +161,14 @@ users: user: client-certificate: /path/to/cert.pem # cert for the webhook plugin to use client-key: /path/to/key.pem # key matching the cert + +# kubeconfig files require a context. Provide one for the API Server. +current-context: webhook +contexts: +- context: + cluster: name-of-remote-authz-service + user: name-of-api-sever + name: webhook ``` ### Request Payloads From e3b57c3c2cc0b08dd6ceba29f7bdc7d9a18d96d3 Mon Sep 17 00:00:00 2001 From: scotty Date: Mon, 14 Mar 2016 14:29:25 -0700 Subject: [PATCH 019/143] css fixes --- _sass/_base.sass | 50 ++++++++++-------------------------------------- 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/_sass/_base.sass b/_sass/_base.sass index 9fbd1a57bf..7f23e8a1fa 100644 --- a/_sass/_base.sass +++ b/_sass/_base.sass @@ -357,45 +357,6 @@ footer text-align: center - //.social - // position: relative - // text-align: center - // - // a, label - // margin: 20px 0 - // - // a - // vertical-align: middle - // - // a.line-break - // display: block - // - // - // label - // //float: right - // display: inline-block - // width: 100% - // height: 50px - // line-height: 50px - // font-weight: 100 - // white-space: nowrap - // - // input - // margin-left: 8px - // width: 300px - // max-width: 60% - // - // - //.social - // a - // float: left - // margin-right: 10px - // - // a:nth-child(4) - // clear: left - - - #search, #wishField background-color: transparent @@ -527,6 +488,8 @@ section position: relative padding: 50px 20px 20px 20px overflow: hidden + font-size: 14px + & > div height: 100% @@ -618,6 +581,12 @@ section opacity: 1 +dt + margin-bottom: 8px + +dd + margin-bottom: 16px + .pi-pushmenu display: none position: fixed @@ -762,7 +731,7 @@ section font-weight: 500 p - font-size: 16px + font-size: 14px font-weight: 300 line-height: 1.25em @@ -981,6 +950,7 @@ $feature-box-div-margin-bottom: 40px main margin-bottom: $ocean-nodes-padding-Y + min-height: 160px .image-wrapper max-width: 75% From f002c35eee6edca8af251cb3ed4d2331d9930210 Mon Sep 17 00:00:00 2001 From: Marcin Wielgus Date: Tue, 15 Mar 2016 15:47:25 +0100 Subject: [PATCH 020/143] Update Heapster K8s doc --- docs/admin/cluster-large.md | 3 ++- docs/user-guide/monitoring.md | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/admin/cluster-large.md b/docs/admin/cluster-large.md index e6434cf2c3..be05cb627f 100644 --- a/docs/admin/cluster-large.md +++ b/docs/admin/cluster-large.md @@ -102,7 +102,8 @@ To avoid running into cluster addon resource issues, when creating a cluster wit * [FluentD with ElasticSearch Plugin](http://releases.k8s.io/{{page.githubbranch}}/cluster/saltbase/salt/fluentd-es/fluentd-es.yaml) * [FluentD with GCP Plugin](http://releases.k8s.io/{{page.githubbranch}}/cluster/saltbase/salt/fluentd-gcp/fluentd-gcp.yaml) -Heapster's resource limits are set dynamically based on the initial size of your cluster (see [#16185](http://issue.k8s.io/16185) and [#21258](http://issue.k8s.io/21258)). If you find that Heapster is running +Heapster's resource limits are set dynamically based on the initial size of your cluster (see [#16185](http://issue.k8s.io/16185) +and [#22940](http://issue.k8s.io/22940)). If you find that Heapster is running out of resources, you should adjust the formulas that compute heapster memory request (see those PRs for details). For directions on how to detect if addon containers are hitting resource limits, see the [Troubleshooting section of Compute Resources](/docs/user-guide/compute-resources/#troubleshooting). diff --git a/docs/user-guide/monitoring.md b/docs/user-guide/monitoring.md index d3bc20ed6c..92a2f50159 100644 --- a/docs/user-guide/monitoring.md +++ b/docs/user-guide/monitoring.md @@ -1,11 +1,11 @@ --- --- -Understanding how an application behaves when deployed is crucial to scaling the application and providing a reliable service. In a Kubernetes cluster, application performance can be examined at many different levels: containers, [pods](/docs/user-guide/pods), [services](/docs/user-guide/services), and whole clusters. As part of Kubernetes we want to provide users with detailed resource usage information about their running applications at all these levels. This will give users deep insights into how their applications are performing and where possible application bottlenecks may be found. In comes [Heapster](https://github.com/GoogleCloudPlatform/heapster), a project meant to provide a base monitoring platform on Kubernetes. +Understanding how an application behaves when deployed is crucial to scaling the application and providing a reliable service. In a Kubernetes cluster, application performance can be examined at many different levels: containers, [pods](/docs/user-guide/pods), [services](/docs/user-guide/services), and whole clusters. As part of Kubernetes we want to provide users with detailed resource usage information about their running applications at all these levels. This will give users deep insights into how their applications are performing and where possible application bottlenecks may be found. In comes [Heapster](https://github.com/kubernetes/heapster), a project meant to provide a base monitoring platform on Kubernetes. ### Overview -Heapster is a cluster-wide aggregator of monitoring and event data. It currently supports Kubernetes natively and works on all Kubernetes setups. Heapster runs as a pod in the cluster, similar to how any Kubernetes application would run. The Heapster pod discovers all nodes in the cluster and queries usage information from the nodes' [Kubelet](https://releases.k8s.io/{{page.githubbranch}}/DESIGN.md#kubelet)s, the on-machine Kubernetes agent. The Kubelet itself fetches the data from [cAdvisor](https://github.com/google/cadvisor). Heapster groups the information by pod along with the relevant labels. This data is then pushed to a configurable backend for storage and visualization. Currently supported backends include [InfluxDB](http://influxdb.com/) (with [Grafana](http://grafana.org/) for visualization) and [Google Cloud Monitoring](https://cloud.google.com/monitoring/). The overall architecture of the service can be seen below: +Heapster is a cluster-wide aggregator of monitoring and event data. It currently supports Kubernetes natively and works on all Kubernetes setups. Heapster runs as a pod in the cluster, similar to how any Kubernetes application would run. The Heapster pod discovers all nodes in the cluster and queries usage information from the nodes' [Kubelet](https://releases.k8s.io/{{page.githubbranch}}/DESIGN.md#kubelet)s, the on-machine Kubernetes agent. The Kubelet itself fetches the data from [cAdvisor](https://github.com/google/cadvisor). Heapster groups the information by pod along with the relevant labels. This data is then pushed to a configurable backend for storage and visualization. Currently supported backends include [InfluxDB](http://influxdb.com/) (with [Grafana](http://grafana.org/) for visualization), [Google Cloud Monitoring](https://cloud.google.com/monitoring/) and many others described in more details [here](https://github.com/kubernetes/heapster/blob/master/docs/sink-configuration.md). The overall architecture of the service can be seen below: ![overall monitoring architecture](/images/docs/monitoring-architecture.png) From 8f52948ca63ce3dec50e8785ebf0be8565a23667 Mon Sep 17 00:00:00 2001 From: johndmulhausen Date: Tue, 15 Mar 2016 12:20:19 -0700 Subject: [PATCH 021/143] Update troubleshooting.md --- docs/troubleshooting.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index bf0c90e007..08735e20f5 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -10,11 +10,11 @@ Sometimes things go wrong. This guide is aimed at making them right. It has tw You should also check the [known issues](/docs/user-guide/known-issues) for the release you're using. -# Getting help +### Getting help If your problem isn't answered by any of the guides above, there are variety of ways for you to get help from the Kubernetes team. -## Questions +### Questions If you aren't familiar with it, many of your questions may be answered by the [user guide](/docs/user-guide/). @@ -29,21 +29,21 @@ You may also find the Stack Overflow topics relevant: * [Kubernetes](http://stackoverflow.com/questions/tagged/kubernetes) * [Google Container Engine - GKE](http://stackoverflow.com/questions/tagged/google-container-engine) -# Help! My question isn't covered! I need help now! +## Help! My question isn't covered! I need help now! -## Stack Overflow +### Stack Overflow Someone else from the community may have already asked a similar question or may be able to help with your problem. The Kubernetes team will also monitor [posts tagged kubernetes](http://stackoverflow.com/questions/tagged/kubernetes). If there aren't any existing questions that help, please [ask a new one](http://stackoverflow.com/questions/ask?tags=kubernetes)! -## Slack +### Slack The Kubernetes team hangs out on Slack in the `#kubernetes-users` channel. You can participate in the Kubernetes team [here](https://kubernetes.slack.com). Slack requires registration, but the Kubernetes team is open invitation to anyone to register [here](http://slack.kubernetes.io). Feel free to come and ask any and all questions. -## Mailing List +### Mailing List The Google Container Engine mailing list is [google-containers@googlegroups.com](https://groups.google.com/forum/#!forum/google-containers) -## Bugs and Feature requests +### Bugs and Feature requests If you have what looks like a bug, or you would like to make a feature request, please use the [Github issue tracking system](https://github.com/kubernetes/kubernetes/issues). From 08c0f1025fa71d942ae3575996a9b14e3594860c Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Mon, 14 Mar 2016 17:20:00 -0700 Subject: [PATCH 022/143] Update deployment document to fit what's in beta release --- docs/user-guide/bad-nginx-deployment.yaml | 16 + docs/user-guide/deployments.md | 414 ++++++++++++++++------ 2 files changed, 320 insertions(+), 110 deletions(-) create mode 100644 docs/user-guide/bad-nginx-deployment.yaml diff --git a/docs/user-guide/bad-nginx-deployment.yaml b/docs/user-guide/bad-nginx-deployment.yaml new file mode 100644 index 0000000000..70afeaf2ee --- /dev/null +++ b/docs/user-guide/bad-nginx-deployment.yaml @@ -0,0 +1,16 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + replicas: 3 + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.91 + ports: + - containerPort: 80 diff --git a/docs/user-guide/deployments.md b/docs/user-guide/deployments.md index e5e0b33c88..a1a45fa507 100644 --- a/docs/user-guide/deployments.md +++ b/docs/user-guide/deployments.md @@ -6,7 +6,7 @@ ## What is a _Deployment_? -A _Deployment_ provides declarative updates for Pods and ReplicationControllers. +A _Deployment_ provides declarative updates for Pods and ReplicaSets. Users describe the desired state in a Deployment object, and the deployment controller changes the actual state to the desired state at a controlled rate. Users can define Deployments to create new resources, or replace existing ones @@ -14,66 +14,64 @@ by new ones. A typical use case is: -* Create a Deployment to bring up a replication controller and pods. +* Create a Deployment to bring up a replica set and pods. * Later, update that Deployment to recreate the pods (for example, to use a new image). +* Rollback to an earlier Deployment revision if the current Deployment isn't stable. +* Pause and resume a Deployment. ## Creating a Deployment -Here is an example Deployment. It creates a replication controller to +Here is an example Deployment. It creates a replica set to bring up 3 nginx pods. {% include code.html language="yaml" file="nginx-deployment.yaml" ghlink="/docs/user-guide/nginx-deployment.yaml" %} Run the example by downloading the example file and then running this command: -```shell -$ kubectl create -f docs/user-guide/nginx-deployment.yaml +```console +$ kubectl create -f docs/user-guide/nginx-deployment.yaml --record deployment "nginx-deployment" created ``` -Running +Setting the kubectl flag `--record` to `true` allows you to record current command in the annotations of the resources being created or updated. It will be useful for future introspection; for example, to see the commands executed in each Deployment revision. -```shell +Then running `get` immediately will give: + +```console $ kubectl get deployments +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +nginx-deployment 3 0 0 0 1s ``` -immediately will give: +This indicates that the Deployment's number of desired replicas is 3 (according to deployment's `.spec.replicas`), the number of current replicas (`.status.replicas`) is 0, the number of up-to-date replicas (`.status.updatedReplicas`) is 0, and the number of available replicas (`.status.availableReplicas`) is also 0. -```shell +Running the `get` again a few seconds later, should give: + +```console $ kubectl get deployments -NAME UPDATEDREPLICAS AGE -nginx-deployment 0/3 8s +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +nginx-deployment 3 3 3 3 18s ``` -This indicates that the Deployment is trying to update 3 replicas, and has not updated any of them yet. +This indicates that the Deployment has created all three replicas, and all replicas are up-to-date (contains the latest pod template) and available (pod status is ready for at least deployment's `.spec.minReadySeconds`). Running `kubectl get rs` and `kubectl get pods` will show the replica set (RS) and pods created. -Running the `get` again after a minute, should give: - -```shell -$ kubectl get deployments -NAME UPDATEDREPLICAS AGE -nginx-deployment 3/3 1m +```console +$ kubectl get rs +NAME DESIRED CURRENT AGE +nginx-deployment-2035384211 3 3 18s ``` -This indicates that the Deployment has created all three replicas. -Running `kubectl get rc` and `kubectl get pods` will show the replication controller (RC) and pods created. +You may notice that the name of the replica set is always `-`. -```shell -$ kubectl get rc -CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE -REPLICAS AGE -deploymentrc-1975012602 nginx nginx:1.7.9 pod-template-hash=1975012602,app=nginx 3 2m +```console +$ kubectl get pods --show-labels +NAME READY STATUS RESTARTS AGE LABELS +nginx-deployment-2035384211-7ci7o 1/1 Running 0 18s app=nginx,pod-template-hash=2035384211 +nginx-deployment-2035384211-kzszj 1/1 Running 0 18s app=nginx,pod-template-hash=2035384211 +nginx-deployment-2035384211-qqcnn 1/1 Running 0 18s app=nginx,pod-template-hash=2035384211 ``` -```shell -$ kubectl get pods -NAME READY STATUS RESTARTS AGE -deploymentrc-1975012602-4f2tb 1/1 Running 0 1m -deploymentrc-1975012602-j975u 1/1 Running 0 1m -deploymentrc-1975012602-uashb 1/1 Running 0 1m -``` - -The created RC will ensure that there are three nginx pods at all times. +The created replica set will ensure that there are three nginx pods at all times. ## Updating a Deployment @@ -83,120 +81,301 @@ For this, we update our deployment file as follows: {% include code.html language="yaml" file="new-nginx-deployment.yaml" ghlink="/docs/user-guide/new-nginx-deployment.yaml" %} -We can then `apply` the Deployment: +We can then `apply` the new Deployment: -```shell +```console $ kubectl apply -f docs/user-guide/new-nginx-deployment.yaml deployment "nginx-deployment" configured ``` -Running a `get` immediately will still give: +Alternatively, we can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`: -```shell -$ kubectl get deployments -NAME UPDATEDREPLICAS AGE -nginx-deployment 3/3 8s +```console +$ kubectl edit deployment/nginx-deployment +deployment "nginx-deployment" edited ``` -This indicates that deployment status has not been updated yet (it is still -showing old status). -Running a `get` again after a minute, should show: +Running a `get` immediately will give: -```shell +```console $ kubectl get deployments -NAME UPDATEDREPLICAS AGE -nginx-deployment 1/3 1m +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +nginx-deployment 3 3 0 3 20s ``` -This indicates that the Deployment has updated one of the three pods that it needs -to update. -Eventually, it will update all the pods. +The 0 number of up-to-date replicas indicates that the deployment hasn't updated the replicas to the latest configuration. The current replicas indicates the total replicas (3 with old configuration and 0 with new configuration) this Deployment manages, and the available replicas indicates the number of current replicas that are available. -```shell +The Deployment will update all the pods in a few seconds. + +```console $ kubectl get deployments -NAME UPDATEDREPLICAS AGE -nginx-deployment 3/3 3m +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +nginx-deployment 3 3 3 3 36s ``` -We can run `kubectl get rc` to see that the Deployment updated the pods by creating a new RC, -which it scaled up to 3 replicas, and has scaled down the old RC to 0 replicas. +We can run `kubectl get rs` to see that the Deployment updated the pods by creating a new replica set and scaling it up to 3 replicas, as well as scaling down the old replica set to 0 replicas. -```shell -kubectl get rc -CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE -deploymentrc-1562004724 nginx nginx:1.9.1 pod-template-hash=1562004724,app=nginx 3 5m -deploymentrc-1975012602 nginx nginx:1.7.9 pod-template-hash=1975012602,app=nginx 0 7m +```console +$ kubectl get rs +NAME DESIRED CURRENT AGE +nginx-deployment-1564180365 3 3 6s +nginx-deployment-2035384211 0 0 36s ``` Running `get pods` should now show only the new pods: -```shell -kubectl get pods -NAME READY STATUS RESTARTS AGE -deploymentrc-1562004724-0tgk5 1/1 Running 0 9m -deploymentrc-1562004724-1rkfl 1/1 Running 0 8m -deploymentrc-1562004724-6v702 1/1 Running 0 8m +```console +$ kubectl get pods +NAME READY STATUS RESTARTS AGE +nginx-deployment-1564180365-khku8 1/1 Running 0 14s +nginx-deployment-1564180365-nacti 1/1 Running 0 14s +nginx-deployment-1564180365-z9gth 1/1 Running 0 14s ``` -Next time we want to update these pods, we can just update and re-apply the Deployment again. +Next time we want to update these pods, we only need to update and re-apply the Deployment again. -Deployment ensures that not all pods are down while they are being updated. By -default, it ensures that minimum of 1 less than the desired number of pods are -up. For example, if you look at the above deployment closely, you will see that +Deployment can ensure that only a certain number of pods may be down while they are being updated. By +default, it ensures that at least 1 less than the desired number of pods are +up (1 max unavailable). + +Deployment can also ensure that only a certain number of pods may be created above the desired number of pods. By default, it ensures that at most 1 more than the desired number of pods are up (1 max surge). + +For example, if you look at the above deployment closely, you will see that it first created a new pod, then deleted some old pods and created new ones. It -does not kill old pods until a sufficient number of new pods have come up. +does not kill old pods until a sufficient number of new pods have come up, and does not create new pods until a sufficient number of old pods have been killed. It makes sure that number of available pods is at least 2 and the number of total pods is at most 4. -```shell +```console $ kubectl describe deployments -Name: nginx-deployment -Namespace: default -CreationTimestamp: Thu, 22 Oct 2015 17:58:49 -0700 -Labels: app=nginx-deployment -Selector: app=nginx -Replicas: 3 updated / 3 total -StrategyType: RollingUpdate -RollingUpdateStrategy: 1 max unavailable, 1 max surge, 0 min ready seconds -OldReplicationControllers: deploymentrc-1562004724 (3/3 replicas created) -NewReplicationController: +Name: nginx-deployment +Namespace: default +CreationTimestamp: Tue, 15 Mar 2016 12:01:06 -0700 +Labels: app=nginx +Selector: app=nginx +Replicas: 3 updated | 3 total | 3 available | 0 unavailable +StrategyType: RollingUpdate +MinReadySeconds: 0 +RollingUpdateStrategy: 1 max unavailable, 1 max surge +OldReplicaSets: +NewReplicaSet: nginx-deployment-1564180365 (3/3 replicas created) Events: - FirstSeen LastSeen Count From SubobjectPath Reason Message - 10m 10m 1 {deployment-controller } ScalingRC Scaled up rc deploymentrc-1975012602 to 3 - 2m 2m 1 {deployment-controller } ScalingRC Scaled up rc deploymentrc-1562004724 to 1 - 2m 2m 1 {deployment-controller } ScalingRC Scaled down rc deploymentrc-1975012602 to 1 - 1m 1m 1 {deployment-controller } ScalingRC Scaled up rc deploymentrc-1562004724 to 3 - 1m 1m 1 {deployment-controller } ScalingRC Scaled down rc deploymentrc-1975012602 to 0 + FirstSeen LastSeen Count From SubobjectPath Type Reason Message + --------- -------- ----- ---- ------------- -------- ------ ------- + 36s 36s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2035384211 to 3 + 23s 23s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 1 + 23s 23s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 2 + 23s 23s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 2 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3 ``` -Here we see that when we first created the Deployment, it created an RC and scaled it up to 3 replicas directly. -When we updated the Deployment, it created a new RC and scaled it up to 1 and then scaled down the old RC by 1, so that at least 2 pods were available at all times. -It then scaled up the new RC to 3 and when those pods were ready, it scaled down the old RC to 0. +Here we see that when we first created the Deployment, it created a replica set (nginx-deployment-2035384211) and scaled it up to 3 replicas directly. +When we updated the Deployment, it created a new replica set (nginx-deployment-1564180365) and scaled it up to 1 and then scaled down the old replica set to 2, so that at least 2 pods were available and at most 4 pods were created at all times. +It then continued scaling up and down the new and the old replica set, with the same rolling update strategy. Finally, we'll have 3 available replicas in the new replica set, and the old replica set is scaled down to 0. ### Multiple Updates -Each time a new deployment object is observed, a replication controller is -created to bring up the desired pods if there is no existing RC doing so. -Existing RCs controlling pods whose labels match `.spec.selector` but whose +Each time a new deployment object is observed by the deployment controller, a replica set is +created to bring up the desired pods if there is no existing replica set doing so. +Existing replica set controlling pods whose labels match `.spec.selector` but whose template does not match `.spec.template` are scaled down. -Eventually, the new RC will be scaled to `.spec.replicas` and all old RCs will +Eventually, the new replica set will be scaled to `.spec.replicas` and all old replica sets will be scaled to 0. If the user updates a Deployment while an existing deployment is in progress, -the Deployment will create a new RC as per the update and start scaling that up, and -will roll the RC that it was scaling up previously-- it will add it to its list of old RCs and will +the Deployment will create a new replica set as per the update and start scaling that up, and +will roll the replica set that it was scaling up previously -- it will add it to its list of old replica sets and will start scaling it down. -For example, suppose the user creates a deployment to create 5 replicas of `nginx:1.7.9`, -but then updates the deployment to create 5 replicas of `nginx:1.9.1`, when only 3 -replicas of `nginx:1.7.9` had been created. In that case, deployment will immediately start +For example, suppose the user creates a Deployment to create 5 replicas of `nginx:1.7.9`, +but then updates the Deployment to create 5 replicas of `nginx:1.9.1`, when only 3 +replicas of `nginx:1.7.9` had been created. In that case, Deployment will immediately start killing the 3 `nginx:1.7.9` pods that it had created, and will start creating `nginx:1.9.1` pods. It will not wait for 5 replicas of `nginx:1.7.9` to be created before changing course. +## Rolling Back a Deployment + +Sometimes we may want to rollback a Deployment; for example, when the previous Deployment is crash looping. + +Suppose that we made a typo while updating the Deployment, by putting the image name as `nginx:1.91` instead of `nginx:1.9.1`: + +```console +$ kubectl apply -f docs/user-guide/bad-nginx-deployment.yaml +deployment "nginx-deployment" configured +``` + +You will see that both the number of old replicas (nginx-deployment-1564180365 and nginx-deployment-2035384211) and new replicas (nginx-deployment-3066724191) are 2. + +```console +$ kubectl get rs +NAME DESIRED CURRENT AGE +nginx-deployment-1564180365 2 2 25s +nginx-deployment-2035384211 0 0 36s +nginx-deployment-3066724191 2 2 6s +``` + +Looking at the pods created, you will see that the 2 pods created by new replica set are crash looping. + +```console +$ kubectl get pods +NAME READY STATUS RESTARTS AGE +nginx-deployment-1564180365-70iae 1/1 Running 0 25s +nginx-deployment-1564180365-jbqqo 1/1 Running 0 25s +nginx-deployment-3066724191-08mng 0/1 ImagePullBackOff 0 6s +nginx-deployment-3066724191-eocby 0/1 ImagePullBackOff 0 6s +``` + +Note that the Deployment controller will stop the bad rollout automatically, and will stop scaling up the new replica set. + +```console +$ kubectl describe deployment +Name: nginx-deployment +Namespace: default +CreationTimestamp: Tue, 15 Mar 2016 14:48:04 -0700 +Labels: app=nginx +Selector: app=nginx +Replicas: 2 updated | 3 total | 2 available | 2 unavailable +StrategyType: RollingUpdate +MinReadySeconds: 0 +RollingUpdateStrategy: 1 max unavailable, 1 max surge +OldReplicaSets: nginx-deployment-1564180365 (2/2 replicas created) +NewReplicaSet: nginx-deployment-3066724191 (2/2 replicas created) +Events: + FirstSeen LastSeen Count From SubobjectPath Type Reason Message + --------- -------- ----- ---- ------------- -------- ------ ------- + 1m 1m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2035384211 to 3 + 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 1 + 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 2 + 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 2 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3 + 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 1 + 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1564180365 to 2 + 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 2 +``` + +To fix this, we need to rollback to a previous revision of Deployment that is stable. + +First, check the revisions of this deployment: + +```console +$ kubectl rollout history deployment/nginx-deployment +deployments "nginx-deployment": +REVISION CHANGE-CAUSE +1 kubectl create -f docs/user-guide/nginx-deployment.yaml --record +2 kubectl apply -f docs/user-guide/new-nginx-deployment.yaml +3 kubectl apply -f docs/user-guide/bad-nginx-deployment.yaml +``` + +Because we recorded the command while creating this Deployment using `--record`, we can easily see the changes we made in each revision. + +To further see the details of each revision, run: + +```console +$ kubectl rollout history deployment/nginx-deployment --revision=2 +deployments "nginx-deployment" revision 2 +Labels: app=nginx,pod-template-hash=1564180365 +Annotations: kubernetes.io/change-cause=kubectl apply -f docs/user-guide/new-nginx-deployment.yaml +Image(s): nginx:1.9.1 +No volumes. +``` + +Now we've decided to undo the current rollout and rollback to the previous revision: + +```console +$ kubectl rollout undo deployment/nginx-deployment +deployment "nginx-deployment" rolled back +``` + +Alternatively, you can rollback to a specific revision by specify that in `--to-revision`: + +```console +$ kubectl rollout undo deployment/nginx-deployment --to-revision=2 +deployment "nginx-deployment" rolled back +``` + +The Deployment is now rolled back to a previous stable revision. As you can see, a `DeploymentRollback` event for rolling back to revision 2 is generated from Deployment controller. + +```console +$ kubectl get deployment +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +nginx-deployment 3 3 3 3 30m +$ kubectl describe deployment +Name: nginx-deployment +Namespace: default +CreationTimestamp: Tue, 15 Mar 2016 14:48:04 -0700 +Labels: app=nginx +Selector: app=nginx +Replicas: 3 updated | 3 total | 3 available | 0 unavailable +StrategyType: RollingUpdate +MinReadySeconds: 0 +RollingUpdateStrategy: 1 max unavailable, 1 max surge +OldReplicaSets: +NewReplicaSet: nginx-deployment-1564180365 (3/3 replicas created) +Events: + FirstSeen LastSeen Count From SubobjectPath Type Reason Message + --------- -------- ----- ---- ------------- -------- ------ ------- + 30m 30m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2035384211 to 3 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 1 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 2 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 2 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 2 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 1 + 29m 29m 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1564180365 to 2 + 2m 2m 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-3066724191 to 0 + 2m 2m 1 {deployment-controller } Normal DeploymentRollback Rolled back deployment "nginx-deployment" to revision 2 + 29m 2m 2 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3 +``` + +## Pausing and Resuming a Deployment + +You can also pause a Deployment mid-way and then resume it. A use case is to support canary deployment. + +Update the Deployment again and then pause the Deployment with `kubectl rollout pause`: + +```console +$ kubectl apply -f docs/user-guide/new-nginx-deployment; kubectl rollout pause deployment/nginx-deployment +deployment "nginx-deployment" configured +deployment "nginx-deployment" paused +``` + +Note that any current state of the Deployment will continue its function, but new updates to the Deployment will not have an effect as long as the Deployment is paused. + +The Deployment was still in progress when we paused it, so the actions of scaling up and down replica sets are paused too. + +```console +$ kubectl get rs +NAME DESIRED CURRENT AGE +nginx-deployment-1564180365 2 2 1h +nginx-deployment-2035384211 2 2 1h +nginx-deployment-3066724191 0 0 1h +``` + +To resume the Deployment, simply do `kubectl rollout resume`: + +```console +$ kubectl rollout resume deployment/nginx-deployment +deployment "nginx-deployment" resumed +``` + +Then the Deployment will continue and finish the rollout: + +```console +$ kubectl get rs +NAME DESIRED CURRENT AGE +nginx-deployment-1564180365 3 3 1h +nginx-deployment-2035384211 0 0 1h +nginx-deployment-3066724191 0 0 1h +``` + +Note: A paused Deployment cannot be scaled at this moment, and we will add this feature in 1.3 release, see [issue #20853](https://github.com/kubernetes/kubernetes/issues/20853). You cannot rollback a paused Deployment either, and you should resume a Deployment first before doing a rollback. + ## Writing a Deployment Spec As with all other Kubernetes configs, a Deployment needs `apiVersion`, `kind`, and `metadata` fields. For general information about working with config files, -see [here](/docs/user-guide/deploying-applications), [here](/docs/user-guide/configuring-containers), and [here](/docs/user-guide/working-with-resources). +see [deploying applications](/docs/user-guide/deploying-applications), [configuring containers](/docs/user-guide/configuring-containers), and [using kubectl to manage resources](/docs/user-guide/working-with-resources) documents. A Deployment also needs a [`.spec` section](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#spec-and-status). @@ -231,13 +410,12 @@ the default value. All existing pods are killed before new ones are created when `.spec.strategy.type==Recreate`. -__Note: This is not implemented yet__. #### Rolling Update Deployment The Deployment updates pods in a [rolling update](/docs/user-guide/update-demo/) fashion when `.spec.strategy.type==RollingUpdate`. -Users can specify `maxUnavailable`, `maxSurge` and `minReadySeconds` to control +Users can specify `maxUnavailable` and `maxSurge` to control the rolling update process. ##### Max Unavailable @@ -250,9 +428,9 @@ The absolute number is calculated from percentage by rounding up. This can not be 0 if `.spec.strategy.rollingUpdate.maxSurge` is 0. By default, a fixed value of 1 is used. -For example, when this value is set to 30%, the old RC can be scaled down to +For example, when this value is set to 30%, the old replica set can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are -ready, old RC can be scaled down further, followed by scaling up the new RC, +ready, old replica set can be scaled down further, followed by scaling up the new replica set, ensuring that the total number of pods available at all times during the update is at least 70% of the desired pods. @@ -266,13 +444,13 @@ This can not be 0 if `MaxUnavailable` is 0. The absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. -For example, when this value is set to 30%, the new RC can be scaled up immediately when +For example, when this value is set to 30%, the new replica set can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, -the new RC can be scaled up further, ensuring that the total number of pods running +the new replica set can be scaled up further, ensuring that the total number of pods running at any time during the update is at most 130% of desired pods. -##### Min Ready Seconds +### Min Ready Seconds `.spec.minReadySeconds` is an optional field that specifies the minimum number of seconds for which a newly created pod should be ready @@ -280,9 +458,25 @@ without any of its containers crashing, for it to be considered available. This defaults to 0 (the pod will be considered available as soon as it is ready). To learn more about when a pod is considered ready, see [Container Probes](/docs/user-guide/pod-states/#container-probes). +### Rollback To + +`.spec.rollbackTo` is an optional field with the configuration the Deployment is rolling back to. Setting this field will trigger a rollback, and this field will be cleared every time a rollback is done. + +#### Revision + +`.spec.rollbackTo.revision` is an optional field specifying the revision to rollback to. This defaults to 0, meaning rollback to the last revision in history. + +### Revision History Limit + +`.spec.revisionHistoryLimit` is an optional field that specifies the number of old replica sets to retain to allow rollback. All old replica sets will be kept by default, if this field is not set. The configuration of each Deployment revision is stored in its replica sets; therefore, once an old replica set is deleted, you lose the ability to rollback to that revision of Deployment. + +### Paused + +`.spec.paused` is an optional boolean field for pausing and resuming a Deployment. It defaults to false (a Deployment is not paused). + ## Alternative to Deployments ### kubectl rolling update -[Kubectl rolling update](/docs/user-guide/kubectl/kubectl_rolling-update) also updates pods and replication controllers in a similar fashion. -But deployments is declarative and is server side. \ No newline at end of file +[Kubectl rolling update](/docs/user-guide/kubectl/kubectl_rolling-update) updates pods and replication controllers in a similar fashion. +But deployments is recommended, since it's declarative and is server side, and has more features, such as rolling back to any previous revision even after the rolling update is done. Also, replica sets supersede replication controllers. From 091138f6fea1d24ed4d281f2766d5089966c3bac Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Tue, 15 Mar 2016 23:07:47 -0400 Subject: [PATCH 023/143] Use ${HOME} for homedir This allows for copying and pasting, and avoids an OS X specific path. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1583e70c0a..84a4e6fcd8 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ First install rvm Then load it into your environment - source /Users/(USERNAME)/.rvm/scripts/rvm (or whatever is prompted by the installer) + source ${HOME}/.rvm/scripts/rvm (or whatever is prompted by the installer) Then install Ruby 2.2 or higher From ae1c3349a1cc74f39bc077f488dee96b2ba2fe4d Mon Sep 17 00:00:00 2001 From: Alex Robinson Date: Wed, 16 Mar 2016 00:22:52 -0700 Subject: [PATCH 024/143] Fix typo in table of contents for the reference docs. --- _data/reference.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/reference.yml b/_data/reference.yml index fa675d0a82..94557a1cfe 100644 --- a/_data/reference.yml +++ b/_data/reference.yml @@ -155,7 +155,7 @@ toc: - title: kube-proxy CLI path: /docs/admin/kube-proxy/ -- title: kub-scheduler CLI +- title: kube-scheduler CLI path: /docs/admin/kube-scheduler/ - title: kubelet CLI From e0fd5c5cc0c4821eae82ce9e8b849026b144afc5 Mon Sep 17 00:00:00 2001 From: "Madhusudan.C.S" Date: Wed, 16 Mar 2016 00:32:03 -0700 Subject: [PATCH 025/143] Fix kube-scheduler typo in the menu. --- _data/reference.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/reference.yml b/_data/reference.yml index fa675d0a82..94557a1cfe 100644 --- a/_data/reference.yml +++ b/_data/reference.yml @@ -155,7 +155,7 @@ toc: - title: kube-proxy CLI path: /docs/admin/kube-proxy/ -- title: kub-scheduler CLI +- title: kube-scheduler CLI path: /docs/admin/kube-scheduler/ - title: kubelet CLI From 664f5704507724898d23cc8f787a76e10de5ef96 Mon Sep 17 00:00:00 2001 From: Piotr Szczesniak Date: Tue, 15 Mar 2016 15:28:17 +0100 Subject: [PATCH 026/143] Updated HPA user guide and example --- docs/user-guide/horizontal-pod-autoscaler.md | 15 +- .../hpa-php-apache.yaml | 2 +- .../horizontal-pod-autoscaling/index.md | 239 ++++++++---------- 3 files changed, 112 insertions(+), 144 deletions(-) diff --git a/docs/user-guide/horizontal-pod-autoscaler.md b/docs/user-guide/horizontal-pod-autoscaler.md index 0a1fbca549..8b27f5e7aa 100644 --- a/docs/user-guide/horizontal-pod-autoscaler.md +++ b/docs/user-guide/horizontal-pod-autoscaler.md @@ -5,9 +5,8 @@ This document describes the current state of Horizontal Pod Autoscaler in Kubern ## What is Horizontal Pod Autoscaler? -Horizontal pod autoscaling allows the number of pods in a replication controller or deployment -to scale automatically based on observed CPU utilization. -It is a [beta](/docs/api/)#api-versioning) feature in Kubernetes 1.1. +Horizontal pod autoscaling allows to automatically scale the number of pods +in a replication controller, deployment or replica set based on observed CPU utilization. The autoscaler is implemented as a Kubernetes API resource and a controller. The resource describes behavior of the controller. @@ -33,14 +32,20 @@ Further details of the autoscaling algorithm are given [here](https://github.com Autoscaler uses heapster to collect CPU utilization. Therefore, it is required to deploy heapster monitoring in your cluster for autoscaling to work. -Autoscaler accesses corresponding replication controller or deployment by scale sub-resource. +Autoscaler accesses corresponding replication controller, deployment or replica set by scale sub-resource. Scale is an interface which allows to dynamically set the number of replicas and to learn the current state of them. More details on scale sub-resource can be found [here](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/horizontal-pod-autoscaler.md#scale-subresource). ## API Object -Horizontal pod autoscaler is a top-level resource in the Kubernetes REST API (currently in [beta](/docs/api/)#api-versioning)). +Horizontal pod autoscaler is a top-level resource in the Kubernetes REST API. +In Kubernetes 1.2 HPA was graduated from beta to stable (more details about [api versioning](/docs/api/#api-versioning)) with compatibility between versions. +The stable version is available in `autoscaling/v1` api group whereas the beta vesion is available in `extensions/v1beta1` api group as before. +The transition plan is to depracate beta verion of HPA in Kubernetes 1.3 and get it rid off completely in Kubernetes 1.4. + +**Warning!** Please have in mind that all Kubernetes components still use HPA in version `extensions/v1beta1` in Kubernetes 1.2. + More details about the API object can be found at [HorizontalPodAutoscaler Object](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/horizontal-pod-autoscaler.md#horizontalpodautoscaler-object). diff --git a/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml b/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml index 8aa7804ca1..72d402743d 100644 --- a/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml +++ b/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml @@ -5,7 +5,7 @@ metadata: namespace: default spec: scaleRef: - kind: ReplicationController + kind: Deployment name: php-apache subresource: scale minReplicas: 1 diff --git a/docs/user-guide/horizontal-pod-autoscaling/index.md b/docs/user-guide/horizontal-pod-autoscaling/index.md index 074304194b..7089c53aec 100644 --- a/docs/user-guide/horizontal-pod-autoscaling/index.md +++ b/docs/user-guide/horizontal-pod-autoscaling/index.md @@ -1,75 +1,126 @@ --- --- -Horizontal pod autoscaling is a [beta](/docs/api/#api-versioning) feature in Kubernetes 1.1. -It allows the number of pods in a replication controller or deployment to scale automatically based on observed CPU usage. +Horizontal pod autoscaling allows to automatically scale the number of pods +in a replication controller, deployment or replica set based on observed CPU utilization. In the future also other metrics will be supported. -In this document we explain how this feature works by walking you through an example of enabling horizontal pod autoscaling with the php-apache server. +In this document we explain how this feature works by walking you through an example of enabling horizontal pod autoscaling for the php-apache server. ## Prerequisites -This example requires a running Kubernetes cluster and kubectl in the version at least 1.1. +This example requires a running Kubernetes cluster and kubectl in the version at least 1.2. [Heapster](https://github.com/kubernetes/heapster) monitoring needs to be deployed in the cluster as horizontal pod autoscaler uses it to collect metrics (if you followed [getting started on GCE guide](/docs/getting-started-guides/gce), heapster monitoring will be turned-on by default). - ## Step One: Run & expose php-apache server To demonstrate horizontal pod autoscaler we will use a custom docker image based on php-apache server. -The image can be found [here](https://releases.k8s.io/{{page.githubbranch}}/docs/user-guide/horizontal-pod-autoscaling/image). +The image can be found [here](/docs/user-guide/horizontal-pod-autoscaling/image). It defines [index.php](/docs/user-guide/horizontal-pod-autoscaling/image/index.php) page which performs some CPU intensive computations. -First, we will start a replication controller running the image and expose it as an external service: - - +First, we will start a deployment running the image and expose it as a service: ```shell -$ kubectl run php-apache --image=gcr.io/google_containers/hpa-example --requests=cpu=200m -replicationcontroller "php-apache" created - -$ kubectl expose rc php-apache --port=80 --type=LoadBalancer -service "php-apache" exposed -``` - -Now, we will wait some time and verify that both the replication controller and the service were correctly created and are running. We will also determine the IP address of the service: - -```shell -$ kubectl get pods -NAME READY STATUS RESTARTS AGE -php-apache-wa3t1 1/1 Running 0 12m - -$ kubectl describe services php-apache | grep "LoadBalancer Ingress" -LoadBalancer Ingress: 146.148.24.244 -``` - -We may now check that php-apache server works correctly by calling `curl` with the service's IP: - -```shell -$ curl http://146.148.24.244 -OK! -``` - -Please notice that when exposing the service we assumed that our cluster runs on a provider which supports load balancers (e.g.: on GCE). -If load balancers are not supported (e.g.: on Vagrant), we can expose php-apache service as ``ClusterIP`` and connect to it using the proxy on the master: - -```shell -$ kubectl expose rc php-apache --port=80 --type=ClusterIP -service "php-apache" exposed - -$ kubectl cluster-info | grep master -Kubernetes master is running at https://146.148.6.215 - -$ curl -k -u : https://146.148.6.215/api/v1/proxy/namespaces/default/services/php-apache/ -OK! +$ kubectl run php-apache --image=gcr.io/google_containers/hpa-example --requests=cpu=200m --expose --port=80 +service "php-apache" created +deployment "php-apache" created ``` ## Step Two: Create horizontal pod autoscaler -Now that the server is running, we will create a horizontal pod autoscaler for it. -To create it, we will use the [hpa-php-apache.yaml](/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml) file, which looks like this: +Now that the server is running, we will create the autoscaler using +[kubectl autoscale](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/user-guide/kubectl/kubectl_autoscale.md). +The following command will create a horizontal pod autoscaler that maintains between 1 and 10 replicas of the Pods +controlled by the php-apache deployment we created in the first step of these instructions. +Roughly speaking, the horizontal autoscaler will increase and decrease the number of replicas +(via the deployment) to maintain an average CPU utilization across all Pods of 50% +(since each pod requests 200 milli-cores by [kubectl run](#kubectl-run), this means average CPU usage of 100 milli-cores). +See [here](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/horizontal-pod-autoscaler.md#autoscaling-algorithm) for more details on the algorithm. + +```shell +$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10 +deployment "php-apache" autoscaled +``` + +We may check the current status of autoscaler by running: + +```shell +$ kubectl get hpa +NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE +php-apache Deployment/php-apache/scale 50% 0% 1 10 18s + +``` + +Please note that the current CPU consumption is 0% as we are not sending any requests to the server +(the ``CURRENT`` column shows the average across all the pods controlled by the corresponding deployment). + +## Step Three: Increase load + +Now, we will see how the autoscaler reacts on the increased load on the server. +We will start a container with `busybox` image and an infinite loop of queries to our server inside (please run it in a different terminal): + +```shell +$ kubectl run -i --tty load-generator --image=busybox /bin/sh + +Hit enter for command prompt + +$ while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done +``` + +We may examine, how CPU load was increased by executing (it usually takes 1 minute): + +```shell +$ kubectl get hpa +NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE +php-apache Deployment/php-apache/scale 50% 305% 1 10 3m + +``` + +In the case presented here, it bumped CPU consumption to 305% of the request. +As a result, the deployment was resized to 7 replicas: + +```shell +$ kubectl get deployment php-apache +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +php-apache 7 7 7 7 19m +``` + +**Warning!** Sometimes it may take few steps to stabilize the number of replicas. +Since the amount of load is not controlled in any way it may happen that the final number of replicas will +differ from this example. + +## Step Four: Stop load + +We will finish our example by stopping the user load. + +In the terminal where we created container with `busybox` image we will terminate +infinite ``while`` loop by sending `SIGINT` signal, +which can be done using ` + C` combination. + +Then we will verify the result state: + +```shell +$ kubectl get hpa +NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE +php-apache Deployment/php-apache/scale 50% 0% 1 10 11m + +$ kubectl get deployment php-apache +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +php-apache 1 1 1 1 27m +``` + +As we see, in the presented case CPU utilization dropped to 0, and the number of replicas dropped to 1. + +**Warning!** Sometimes dropping number of replicas may take few steps. + +## Appendix: Other possible scenarios + +### Creating the autoscaler from a .yaml file + +Instead of using `kubectl autoscale` command we can use the [hpa-php-apache.yaml](/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml) file, which looks like this: ```yaml apiVersion: extensions/v1beta1 @@ -79,106 +130,18 @@ metadata: namespace: default spec: scaleRef: - kind: ReplicationController + kind: Deployment name: php-apache - namespace: default + subresource: scale minReplicas: 1 maxReplicas: 10 cpuUtilization: targetPercentage: 50 ``` -This defines a horizontal pod autoscaler that maintains between 1 and 10 replicas of the Pods -controlled by the php-apache replication controller we created in the first step of these instructions. -Roughly speaking, the horizontal autoscaler will increase and decrease the number of replicas -(via the replication controller) so as to maintain an average CPU utilization across all Pods of 50% -(since each pod requests 200 milli-cores by [kubectl run](#kubectl-run), this means average CPU utilization of 100 milli-cores). -See [here](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/horizontal-pod-autoscaler.md#autoscaling-algorithm) for more details on the algorithm. - We will create the autoscaler by executing the following command: ```shell $ kubectl create -f docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml horizontalpodautoscaler "php-apache" created ``` - -Alternatively, we can create the autoscaler using [kubectl autoscale](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/user-guide/kubectl/kubectl_autoscale.md). -The following command will create the equivalent autoscaler as defined in the [hpa-php-apache.yaml](/docs/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml) file: - -```shell -$ kubectl autoscale rc php-apache --cpu-percent=50 --min=1 --max=10 -replicationcontroller "php-apache" autoscaled -``` - -We may check the current status of autoscaler by running: - -```shell -$ kubectl get hpa -NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE -php-apache ReplicationController/default/php-apache/ 50% 0% 1 10 27s -``` - -Please note that the current CPU consumption is 0% as we are not sending any requests to the server -(the ``CURRENT`` column shows the average across all the pods controlled by the corresponding replication controller). - -## Step Three: Increase load - -Now, we will see how the autoscaler reacts on the increased load of the server. -We will start an infinite loop of queries to our server (please run it in a different terminal): - -```shell -$ while true; do curl http://146.148.6.244; done -``` - -We may examine, how CPU load was increased (the results should be visible after about 3-4 minutes) by executing: - -```shell -$ kubectl get hpa -NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE -php-apache ReplicationController/default/php-apache/ 50% 305% 1 10 4m -``` - -In the case presented here, it bumped CPU consumption to 305% of the request. -As a result, the replication controller was resized to 7 replicas: - -```shell -$ kubectl get rc -CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE -php-apache php-apache gcr.io/google_containers/hpa-example run=php-apache 7 18m -``` - -Now, we may increase the load even more by running yet another infinite loop of queries (in yet another terminal): - -```shell -$ while true; do curl http://146.148.6.244; done -``` - -In the case presented here, it increased the number of serving pods to 10: - -```shell -$ kubectl get hpa -NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE -php-apache ReplicationController/default/php-apache/ 50% 65% 1 10 14m - -$ kubectl get rc -CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE -php-apache php-apache gcr.io/google_containers/hpa-example run=php-apache 10 24m -``` - -## Step Four: Stop load - -We will finish our example by stopping the user load. - -We will terminate both infinite ``while`` loops sending requests to the server and verify the result state: - -```shell -$ kubectl get hpa -NAME REFERENCE TARGET CURRENT MINPODS MAXPODS AGE -php-apache ReplicationController/default/php-apache/ 50% 0% 1 10 21m - -$ kubectl get rc -CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE -php-apache php-apache gcr.io/google_containers/hpa-example run=php-apache 1 31m -``` - -As we see, in the presented case CPU utilization dropped to 0, and the number of replicas dropped to 1. \ No newline at end of file From 0753c5191a876e1cca6642db10d28a5a6bf1406a Mon Sep 17 00:00:00 2001 From: Beni Cherniavsky-Paskin Date: Wed, 16 Mar 2016 15:05:33 +0200 Subject: [PATCH 027/143] Fix broken labels -> node-selection link http://kubernetes.io/docs/user-guide/labels/node-selection// doesn't exist; http://kubernetes.io/docs/user-guide/node-selection/ does. --- docs/user-guide/labels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/labels.md b/docs/user-guide/labels.md index 6e6f0bd1a4..86df0df9af 100644 --- a/docs/user-guide/labels.md +++ b/docs/user-guide/labels.md @@ -165,4 +165,4 @@ selector: #### Selecting sets of nodes One use case for selecting over labels is to constrain the set of nodes onto which a pod can schedule. -See the documentation on [node selection](node-selection/README.md) for more information. +See the documentation on [node selection](/docs/user-guide/node-selection) for more information. From 8cc7f9831971ab71f6c1da820c64fc513e3a599a Mon Sep 17 00:00:00 2001 From: johndmulhausen Date: Wed, 16 Mar 2016 14:52:06 -0700 Subject: [PATCH 028/143] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 88cea0f2be..9905f71795 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .jekyll-metadata _site/** .sass-cache/** +CNAME From 55315a39afda2581543c1435f8df1c7e2590ac7a Mon Sep 17 00:00:00 2001 From: Chris Marino Date: Wed, 16 Mar 2016 15:02:41 -0700 Subject: [PATCH 029/143] Revert "Removed. Breaks Github Pages..." This reverts commit bb54f78e2a31456756fc9c6f774e59e863975f07. --- CNAME | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CNAME b/CNAME index 8b13789179..ed60cf1824 100644 --- a/CNAME +++ b/CNAME @@ -1 +1,2 @@ - +kubernetes.io +kubernet.es From 0e301395503709df12579f9f684cce6ef923c77e Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Wed, 16 Mar 2016 15:12:30 -0700 Subject: [PATCH 030/143] Update deployment user guide --- docs/user-guide/deployments.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/user-guide/deployments.md b/docs/user-guide/deployments.md index a1a45fa507..6b7f0e6221 100644 --- a/docs/user-guide/deployments.md +++ b/docs/user-guide/deployments.md @@ -7,9 +7,9 @@ ## What is a _Deployment_? A _Deployment_ provides declarative updates for Pods and ReplicaSets. -Users describe the desired state in a Deployment object, and the deployment -controller changes the actual state to the desired state at a controlled rate. -Users can define Deployments to create new resources, or replace existing ones +You only need to describe the desired state in a Deployment object, and the deployment +controller will change the actual state to the desired state at a controlled rate for you. +You can define Deployments to create new resources, or replace existing ones by new ones. A typical use case is: @@ -181,12 +181,12 @@ template does not match `.spec.template` are scaled down. Eventually, the new replica set will be scaled to `.spec.replicas` and all old replica sets will be scaled to 0. -If the user updates a Deployment while an existing deployment is in progress, +If you update a Deployment while an existing deployment is in progress, the Deployment will create a new replica set as per the update and start scaling that up, and will roll the replica set that it was scaling up previously -- it will add it to its list of old replica sets and will start scaling it down. -For example, suppose the user creates a Deployment to create 5 replicas of `nginx:1.7.9`, +For example, suppose you create a Deployment to create 5 replicas of `nginx:1.7.9`, but then updates the Deployment to create 5 replicas of `nginx:1.9.1`, when only 3 replicas of `nginx:1.7.9` had been created. In that case, Deployment will immediately start killing the 3 `nginx:1.7.9` pods that it had created, and will start creating @@ -195,7 +195,7 @@ before changing course. ## Rolling Back a Deployment -Sometimes we may want to rollback a Deployment; for example, when the previous Deployment is crash looping. +Sometimes we may want to rollback a Deployment; for example, when the Deployment is not stable, such as crash looping. Suppose that we made a typo while updating the Deployment, by putting the image name as `nginx:1.91` instead of `nginx:1.9.1`: @@ -214,7 +214,7 @@ nginx-deployment-2035384211 0 0 36s nginx-deployment-3066724191 2 2 6s ``` -Looking at the pods created, you will see that the 2 pods created by new replica set are crash looping. +Looking at the pods created, you will see that the 2 pods created by new replica set are stuck in an image pull loop. ```console $ kubectl get pods @@ -415,7 +415,7 @@ All existing pods are killed before new ones are created when The Deployment updates pods in a [rolling update](/docs/user-guide/update-demo/) fashion when `.spec.strategy.type==RollingUpdate`. -Users can specify `maxUnavailable` and `maxSurge` to control +You can specify `maxUnavailable` and `maxSurge` to control the rolling update process. ##### Max Unavailable From a2654c126a0fd44bfbf52ed0e18ae3f68ba67e7d Mon Sep 17 00:00:00 2001 From: Eric Tune Date: Wed, 16 Mar 2016 15:32:54 -0700 Subject: [PATCH 031/143] spell a numeral --- docs/user-guide/jobs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/jobs.md b/docs/user-guide/jobs.md index e2fd8a8a2c..494caf91d8 100644 --- a/docs/user-guide/jobs.md +++ b/docs/user-guide/jobs.md @@ -11,7 +11,7 @@ As pods successfully complete, the _job_ tracks the successful completions. Whe of successful completions is reached, the job itself is complete. Deleting a Job will cleanup the pods it created. -A simple case is to create 1 Job object in order to reliably run one Pod to completion. +A simple case is to create one Job object in order to reliably run one Pod to completion. The Job object will start a new Pod if the first pod fails or is deleted (for example due to a node hardware failure or a node reboot). @@ -342,4 +342,4 @@ similar functionality will be supported. ## Future work Support for creating Jobs at specified times/dates (i.e. cron) is expected in the next minor -release. \ No newline at end of file +release. From c8dd8b8831db5cd7c862ac5631c4414a53ac021c Mon Sep 17 00:00:00 2001 From: johndmulhausen Date: Wed, 16 Mar 2016 15:54:34 -0700 Subject: [PATCH 032/143] Import from Container Engine docs, addition of Tabs functionality, various link fixes --- README.md | 16 + _data/guides.yml | 14 + _data/support.yml | 2 + _includes/head-header.html | 4 +- _includes/tabs.html | 17 + _sass/_base.sass | 62 ++- css/jquery-ui.min.css | 7 + css/jquery-ui.structure.min.css | 5 + css/jquery-ui.theme.min.css | 5 + docs/admin/networking.md | 8 +- docs/getting-started-guides/scratch.md | 14 +- ...ugging-pods-and-replication-controllers.md | 105 ++++ docs/user-guide/debugging-services.md | 61 ++- docs/user-guide/load-balancer.md | 73 +++ docs/user-guide/pods/_viewing-a-pod.md | 58 ++ docs/user-guide/{pods.md => pods/index.md} | 0 docs/user-guide/pods/multi-container.md | 175 ++++++ docs/user-guide/pods/pod-config.json | 18 + docs/user-guide/pods/pod-config.yaml | 12 + docs/user-guide/pods/pod-sample.json | 32 ++ docs/user-guide/pods/pod-sample.yaml | 16 + docs/user-guide/pods/pod-spec-common.json | 44 ++ docs/user-guide/pods/pod-spec-common.yaml | 31 ++ docs/user-guide/pods/single-container.md | 88 +++ .../index.md} | 8 +- .../replication-controller/operations.md | 226 ++++++++ .../replication.yaml | 0 .../resizing-a-replication-controller.md | 33 ++ docs/user-guide/rolling-updates.md | 127 +++++ .../{services.md => services/index.md} | 4 + .../services/load-balancer-sample.json | 17 + .../services/load-balancer-sample.yaml | 12 + docs/user-guide/services/operations.md | 161 ++++++ docs/user-guide/services/service-sample.json | 16 + docs/user-guide/services/service-sample.yaml | 11 + .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 0 -> 418 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 0 -> 312 bytes .../jquery-ui/ui-bg_flat_10_000000_40x100.png | Bin 0 -> 205 bytes .../ui-bg_glass_100_f6f6f6_1x400.png | Bin 0 -> 262 bytes .../ui-bg_glass_100_fdf5ce_1x400.png | Bin 0 -> 348 bytes .../jquery-ui/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 207 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 0 -> 5815 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 0 -> 278 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 0 -> 328 bytes images/jquery-ui/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes images/jquery-ui/ui-icons_228ef1_256x240.png | Bin 0 -> 4549 bytes images/jquery-ui/ui-icons_444444_256x240.png | Bin 0 -> 6992 bytes images/jquery-ui/ui-icons_555555_256x240.png | Bin 0 -> 6988 bytes images/jquery-ui/ui-icons_777620_256x240.png | Bin 0 -> 4549 bytes images/jquery-ui/ui-icons_777777_256x240.png | Bin 0 -> 6999 bytes images/jquery-ui/ui-icons_cc0000_256x240.png | Bin 0 -> 4549 bytes images/jquery-ui/ui-icons_ef8c08_256x240.png | Bin 0 -> 4549 bytes images/jquery-ui/ui-icons_ffd27a_256x240.png | Bin 0 -> 4549 bytes images/jquery-ui/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes jquery-ui.html | 513 ++++++++++++++++++ js/jquery-ui.min.js | 13 + 56 files changed, 1974 insertions(+), 34 deletions(-) create mode 100644 _includes/tabs.html create mode 100644 css/jquery-ui.min.css create mode 100644 css/jquery-ui.structure.min.css create mode 100644 css/jquery-ui.theme.min.css create mode 100644 docs/user-guide/debugging-pods-and-replication-controllers.md create mode 100644 docs/user-guide/load-balancer.md create mode 100644 docs/user-guide/pods/_viewing-a-pod.md rename docs/user-guide/{pods.md => pods/index.md} (100%) create mode 100644 docs/user-guide/pods/multi-container.md create mode 100644 docs/user-guide/pods/pod-config.json create mode 100644 docs/user-guide/pods/pod-config.yaml create mode 100644 docs/user-guide/pods/pod-sample.json create mode 100644 docs/user-guide/pods/pod-sample.yaml create mode 100644 docs/user-guide/pods/pod-spec-common.json create mode 100644 docs/user-guide/pods/pod-spec-common.yaml create mode 100644 docs/user-guide/pods/single-container.md rename docs/user-guide/{replication-controller.md => replication-controller/index.md} (98%) create mode 100644 docs/user-guide/replication-controller/operations.md rename docs/user-guide/{ => replication-controller}/replication.yaml (100%) create mode 100644 docs/user-guide/resizing-a-replication-controller.md create mode 100644 docs/user-guide/rolling-updates.md rename docs/user-guide/{services.md => services/index.md} (99%) create mode 100644 docs/user-guide/services/load-balancer-sample.json create mode 100644 docs/user-guide/services/load-balancer-sample.yaml create mode 100644 docs/user-guide/services/operations.md create mode 100644 docs/user-guide/services/service-sample.json create mode 100644 docs/user-guide/services/service-sample.yaml create mode 100755 images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png create mode 100755 images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png create mode 100755 images/jquery-ui/ui-bg_flat_10_000000_40x100.png create mode 100755 images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png create mode 100755 images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png create mode 100755 images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png create mode 100755 images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png create mode 100755 images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png create mode 100755 images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png create mode 100755 images/jquery-ui/ui-icons_222222_256x240.png create mode 100755 images/jquery-ui/ui-icons_228ef1_256x240.png create mode 100644 images/jquery-ui/ui-icons_444444_256x240.png create mode 100644 images/jquery-ui/ui-icons_555555_256x240.png create mode 100644 images/jquery-ui/ui-icons_777620_256x240.png create mode 100644 images/jquery-ui/ui-icons_777777_256x240.png create mode 100644 images/jquery-ui/ui-icons_cc0000_256x240.png create mode 100755 images/jquery-ui/ui-icons_ef8c08_256x240.png create mode 100755 images/jquery-ui/ui-icons_ffd27a_256x240.png create mode 100644 images/jquery-ui/ui-icons_ffffff_256x240.png create mode 100755 jquery-ui.html create mode 100755 js/jquery-ui.min.js diff --git a/README.md b/README.md index 1583e70c0a..f502dfa44f 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,22 @@ To include a file that is hosted in the external, main Kubernetes repo, make sur * `PATHFROMK8SROOT`: The path to the file relative to the root of [the Kubernetes repo](https://github.com/kubernetes/kubernetes/tree/release-1.2), e.g. `/examples/rbd/foo.yaml` +## Using tabs for multi-language examples + +By specifying some inline CSV in a varable called `tabspec`, you can include a file +called `tabs.html` that generates tabs showing code examples in multiple langauges. + +