text:
.ext-el-mask {
    background-color: #000000;
}

.ext-el-mask-msg {
    border: 1px solid #444444;
    background: #666666;
}

.ext-el-mask-msg div {
    border: 1px solid #888888;
}

.x-panel {
    border-style: solid;
    border-color: #000000;
}

.x-panel-header {
    color: #eeeef0;
    border: 1px solid #000000;
    background-image: url(../images/slickness/panel/white-top-bottom.gif);
}

.x-panel-body {
    border-color: #000000;
    color: #111;
}

.x-panel-bbar .x-toolbar {
    border-color: #000000;
}

.x-panel-tbar .x-toolbar {
    border-color: #000000;
}

.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
    border-color: #000000;
}

.x-panel-body-noheader, .x-panel-mc .x-panel-body {
    border-color: #000000;
}

.x-panel-tl .x-panel-header {
    color: #eeeef0;
}

.x-panel-tc {
    background-image: url(../images/slickness/panel/top-bottom.gif);
}

.x-panel-tl {
    background-image: url(../images/slickness/panel/corners-sprite.gif);
    border-color: #000000;
}

.x-panel-tr {
    background-image: url(../images/slickness/panel/corners-sprite.gif);
}

.x-panel-bc {
    background-image: url(../images/slickness/panel/top-bottom.gif);
}

.x-panel-bl {
    background-image: url(../images/slickness/panel/corners-sprite.gif);
}

.x-panel-br {
    background-image: url(../images/slickness/panel/corners-sprite.gif);
}

.x-panel-mc {
    background: #171717;
}

.x-panel-mc .x-panel-body {
    background: transparent;
    border: 0 none;
    color: #eee !important;
}

.x-panel-ml {
    background-image: url(../images/slickness/panel/left-right.gif);
}

.x-panel-mr {
    background-image: url(../images/slickness/panel/left-right.gif);
}
/* Ghosting */
.x-panel-ghost {
    background: #161616;
}

.x-panel-ghost ul {
    border-color: #000000;
}

.x-grid-panel .x-panel-mc .x-panel-body {
    border: 1px solid #000000;
}
/* Grid */
.x-grid3-row {
    color: #000000;
    border: 1px solid #666;
    border-bottom: 1px solid #000;
}

.x-grid3-row-over {
    border: 1px solid #292929;
    border-left: 1px solid #666;
    background-image: url(../images/slickness/grid/row-over.gif);
}

.x-grid3-header {
    background-image: url(../images/slickness/grid/grid3-hrow.gif);
    background-color: #747474;
}

.x-grid3-hd-inner {
    color: #EEEEEE;
}

.x-grid3-header-pop-inner {
    border-left: 1px solid #000000;
    background-image: url(../images/slickness/grid/hd-pop.gif);
}

td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open {
    border-left: 1px solid #000000;
    border-right: 1px solid #000000;
}

.sort-desc .x-grid3-sort-icon {
    background-image: url(../images/slickness/grid/sort_desc.gif);
}

.sort-asc .x-grid3-sort-icon {
    background-image: url(../images/slickness/grid/sort_asc.gif);
}

td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner {
    background-image: url(../images/slickness/grid/grid3-hrow-over.gif);
    background-color: #333;
}

.x-dd-drag-proxy .x-grid3-hd-inner {
    background-image: url(../images/slickness/grid/grid3-hrow-over.gif);
}

.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker {
    background-image: url(../images/slickness/grid/grid-hrow.gif);
    color: #666;
    border-top: 1px solid #666 !important;
    border-right: 1px solid #000 !important;
}

.x-grid3-hd-btn {
    background-image: url(../images/slickness/grid/grid3-hd-btn.gif);
}

.x-grid3-body .x-grid3-td-expander {
    background-image: url(../images/slickness/grid/grid3-special-col-bg.gif);
}

.x-grid3-body .x-grid3-td-checker {
    background-image: url(../images/slickness/grid/grid3-special-col-bg.gif);
}

.x-grid3-body .x-grid3-td-numberer {
    background-image: url(../images/slickness/grid/grid3-special-col-bg.gif);
}

.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, .x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, .x-grid3-body .x-grid3-row-selected .x-grid3-td-expander {
    background-image: url(../images/slickness/grid/grid3-special-col-sel-bg.gif);
}

.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner {
    color: #eee;
}

.x-grid3-hd-row td {
    border-left: 1px solid #555;
    border-right: 1px solid #333;
}

.x-grid3-row-selected .x-grid3-cell, .x-grid3-row-selected .x-grid3-body-cell{
    color: #fff !important;
}

.x-grid3-row-selected {
    background: #333 !important;
    border: 1px solid #fff;
}

.x-grid-group-hd div {
    color: #223355;
}

.x-grid-group-hd {
    border: 1px solid #000;
    border-bottom: 2px solid #333;
}

.x-grid3-row-checker, .x-grid3-hd-checker {
    background-image: url(../images/slickness/grid/row-check-sprite.gif);
}
/* Menu */
.x-menu {
    border: 1px solid #000000;
    background-color: #393939;
    background-image: url(../images/slickness/menu/menu.gif);
}

.x-menu-sep {
    background-color: #4d4d4d;
    border-bottom: 1px solid #272727;
}

.x-menu-plain {
    background: #393939 !important;
}

.x-menu-item-active {
    background-image: url(../images/slickness/menu/item-over.gif);
    background-color: #3f3f3f;
    border: 1px solid #222222;
}

.x-menu a.x-menu-item {
    color: #eeeeee;
}

.x-cycle-menu .x-menu-item-checked {
    border: 1px solid #222 !important;
    background: #414140 url(../images/slickness/menu/item-selected.gif) repeat-x left bottom;
    padding: 0;
    /*margin : 1px 0px;*/
}

.x-menu-item-active a.x-menu-item {
    color: #ffffff;
}

.xg-hmenu-sort-asc .x-menu-item-icon {
    background-image: url(../images/slickness/grid/hmenu-asc.gif);
}

.xg-hmenu-sort-desc .x-menu-item-icon {
    background-image: url(../images/slickness/grid/hmenu-desc.gif);
}

.x-menu-item-icon {
    height: 14px;
    width: 14px;
}

.x-menu-check-item .x-menu-item-icon {
    background-image: url(../images/slickness/menu/unchecked.gif);
}

.x-menu-item-checked .x-menu-item-icon {
    background-image: url(../images/slickness/menu/checked.gif);
}

.x-menu-list-item .x-menu-group-item .x-menu-item-icon {
    background-image: url(../images/slickness/menu/group-unchecked.gif);
}

.x-menu-item-checked .x-menu-group-item .x-menu-item-icon {
    background-image: url(../images/slickness/menu/group-checked.gif);
}
/* Panel Tools */
.x-tool {
    background-image: url(../images/slickness/panel/header-sprites.gif);
    width: 27px;
    height: 15px;
    margin-top: -4px;
    margin-left: 0px;
}

legend .x-tool {
    margin-top: 0px;
}

.x-tool-close {
    background-position: 0 -0;
}

.x-tool-close-over {
    background-position: -27px 0;
}

.x-tool-minimize {
    background-position: 0 -15px;
}

.x-tool-minimize-over {
    background-position: -27px -15px;
}

.x-tool-maximize {
    background-position: 0 -30px;
}

.x-tool-maximize-over {
    background-position: -27px -30px;
}

.x-tool-restore {
    background-position: 0 -45px;
}

.x-tool-restore-over {
    background-position: -27px -45px;
}

.x-tool-toggle {
    background-position: 0 -60px;
}

.x-tool-toggle-over {
    background-position: -27px -60px;
}

.x-panel-collapsed .x-tool-toggle {
    background-position: 0 -75px;
}

.x-panel-collapsed .x-tool-toggle-over {
    background-position: -27px -75px;
}

.x-tool-gear {
    background-position: 0 -90px;
}

.x-tool-gear-over {
    background-position: -27px -90px;
}

.x-tool-pin {
    background-position: 0 -135px;
}

.x-tool-pin-over {
    background-position: -27px -135px;
}

.x-tool-unpin {
    background-position: 0 -150px;
}

.x-tool-unpin-over {
    background-position: -27px -150px;
}

.x-tool-right {
    background-position: 0 -165px;
}

.x-tool-right-over {
    background-position: -27px -165px;
}

.x-tool-left {
    background-position: 0 -180px;
}

.x-tool-left-over {
    background-position: -27px -180px;
}

.x-tool-up {
    background-position: 0 -210px;
}

.x-tool-up-over {
    background-position: -27px -210px;
}

.x-tool-down {
    background-position: 0 -195px;
}

.x-tool-down-over {
    background-position: -27px -195px;
}

.x-tool-refresh {
    background-position: 0 -225px;
}

.x-tool-refresh-over {
    background-position: -27px -225px;
}

.x-tool-minus {
    background-position: 0 -255px;
}

.x-tool-minus-over {
    background-position: -27px -255px;
}

.x-tool-plus {
    background-position: 0 -240px;
}

.x-tool-plus-over {
    background-position: -27px -240px;
}

.x-tool-search {
    background-position: 0 -270px;
}

.x-tool-search-over {
    background-position: -27px -270px;
}

.x-tool-save {
    background-position: 0 -285px;
}

.x-tool-save-over {
    background-position: -27px -285px;
}

.x-tool-help {
    background-position: 0 -300px;
}

.x-tool-help-over {
    background-position: -27px -300px;
}

.x-tool-print {
    background-position: 0 -315px;
}

.x-tool-print-over {
    background-position: -27px -315px;
}

.x-tool-wrench {
    background-position: 0 -330px;
}

.x-tool-wrench-over {
    background-position: -27px -330px;
}
/* Layout Tools */
.x-tool-collapse-south {
    background-position: 0 -195px;
}

.x-tool-collapse-south-over {
    background-position: -27px -195px;
}

.x-tool-collapse-north {
    background-position: 0 -210px;
}

.x-tool-collapse-north-over {
    background-position: -27px -210px;
}

.x-tool-collapse-west {
    background-position: 0 -180px;
}

.x-tool-collapse-west-over {
    background-position: -27px -180px;
}

.x-tool-collapse-east {
    background-position: 0 -165px;
}

.x-tool-collapse-east-over {
    background-position: -27px -165px;
}

.x-tool-expand-south {
    background-position: 0 -210px;
}

.x-tool-expand-south-over {
    background-position: -27px -210px;
}

.x-tool-expand-north {
    background-position: 0 -195px;
}

.x-tool-expand-north-over {
    background-position: -27px -195px;
}

.x-tool-expand-west {
    background-position: 0 -165px;
}

.x-tool-expand-west-over {
    background-position: -27px -165px;
}

.x-tool-expand-east {
    background-position: 0 -180px;
}

.x-tool-expand-east-over {
    background-position: -27px -180px;
}

.x-tool-expand-north, .x-tool-expand-south {
    float: right;
    margin: 0px 3px;
}

.x-tool-expand-east, .x-tool-expand-west {
    float: none;
    margin: 0px -4px;
}

.x-accordion-hd .x-tool-toggle-over {
    background-position: -27px -255px;
}

.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over {
    background-position: -27px -240px;
}
/* Buttons */
.x-btn-text {
    color: #eeeef0;
    font-weight: bold !important;
}

.x-btn-left {
    background-image: url(../images/slickness/button/btn-sprite.gif);
}

.x-btn-right {
    background-image: url(../images/slickness/button/btn-sprite.gif);
}

.x-btn-center {
    background-image: url(../images/slickness/button/btn-sprite.gif);
}

.x-btn-menu-arrow-wrap .x-btn-center button {
    background-image: url(../images/slickness/button/btn-arrow-light.gif);
}

.x-btn-with-menu .x-btn-center em {
    background-image: url(../images/slickness/toolbar/btn-arrow-light.gif);
}

.x-btn-text-icon .x-btn-with-menu .x-btn-center em {
    background-image: url(../images/slickness/toolbar/btn-arrow-light.gif);
}
/* Layout classes */
.x-border-layout-ct {
    background: #ddd; /* f1f2f4 */
}

.x-accordion-hd {
    background-image: url(../images/slickness/panel/light-hd.gif);
}

.x-layout-collapsed {
    background-color: #222222;
    border-color: #000000;
}

.x-layout-collapsed-over {
    background-color: #444444;
}
/* qtips */
.x-tip .x-tip-close {
    background-image: url(../images/slickness/qtip/close.gif);
}

.x-tip .x-tip-tc {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-tl {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-tr {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-bc {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-bl {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-br {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-ml {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-mr {
    background-image: url(../images/slickness/qtip/tip-sprite.gif);
}

.x-tip .x-tip-header-text {
    color: #ffffff;
}

.x-tip .x-tip-body {
    color: #eeeeee;
}

.x-form-invalid-icon {
    background-image: url(../images/slickness/form/exclamation.gif);
}

.x-form-invalid-tip .x-tip-tc {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-tl {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-tr {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-bc {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-bl {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-br {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-ml {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-mr {
    background-image: url(../images/slickness/form/error-tip-corners.gif);
}

.x-form-invalid-tip .x-tip-body {
    background-image: url(../images/slickness/form/exclamation.gif);
}
/* Toolbars */
.x-toolbar {
    border-color: #444444;
    background: #282828 url(../images/slickness/toolbar/bg.gif) repeat-x top left;
}

.x-toolbar button {
    color: #eeeef0;
}

.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button {
    background-image: url(../images/slickness/toolbar/btn-arrow-light.gif);
}

.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button {
    background-image: url(../images/slickness/toolbar/btn-arrow-light.gif);
}

.x-toolbar .x-btn-over .x-btn-left {
    background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif);
}

.x-toolbar .x-btn-over .x-btn-right {
    background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif);
}

.x-toolbar .x-btn-over .x-btn-center {
    background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif);
}

.x-toolbar .x-btn-over button {
    color: #ffffff;
}

.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left {
    background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif);
}

.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right {
    background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif);
}

.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center {
    background-image: url(../images/slickness/toolbar/tb-btn-sprite.gif);
}

.x-toolbar .ytb-sep {
    background-image: url(../images/slickness/grid/grid-split.gif);
}

.x-paging-info, .ytb-text {
    color: #eeeef0;
}
/* Form */
.x-form-field-wrap .x-form-trigger {
    background-image: url(../images/slickness/form/trigger.gif);
    border-bottom: 1px solid #a3a3a3;
}

.x-form-field-wrap .x-form-date-trigger {
    background-image: url(../images/slickness/form/date-trigger.gif);
}

.x-form-field-wrap .x-form-clear-trigger {
    background-image: url(../images/slickness/form/clear-trigger.gif);
}

.x-form-field-wrap .x-form-search-trigger {
    background-image: url(../images/slickness/form/search-trigger.gif);
}

.x-form-text, textarea.x-form-field {
    border: 1px solid #a3a3a3;
}

.x-form-select-one {
    border: 1px solid #a3a3a3;
}

.x-item-disabled .x-form-trigger-over {
    border-bottom: 1px solid #a3a3a3;
}

.x-item-disabled .x-form-trigger-click {
    border-bottom: 1px solid #a3a3a3;
}

.x-form fieldset {
    border: 1px solid #a3a3a3;
}

.x-form-item-label {
    color: #eee;
}

.x-panel-noborder .x-form-item-label {
    color: #111;
}

.x-trigger-wrap-focus .x-form-trigger {
    border-bottom: 1px solid #eee !important;
}

.x-form-focus, textarea.x-form-focus {
    border: 1px solid #eee !important;
}

.x-panel-noborder .x-form-focus, textarea.x-form-focus {
    border: 1px solid #000;
}
/* Tabs */
.x-tab-panel-header, .x-tab-panel-footer {
    background: #000000;
    border-color: #4a4a4a;
}

.x-tab-panel-header {
    border-color: transparent;
}

.x-tab-panel-footer {
    border-color: #4a4a4a;
}

ul.x-tab-strip-top {
    background: #000000 url(../images/slickness/tabs/tab-strip-bg.gif) repeat-x left top;
    border-color: #4a4a4a;
}

ul.x-tab-strip-bottom {
    background-image: url(../images/slickness/tabs/tab-strip-btm-bg.gif);
    border-color: #4a4a4a;
}

.x-tab-strip span.x-tab-strip-text {
    color: #cccccc;
}

.x-tab-strip-over span.x-tab-strip-text {
    color: #ffffff;
}

.x-tab-strip-active span.x-tab-strip-text {
    color: #eeeef0;
}

.x-tab-strip-top .x-tab-right {
    background-image: url(../images/slickness/tabs/tabs-sprite.gif);
}

.x-tab-strip-top .x-tab-left {
    background-image: url(../images/slickness/tabs/tabs-sprite.gif);
}

.x-tab-strip-top .x-tab-strip-inner {
    background-image: url(../images/slickness/tabs/tabs-sprite.gif);
}

.x-tab-strip-bottom .x-tab-right {
    background-image: url(../images/slickness/tabs/tab-btm-inactive-right-bg.gif);
}

.x-tab-strip-bottom .x-tab-left {
    background-image: url(../images/slickness/tabs/tab-btm-inactive-left-bg.gif);
}

.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
    background-image: url(../images/slickness/tabs/tab-btm-right-bg.gif);
}

.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
    background-image: url(../images/slickness/tabs/tab-btm-left-bg.gif);
}

.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
    background-image: url(../images/slickness/tabs/tab-close.gif);
}

.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover {
    background-image: url(../images/slickness/tabs/tab-close.gif);
}

.x-tab-panel-body {
    border-color: #4a4a4a;
    background: #eeeeee;
}

.x-tab-panel-bbar .x-toolbar {
    border-color: #000000;
}

.x-tab-panel-tbar .x-toolbar {
    border-color: #000000;
}

.x-tab-panel-header-plain .x-tab-strip-spacer {
    border-color: #000000;
    background: #353535;
}

.x-tab-scroller-left {
    background-image: url(../images/slickness/tabs/scroll-left.gif);
    border-color: #000000;
}

.x-tab-scroller-right {
    background-image: url(../images/slickness/tabs/scroll-right.gif);
    border-color: #000000;
}
/* Window */
.x-window-proxy {
    background: #161616;
    border-color: #000000;
}

.x-window-tl .x-window-header {
    color: #eeeef0;
}

.x-window-tc {
    background-image: url(../images/slickness/window/top-bottom.png);
}

.x-window-tl {
    background-image: url(../images/slickness/window/left-corners.png);
}

.x-window-tr {
    background-image: url(../images/slickness/window/right-corners.png);
}

.x-window-bc {
    background-image: url(../images/slickness/window/top-bottom.png);
}

.x-window-bl {
    background-image: url(../images/slickness/window/left-corners.png);
}

.x-window-br {
    background-image: url(../images/slickness/window/right-corners.png);
}

.x-window-mc {
    border: 1px solid #333333;
    background: #222;
    color: #eeeeee;
}

.x-window-ml {
    background-image: url(../images/slickness/window/left-right.png);
}

.x-window-mr {
    background-image: url(../images/slickness/window/left-right.png);
}

.x-panel-ghost .x-window-tl {
    border-color: #000000;
}

.x-panel-collapsed .x-window-tl {
    border-color: #000000;
}

.x-window-plain .x-window-mc {
    color: #eeeeee;
    background: #161616;
    border-left: 1px solid #111111;
    border-top: 1px solid #111111;
    border-bottom: 1px solid #222222;
    border-right: 1px solid #222222;
}

.x-window-plain .x-window-body {
    border-left: 1px solid #555555;
    border-top: 1px solid #555555;
    border-bottom: 1px solid #333333;
    border-right: 1px solid #333333;
    background: transparent !important;
}

body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc {
    color: #eeeeee;
    background-color: #0e0e0e;
}
/* Date Picker */
.x-date-picker {
    border: 1px solid #000000;
    background: #ffffff;
}

.x-date-middle, .x-date-left, .x-date-right {
    background-image: url(../images/slickness/shared/hd-sprite.gif);
}

.x-date-middle .x-btn-with-menu .x-btn-center em {
    background-image: url(../images/slickness/toolbar/btn-arrow-light.gif);
}

.x-date-right a {
    background-image: url(../images/slickness/shared/right-btn.gif);
}

.x-date-left a {
    background-image: url(../images/slickness/shared/left-btn.gif);
}

.x-date-inner th {
    background-image: url(../images/slickness/shared/glass-bg.gif);
    border-bottom: 1px solid #000000;
    color: #eeeef0;
}

.x-date-inner .x-date-selected a {
    background-image: url(../images/slickness/shared/glass-bg.gif);
    border: 1px solid #000000;
    color: #eeeef0;
}

.x-date-bottom {
    border-top: 1px solid #000000;
    background-image: url(../images/slickness/shared/glass-bg.gif);
}

.x-date-mp-btns {
    background-image: url(../images/slickness/shared/glass-bg.gif);
}

td.x-date-mp-sel a {
    background-image: url(../images/slickness/shared/glass-bg.gif);
    border: 1px solid #000000;
    color: #eeeef0 !important;
}

.x-date-mp-ybtn a {
    background-image: url(../images/slickness/panel/tool-sprites.gif);
}

.x-date-mp-btns button {
    background-image: url(../images/slickness/shared/glass-bg.gif);
    border-color: #eeeeee #bbbbbb #bbbbbb #eeeeee;
    color: #eeeef0;
}

.x-date-inner a {
    color: #000000;
}

.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover {
    color: #eeeef0;
    background: #353535;
}

td.x-date-mp-month a, td.x-date-mp-year a {
    color: #000000;
}

td.x-date-mp-month a:hover, td.x-date-mp-year a:hover {
    color: #eeeef0;
    background: #353535;
}
/* misc */
.x-html-editor-wrap {
    border-color: #000000;
}
/* Editor */
.x-html-editor-tb .x-btn-text {
    background: transparent url(../images/slickness/editor/tb-sprite.gif) no-repeat;
}
/* FieldSet*/
.x-fieldset-header-text {
    color: #eeeeee;
}
/* Borders go last for specificity */
.x-panel-noborder .x-panel-body-noborder {
    border-width: 0;
}

.x-panel-noborder .x-panel-header-noborder {
    border-width: 0;
    border-bottom: 1px solid #000000;
}

.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
    border-width: 0;
    border-bottom: 1px solid #000000;
}

.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
    border-width: 0;
    border-top: 1px solid #000000;
}

.x-window-noborder .x-window-mc {
    border-width: 0;
}

.x-window-plain .x-window-body-noborder {
    border-width: 0;
}

.x-tab-panel-noborder .x-tab-panel-body-noborder {
    border-width: 0;
}

.x-tab-panel-noborder .x-tab-panel-header-noborder {
    border-top-width: 0;
    border-left-width: 0;
    border-right-width: 0;
}

.x-tab-panel-noborder .x-tab-panel-footer-noborder {
    border-bottom-width: 0;
    border-left-width: 0;
    border-right-width: 0;
}

.x-tab-panel-bbar-noborder .x-toolbar {
    border-width: 0;
    border-top: 1px solid #000000;
}

.x-tab-panel-tbar-noborder .x-toolbar {
    border-width: 0;
    border-bottom: 1px solid #000000;
}
/* Progress Bar*/
.x-progress-wrap {
    border: 1px solid #4c4c4c;
}

.x-progress-inner {
    background: #2d2d2d url(../images/slickness/progress/progress-bg.gif) repeat-x;
}

.x-progress-bar {
    height: 18px;
    background: transparent url( ../images/slickness/progress/progress-ind.gif ) repeat-x left center;
    border: none;
}

.x-progress-text {
    color: #000;
}

.x-progress-text-back {
    color: #eee;
}
/* Dialog */
.x-window-dlg .ext-mb-icon {
    float: left;
    width: 58px;
    height: 48px;
}

.ext-ie .x-window-dlg .ext-mb-icon {
    width: 55px; /* 3px IE margin issue */
}

.x-window-dlg .ext-mb-info {
    background: transparent url(../images/slickness/window/icon-info.gif) no-repeat top left;
}

.x-window-dlg .ext-mb-warning {
    background: transparent url(../images/slickness/window/icon-warning.gif) no-repeat top left;
}

.x-window-dlg .ext-mb-question {
    background: transparent url(../images/slickness/window/icon-question.gif) no-repeat top left;
}

.x-window-dlg .ext-mb-error {
    background: transparent url(../images/slickness/window/icon-error.gif) no-repeat top left;
}
/* Combo */
.x-combo-list {
    border: 1px solid #333;
    background: #ddd;
}

.x-resizable-pinned .x-combo-list-inner {
    /*border-bottom:1px solid #333;*/
}

.x-combo-list .x-combo-selected {
    border: 1px dotted #888 !important;
    background: #ccc;
}

.x-combo-noedit {
    cursor: pointer;
}

.x-combo-list .x-toolbar {
    border-top: 1px solid #333;
}


text:
<?php

class Ess_M2ePro_Block_Adminhtml_Amazon_Template_Description_Category_Chooser_Tabs_Recent
    extends Mage_Adminhtml_Block_Widget
{
    protected $_selectedCategory = array();

    //########################################

    public function __construct()
    {
        parent::__construct();

        // Initialization block
        // ---------------------------------------
        $this->setId('amazonTemplateDescriptionCategoryChooserRecent');
        // ---------------------------------------

        // Set template
        // ---------------------------------------
        $this->setTemplate('M2ePro/amazon/template/description/category/chooser/tabs/recent.phtml');
        // ---------------------------------------
    }

    //########################################

    public function getCategories()
    {
        return Mage::helper('M2ePro/Component_Amazon_Category')->getRecent(
            $this->getRequest()->getPost('marketplace_id'),
            array('product_data_nick' => $this->getRequest()->getPost('product_data_nick'),
                  'browsenode_id'     => $this->getRequest()->getPost('browsenode_id'),
                  'path'              => $this->getRequest()->getPost('category_path'))
        );
    }

    //########################################
}

redpajama_set_name: RedPajamaGithub


text:
#ifndef INCLUDED_CGUTIL_H
#define INCLUDED_CGUTIL_H

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include <glib.h>
#include <stdio.h>

#include "c4.h"
#include "codegen.h"

void CGUtil_print_header(Codegen *codegen, C4_Model *model);
void CGUtil_print_footer(Codegen *codegen);
void CGUtil_compile(Codegen *codegen, C4_Model *model);

void CGUtil_prep(Codegen *codegen, C4_Model *model, gboolean is_init);

/*
void CGUtil_model_init(Codegen *codegen);
void CGUtil_model_end(Codegen *codegen);
*/

/**/

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* INCLUDED_CODEGEN_H */


text:
var lang = {
	"lang_code": "es",
	"lang_name": "Español",
	"title": "Retención de datos en Suiza",
	"town_zuerich": "Zúrich",
	"town_bern": "Bern",
	"town_basel": "Basilea",
	"town_genf": "Ginebra",
	"town_luzern": "Lucerna",
	"town_lausanne": "Lausana",
	"weekday_short_mon": "L",
	"weekday_short_tue": "M",
	"weekday_short_wed": "X",
	"weekday_short_thu": "J",
	"weekday_short_fri": "V",
	"weekday_short_sat": "S",
	"weekday_short_sun": "D",
	"msg_type_fb": "Entrada Facebook",
	"msg_type_tw": "Tweet",
	"msg_type_sm": "SMS %",
	"msg_type_ca": "Llamada %",
	"msg_type_ma": "Correo electrónico %",
	"word_from": "de",
	"word_to": "a",
	"word_From": "De",
	"word_To": "A",
	"word_Content": "Contenido",
	"word_number": "Num.",
	"social_info_name": "Nombre",
	"social_info_org": "Grupo",
	"social_info_email_out": "Correos electrónicos a Balthasar",
	"social_info_email_in": "Correos electrónicos de Balthasar",
	"social_info_email_co": "Balthasar en copia de correos electrónicos",
	"social_info_sms_out": "SMS a Balthasar",
	"social_info_sms_in": "SMS de Balthasar",
	"social_info_call_out": "Llamadas a Balthasar",
	"social_info_call_in": "Llamadas de Balthasar",
	"social_info_maincomtimes": "Tiempo principal de comunicación",
	"contact_adlethorensgoumaz": "Adèle Thorens Goumaz",
	"contact_arztrztin": "Médico/a",
	"contact_assistentin": "Asistente",
	"contact_asylchmailingliste": "Lista de correo asyl.ch",
	"contact_asylchnewsletter": "Boletín informativo asyl.ch",
	"contact_balthasarglttli": "Balthasar Glättli",
	"contact_brigittemarti": "Brigitte Marti",
	"contact_bundesrat": "Consejo federal",
	"contact_digigesmailingliste": "Lista de correo digiges",
	"contact_diverse": "varios",
	"contact_doodlenewsletter": "Boletín informativo doodle",
	"contact_facebooknewsletter": "Boletín informativo Facebook",
	"contact_factschnewsletter": "Boletín informativo facts.ch",
	"contact_familie": "Familia",
	"contact_gemeinderat": "Consejo local",
	"contact_googlealerts": "Alertas Google",
	"contact_googlecalendar": "Calendario Google",
	"contact_googlenewsletter": "Boletín informativo Google",
	"contact_grne": "Partido Verde",
	"contact_hyperalertsnewsletter": "boletín informativo hyperalerts",
	"contact_journalistin": "Periodista",
	"contact_kantonsrat": "Consejo de cantón",
	"contact_medien": "Medios de comunicacion",
	"contact_mediendienstezuerichch": "mediendienste@zuerich.ch",
	"contact_minlimartipartnerin": "Min Li Marti (pareja)",
	"contact_miriambehrens": "Miriam Behrens",
	"contact_mutter": "Madre",
	"contact_nationalrat": "Counsejo nacional",
	"contact_netzwochechnewsletter": "boletín informativo netzwoche.ch",
	"contact_newsadminchnewsletter": "boletín informativo news.admin.ch",
	"contact_newsaktuellch": "newsaktuell.ch",
	"contact_ngo": "NGO",
	"contact_ngomieterrecht": "ONG tenant-right",
	"contact_ngomigrationasyl": "ONG migration/asylum",
	"contact_nzznewsletter": "boletín informativo NZZ",
	"contact_parlamentarierin": "Miembro del Parlamento",
	"contact_parlamentsnewsletter": "Boletín informativo Parlamento",
	"contact_person": "Persona",
	"contact_pfarrer": "Sacerdote",
	"contact_politik": "Política",
	"contact_politnetznewsletter": "Boletín informativo Politnetz",
	"contact_rechtsanwalt": "Abogado",
	"contact_ronorpnetnewsletter": "Boletín informativo ronorp.net",
	"contact_sonstigerkontakt": "Otro contacto",
	"contact_stadtrat": "Ayuntamiento",
	"contact_stnderat": "Consejo de los Estados",
	"contact_swissconsortiumnewsletter": "Boletín informativo swissconsortium",
	"contact_tamedianewsletter": "Boletín informativo Tamedia",
	"contact_twitter": "Twitter",
	"contact_uelileuenberger": "Ueli Leuenberger",
	"contact_universitt": "Universidad",
	"contact_vater": "Padre",
	"contact_verteiler": "Lista de correo",
	"contact_wordpresscomnewsletter": "Boletín informativo wordpress.com",
	"contact_xingcomnewsletter": "Boletín informativo xing.com"
}


text:
package org.dbmaintain.database.impl;

import org.dbmaintain.database.Database;
import org.dbmaintain.database.DatabaseConnection;
import org.dbmaintain.database.IdentifierProcessor;
import org.dbmaintain.database.SQLHandler;

import java.util.Set;

/**
 * Implementation of {@link org.dbmaintain.database.Database} for an IBM DB2 database
 *
 * @author Tim Ducheyne
 * @author Tuomas Jormola
 * @author Frederick Beernaert
 * @author Filip Neven
 */
public class Db2Database extends Database {

    public Db2Database(DatabaseConnection databaseConnection, IdentifierProcessor identifierProcessor) {
        super(databaseConnection, identifierProcessor);
    }

    /**
     * @return the database dialect supported by this db support class, not null
     */
    @Override
    public String getSupportedDatabaseDialect() {
        return "db2";
    }

    /**
     * Returns the names of all tables in the database.
 TODO check table types A = Alias G = Global temporary table
     * H = Hierarchy table L = Detached table N = Nickname S = Materialized query table T = Table (untyped) U = Typed
     * table V = View (untyped) W = Typed view
     *
     * @return The names of all tables in the database
     */
    @Override
    public Set<String> getTableNames(String schemaName) {
        return getSQLHandler().getItemsAsStringSet("select TABNAME from SYSCAT.TABLES where TABSCHEMA = '" + schemaName + "' and TYPE = 'T'", getDataSource());
    }

    /**
     * Gets the names of all columns of the given table.
     *
     * @param tableName The table, not null
     * @return The names of the columns of the table with the given name
     */
    @Override
    public Set<String> getColumnNames(String schemaName, String tableName) {
        return getSQLHandler().getItemsAsStringSet("select COLNAME from SYSCAT.COLUMNS where TABNAME = '" + tableName + "' and TABSCHEMA = '" + schemaName + "'", getDataSource());
    }

    /**
     * Retrieves the names of all the views in the database schema.

     * TODO check view types V = View (untyped) W = Typed view
     *
     * @return The names of all views in the database
     */
    @Override
    public Set<String> getViewNames(String schemaName) {
        return getSQLHandler().getItemsAsStringSet("select TABNAME from SYSCAT.TABLES where TABSCHEMA = '" + schemaName + "' and TYPE = 'V'", getDataSource());
    }

    /**
     * Retrieves the names of all the sequences in the database schema.
     *
     * @return The names of all sequences in the database
     */
    @Override
    public Set<String> getSequenceNames(String schemaName) {
        return getSQLHandler().getItemsAsStringSet("select SEQNAME from SYSCAT.SEQUENCES where SEQTYPE = 'S' AND SEQSCHEMA = '" + schemaName + "'", getDataSource());
    }

    /**
     * Retrieves the names of all the triggers in the database schema.
     *
     * @return The names of all triggers in the database
     */
    @Override
    public Set<String> getTriggerNames(String schemaName) {
        return getSQLHandler().getItemsAsStringSet("select TRIGNAME from SYSCAT.TRIGGERS where TRIGSCHEMA = '" + schemaName + "'", getDataSource());
    }

    /**
     * Retrieves the names of all the types in the database schema.
     *
     * @return The names of all types in the database
     */
    @Override
    public Set<String> getTypeNames(String schemaName) {
        return getSQLHandler().getItemsAsStringSet("select TYPENAME from SYSCAT.DATATYPES where TYPESCHEMA = '" + schemaName + "'", getDataSource());
    }

    /**
     * Disables all referential constraints (e.g. foreign keys) on all table in the schema
     *
     * @param schemaName The schema, not null
     */
    @Override
    public void disableReferentialConstraints(String schemaName) {
        Set<String> tableNames = getTableNames(schemaName);
        for (String tableName : tableNames) {
            disableReferentialConstraints(schemaName, tableName);
        }
    }

    // todo refactor (see oracle)

    protected void disableReferentialConstraints(String schemaName, String tableName) {
        SQLHandler sqlHandler = getSQLHandler();
        Set<String> constraintNames = sqlHandler.getItemsAsStringSet("select CONSTNAME from SYSCAT.TABCONST where TYPE = 'F' and TABNAME = '" + tableName + "' and TABSCHEMA = '" + schemaName + "'", getDataSource());
        for (String constraintName : constraintNames) {
            sqlHandler.execute("alter table " + qualified(schemaName, tableName) + " drop constraint " + quoted(constraintName), getDataSource());
        }
    }

    /**
     * Disables all value constraints (e.g. not null) on all tables in the schema
     *
     * @param schemaName The schema, not null
     */
    @Override
    public void disableValueConstraints(String schemaName) {
        Set<String> tableNames = getTableNames(schemaName);
        for (String tableName : tableNames) {
            disableValueConstraints(schemaName, tableName);
        }
    }

    // todo refactor (see oracle)

    protected void disableValueConstraints(String schemaName, String tableName) {
        SQLHandler sqlHandler = getSQLHandler();

        // disable all check and unique constraints
        Set<String> constraintNames = sqlHandler.getItemsAsStringSet("select CONSTNAME from SYSCAT.TABCONST where TYPE in ('K', 'U') and TABNAME = '" + tableName + "' and TABSCHEMA = '" + schemaName + "'", getDataSource());
        for (String constraintName : constraintNames) {
            sqlHandler.execute("alter table " + qualified(schemaName, tableName) + " drop constraint " + quoted(constraintName), getDataSource());
        }

        // Retrieve the name of the primary key columns, since we cannot remove the not-null constraint on these columns
        Set<String> primaryKeyColumnNames = sqlHandler.getItemsAsStringSet("select COLNAME from SYSCAT.COLUMNS where KEYSEQ is not null and TABNAME = '" + tableName + "' and TABSCHEMA = '" + schemaName + "'", getDataSource());

        // disable all not null constraints
        Set<String> notNullColumnNames = sqlHandler.getItemsAsStringSet("select COLNAME from SYSCAT.COLUMNS where NULLS = 'N' and TABNAME = '" + tableName + "' and TABSCHEMA = '" + schemaName + "'", getDataSource());
        for (String notNullColumnName : notNullColumnNames) {
            if (primaryKeyColumnNames.contains(notNullColumnName)) {
                // Do not remove PK constraints
                continue;
            }
            sqlHandler.execute("alter table " + qualified(schemaName, tableName) + " alter column " + quoted(notNullColumnName) + " drop not null", getDataSource());
            sqlHandler.execute("call SYSPROC.ADMIN_CMD('REORG TABLE " + qualified(schemaName, tableName) + "')", getDataSource());
        }
    }

    /**
     * Returns the value of the sequence with the given name.
 Note: this can have the side-effect of increasing the
     * sequence value.
     *
     * @param sequenceName The sequence, not null
     * @return The value of the sequence with the given name
     */
    @Override
    public long getSequenceValue(String schemaName, String sequenceName) {
        return getSQLHandler().getItemAsLong("select next value for " + qualified(schemaName, sequenceName) + " from SYSIBM.SYSDUMMY1", getDataSource());
    }

    /**
     * Sets the next value of the sequence with the given sequence name to the given sequence value.
     *
     * @param sequenceName     The sequence, not null
     * @param newSequenceValue The value to set
     */
    @Override
    public void incrementSequenceToValue(String schemaName, String sequenceName, long newSequenceValue) {
        getSQLHandler().execute("alter sequence " + qualified(schemaName, sequenceName) + " restart with " + newSequenceValue, getDataSource());
    }

    /**
     * Gets the names of all identity columns of the given table.
     *

     * todo check, at this moment the PK columns are returned
     *
     * @param tableName The table, not null
     * @return The names of the identity columns of the table with the given name
     */
    @Override
    public Set<String> getIdentityColumnNames(String schemaName, String tableName) {
        return getSQLHandler().getItemsAsStringSet("select COLNAME from SYSCAT.COLUMNS where KEYSEQ is not null and TABNAME = '" + tableName + "' and TABSCHEMA = '" + schemaName + "'", getDataSource());
    }

    /**
     * Increments the identity value for the specified identity column on the specified table to the given value. If
     * there is no identity specified on the given primary key, the method silently finishes without effect.
     *
     * @param tableName          The table with the identity column, not null
     * @param identityColumnName The column, not null
     * @param identityValue      The new value
     */
    @Override
    public void incrementIdentityColumnToValue(String schemaName, String tableName, String identityColumnName, long identityValue) {
        getSQLHandler().execute("alter table " + qualified(schemaName, tableName) + " alter column " + quoted(identityColumnName) + " restart with " + identityValue, getDataSource());
    }

    /**
     * Sets the current schema of the database. If a current schema is set, it does not need to be specified
     * explicitly in the scripts.
     */
    @Override
    public void setDatabaseDefaultSchema() {
        getSQLHandler().execute("set schema " + getDefaultSchemaName(), getDataSource());
    }

    /**
     * Enables or disables the setting of identity value in insert and update statements.
     * By default some databases do not allow to set values of identity columns directly from insert/update
     * statements. If supported, this method will enable/disable this behavior.
     *
     * @param schemaName The schema name, not null
     * @param tableName  The table with the identity column, not null
     * @param enabled    True to enable, false to disable
     */
    @Override
    public void setSettingIdentityColumnValueEnabled(String schemaName, String tableName, boolean enabled) {
        // nothing to do, db2 allows setting values for identity columns
    }

    /**
     * Sequences are supported.
     *
     * @return True
     */
    @Override
    public boolean supportsSequences() {
        return true;
    }

    /**
     * Triggers are supported.
     *
     * @return True
     */
    @Override
    public boolean supportsTriggers() {
        return true;
    }

    /**
     * Identity columns are supported.
     *
     * @return True
     */
    @Override
    public boolean supportsIdentityColumns() {
        return true;
    }

    /**
     * Types are supported
     *
     * @return true
     */
    @Override
    public boolean supportsTypes() {
        return true;
    }

    /**
     * Setting the default schema is supported.
     *
     * @return True
     */
    @Override
    public boolean supportsSetDatabaseDefaultSchema() {
        return true;
    }
}


text:
__doc__ = """

Helpers to use scoped values within async functions.

Similar to AsyncContext in that the scope "pauses" and "resumes"
as the scheduler pauses and resumes the execution of the function
the scoped values are defined/overridden within.

See tests/test_scoped_value.py for examples.

"""

import qcore

from . import contexts

_empty_context = qcore.empty_context

class AsyncScopedValue(object):
    def __init__(self, default):
        self._value = default

    def get(self):
        return self._value

    def set(self, value):
        self._value = value

    def override(self, value):
        """Temporarily overrides the old value with the new one."""
        return _AsyncScopedValueOverrideContext(self, value)

    def __call__(self):
        """Same as get."""
        return self._value

    def __str__(self):
        return 'AsyncScopedValue(%s)' % str(self._value)

    def __repr__(self):
        return 'AsyncScopedValue(%s)' % repr(self._value)

class _AsyncScopedValueOverrideContext(contexts.AsyncContext):
    def __init__(self, target, value):
        self._target = target
        self._value = value
        self._old_value = None

    def resume(self):
        self._old_value = self._target._value
        self._target._value = self._value

    def pause(self):
        self._target._value = self._old_value

    def __repr__(self):
        return '_AsyncScopedValueOverrideContext(target=%r, value=%r)' % (self._target, self._value)

class _AsyncPropertyOverrideContext(contexts.AsyncContext):
    def __init__(self, target, property_name, value):
        self._target = target
        self._property_name = property_name
        self._value = value
        self._old_value = None

    def resume(self):
        self._old_value = getattr(self._target, self._property_name)
        setattr(self._target, self._property_name, self._value)

    def pause(self):
        setattr(self._target, self._property_name, self._old_value)

    def __repr__(self):
        return '_AsyncPropertyOverrideContext(target=%r, property_name=%r, value=%r)' % (
            self._target,
            self._property_name,
            self._value
        )

async_override = _AsyncPropertyOverrideContext
globals()['async_override'] = async_override


text:
 * automate signature and checksum verification of blobs
 * bug fix: make `openvpn.crl_pem` actually be optional
 * upgrade: openvpn now 2.3.13 (was 2.3.12)


text:
require 'cocoa/bindings/NSObject'
module Cocoa
  class NSManagedObjectContext < Cocoa::NSObject
    attach_method :assignObject, :args=>2, :names=>[:toPersistentStore], :types=>["@", "@"], :retval=>"v"
    attach_method :concurrencyType, :args=>0, :names=>[], :types=>[], :retval=>"Q"
    attach_method :countForFetchRequest, :args=>2, :names=>[:error], :types=>["@", "^@"], :retval=>"Q"
    attach_method :deleteObject, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :deletedObjects, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :detectConflictsForObject, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :executeFetchRequest, :args=>2, :names=>[:error], :types=>["@", "^@"], :retval=>"@"
    attach_method :existingObjectWithID, :args=>2, :names=>[:error], :types=>["@", "^@"], :retval=>"@"
    attach_method :hasChanges, :args=>0, :names=>[], :types=>[], :retval=>"B"
    attach_method :initWithConcurrencyType, :args=>1, :names=>[], :types=>["Q"], :retval=>"@"
    attach_method :insertObject, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :insertedObjects, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :lock, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :mergeChangesFromContextDidSaveNotification, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :mergePolicy, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :objectRegisteredForID, :args=>1, :names=>[], :types=>["@"], :retval=>"@"
    attach_method :objectWithID, :args=>1, :names=>[], :types=>["@"], :retval=>"@"
    attach_method :observeValueForKeyPath, :args=>4, :names=>[:ofObject, :change, :context], :types=>["@", "@", "@", "^v"], :retval=>"v"
    attach_method :obtainPermanentIDsForObjects, :args=>2, :names=>[:error], :types=>["@", "^@"], :retval=>"B"
    attach_method :parentContext, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :performBlock, :args=>1, :names=>[], :types=>["@?"], :retval=>"v"
    attach_method :performBlockAndWait, :args=>1, :names=>[], :types=>["@?"], :retval=>"v"
    attach_method :persistentStoreCoordinator, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :processPendingChanges, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :propagatesDeletesAtEndOfEvent, :args=>0, :names=>[], :types=>[], :retval=>"B"
    attach_method :redo, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :refreshObject, :args=>2, :names=>[:mergeChanges], :types=>["@", "B"], :retval=>"v"
    attach_method :registeredObjects, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :reset, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :retainsRegisteredObjects, :args=>0, :names=>[], :types=>[], :retval=>"B"
    attach_method :rollback, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :save, :args=>1, :names=>[], :types=>["^@"], :retval=>"B"
    attach_method :setMergePolicy, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :setParentContext, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :setPersistentStoreCoordinator, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :setPropagatesDeletesAtEndOfEvent, :args=>1, :names=>[], :types=>["B"], :retval=>"v"
    attach_method :setRetainsRegisteredObjects, :args=>1, :names=>[], :types=>["B"], :retval=>"v"
    attach_method :setStalenessInterval, :args=>1, :names=>[], :types=>["d"], :retval=>"v"
    attach_method :setUndoManager, :args=>1, :names=>[], :types=>["@"], :retval=>"v"
    attach_method :stalenessInterval, :args=>0, :names=>[], :types=>[], :retval=>"d"
    attach_method :tryLock, :args=>0, :names=>[], :types=>[], :retval=>"B"
    attach_method :undo, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :undoManager, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :unlock, :args=>0, :names=>[], :types=>[], :retval=>"v"
    attach_method :updatedObjects, :args=>0, :names=>[], :types=>[], :retval=>"@"
    attach_method :userInfo, :args=>0, :names=>[], :types=>[], :retval=>"@"
  end
end


text:
(function(editors, elFinder) {
	if (typeof define === 'function' && define.amd) {
		define(['elfinder'], editors);
	} else if (elFinder) {
		var optEditors = elFinder.prototype._options.commandsOptions.edit.editors;
		elFinder.prototype._options.commandsOptions.edit.editors = optEditors.concat(editors(elFinder));
	}
}(function(elFinder) {
	var // get query of getfile
		getfile = window.location.search.match(/getfile=([a-z]+)/),
		// cdns location
		cdns = {
			ace        : '//cdnjs.cloudflare.com/ajax/libs/ace/1.2.6',
			codemirror : '//cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0',
			ckeditor   : '//cdnjs.cloudflare.com/ajax/libs/ckeditor/4.7.0',
			tinymce    : '//cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.3',
			simplemde  : '//cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2'
		},
		useRequire = (typeof define === 'function' && define.amd),
		hasFlash = (function() {
			var hasFlash;
			try {
				hasFlash = !!(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
			} catch (e) {
				hasFlash = !!(navigator && navigator.mimeTypes["application/x-shockwave-flash"]);
			}
			return hasFlash;
		})(),
		initImgTag = function(id, file, content, fm) {
			var node = $(this).children('img:first'),
				spnr = $('
')
					.css({
						position: 'absolute',
						top: '50%',
						textAlign: 'center',
						width: '100%',
						fontSize: '16pt'
					})
					.html(fm.i18n('ntfloadimg'))
					.hide()
					.appendTo(this);

			node.attr('id', id+'-img')
				.attr('src', content)
				.css({'height':'', 'max-width':'100%', 'max-height':'100%', 'cursor':'pointer'})
				.data('loading', function(done) {
					var btns = node.closest('.elfinder-dialog').find('button,.elfinder-titlebar-button');
					btns.prop('disabled', !done)[done? 'removeClass' : 'addClass']('ui-state-disabled');
					node.css('opacity', done? '' : '0.3');
					spnr[done? 'hide' : 'show']();
					return node;
				});
		},
		imgBase64 = function(node, mime) {
			var style = node.attr('style'),
				img, canvas, ctx, data;
			try {
				// reset css for getting image size
				node.attr('style', '');
				// img node
				img = node.get(0);
				// New Canvas
				canvas = document.createElement('canvas');
				canvas.width  = img.width;
				canvas.height = img.height;
				// restore css
				node.attr('style', style);
				// Draw Image
				canvas.getContext('2d').drawImage(img, 0, 0);
				// To Base64
				data = canvas.toDataURL(mime);
			} catch(e) {
				data = node.attr('src');
			}
			return data;
		},
		pixlrCallBack = function() {
			if (!hasFlash || window.parent === window) {
				return;
			}
			var pixlr = window.location.search.match(/[?&]pixlr=([^&]+)/),
			image = window.location.search.match(/[?&]image=([^&]+)/),
			p, ifm, url, node;
			if (pixlr) {
				// case of redirected from pixlr.com
				p = window.parent
				ifm = p.$('#'+pixlr[1]+'iframe').hide();
				node = p.$('#'+pixlr[1]).data('resizeoff')();
				if (image[1].substr(0, 4) === 'http') {
					url = image[1];
					if (window.location.protocol === 'https:') {
						url = url.replace(/^http:/, 'https:');
					}
					node.on('load error', function() {
							node.data('loading')(true);
						})
						.attr('src', url)
						.data('loading')();
				} else {
					node.data('loading')(true);
				}
				ifm.remove();
			}
		};
		pixlrSetup = function(opts, fm) {
			if (!hasFlash) {
				this.disabled = true;
			}
		},
		pixlrLoad = function(mode, base) {
			var fm = this.fm,
				node = $(base).children('img:first')
					.data('loading')()
					.data('resizeoff', function() {
						$(window).off('resize.'+node.attr('id'));
						return node;
					})
					.on('click', function() {
						launch();
					}),
				elfNode = fm.getUI(),
				container = $(''),
				file = this.file,
				src = 'https://pixlr.com/'+mode+'/?s=c',
				myurl = window.location.href.toString().replace(/#.*$/, ''),
				error = function() {
					container.remove();
					node.data('loading')(true);
					fm.error('Can not launch Pixlr.');
				},
				launch = function() {
					errtm = setTimeout(error, 10000);
					myurl += (myurl.indexOf('?') === -1? '?' : '&') + 'pixlr='+node.attr('id');
					src += '&referrer=elFinder&locktitle=true&locktype=true';
					src += '&exit='+encodeURIComponent(myurl+'&image=0');
					src += '&target='+encodeURIComponent(myurl);
					src += '&title='+encodeURIComponent(file.name);
					src += '&image='+encodeURIComponent(node.attr('src'));
					container
						.attr('id', node.attr('id')+'iframe')
						.attr('src', src)
						.css({
							width: '100%',
							height: $(window).height()+'px',
							position: 'fixed',
							display: 'block',
							backgroundColor: 'transparent',
							border: 'none',
							top: 0,
							right: 0
						})
						.on('load', function() {
							errtm && clearTimeout(errtm);
						})
						.on('error', error)
						.appendTo(elfNode.hasClass('elfinder-fullscreen')? elfNode : 'body');
					// fit to window size
					$(window).on('resize.'+node.attr('id'), function() {
						container.css('height', $(window).height());
					});
				},
				errtm;
			launch();
		};

	// check callback from pixlr
	pixlrCallBack();

	// check getfile callback function
	if (getfile) {
		getfile = getfile[1];
		if (getfile === 'ckeditor') {
			elFinder.prototype._options.getFileCallback = function(file, fm) {
				window.opener.CKEDITOR.tools.callFunction((function() {
					var reParam = new RegExp('(?:[\?&]|&)CKEditorFuncNum=([^&]+)', 'i'),
						match = window.location.search.match(reParam);
					return (match && match.length > 1) ? match[1] : '';
				})(), fm.convAbsUrl(file.url));
				fm.destroy();
				window.close();
			};
		} else if (getfile === 'tinymce') {
			elFinder.prototype._options.getFileCallback = function(file, fm) {
				// pass selected file data to TinyMCE
				parent.tinymce.activeEditor.windowManager.getParams().oninsert(file, fm);
				// close popup window
				parent.tinymce.activeEditor.windowManager.close();
			};
		}
	}

	// return editors Array
	return [
		{
			// Pixlr Editor
			info : {
				name : 'Pixlr Editor',
				iconImg : 'img/edit_pixlreditor.png',
				urlAsContent: true,
				schemeContent: true,
				single: true
			},
			// MIME types to accept
			mimes : ['image/jpeg', 'image/png'],
			// HTML of this editor
			html : '

',
			// called on initialization of elFinder cmd edit (this: this editor's config object)
			setup : function(opts, fm) {
				pixlrSetup.call(this, opts, fm);
			},
			// Initialization of editing node (this: this editors HTML node)
			init : function(id, file, url, fm) {
				//initImgTag.call(this, id, file, fm.convAbsUrl(fm.openUrl(file.hash, true)), fm);
				initImgTag.call(this, id, file, fm.convAbsUrl(url), fm);
			},
			// Get data uri scheme (this: this editors HTML node)
			getContent : function() {
				return $(this).children('img:first').attr('src');
			},
			load : function(base) {
				pixlrLoad.call(this, 'editor', base);
			},
			save : function(base) {},
			// unbind resize event function
			close : function(base) {
				//$(window).off('resize.'+$(base).children('img:first').attr('id'));
			}
		},
		{
			// Pixlr Express
			info : {
				name : 'Pixlr Express',
				iconImg : 'img/edit_pixlrexpress.png',
				urlAsContent: true,
				schemeContent: true,
				single: true
			},
			// MIME types to accept
			mimes : ['image/jpeg', 'image/png'],
			// HTML of this editor
			html : '

',
			// called on initialization of elFinder cmd edit (this: this editor's config object)
			setup : function(opts, fm) {
				pixlrSetup.call(this, opts, fm);
			},
			// Initialization of editing node (this: this editors HTML node)
			init : function(id, file, url, fm) {
				initImgTag.call(this, id, file, fm.convAbsUrl(url), fm);
			},
			// Get data uri scheme (this: this editors HTML node)
			getContent : function() {
				return $(this).children('img:first').attr('src');
			},
			load : function(base) {
				pixlrLoad.call(this, 'express', base);
			},
			save : function(base) {},
			// unbind resize event function
			close : function(base) {
				//$(window).off('resize.'+$(base).children('img:first').attr('id'));
			}
		},
		{
			// Adobe Creative SDK Creative Tools Image Editor UI
			// MIME types to accept
			info : {
				name : 'Creative Cloud',
				iconImg : 'img/edit_creativecloud.png',
				schemeContent: true,
				single: true
			},
			mimes : ['image/jpeg', 'image/png'],
			// HTML of this editor
			html : '

',
			// called on initialization of elFinder cmd edit (this: this editor's config object)
			setup : function(opts, fm) {
				if (fm.UA.ltIE8 || !opts.extraOptions || !opts.extraOptions.creativeCloudApiKey) {
					this.disabled = true;
				} else {
					this.apiKey = opts.extraOptions.creativeCloudApiKey;
				}
			},
			// Initialization of editing node (this: this editors HTML node)
			init : function(id, file, content, fm) {
				initImgTag.call(this, id, file, content, fm);
			},
			// Get data uri scheme (this: this editors HTML node)
			getContent : function() {
				return $(this).children('img:first').attr('src');
			},
			// Launch Aviary Feather editor when dialog open
			load : function(base) {
				var self = this,
					fm = this.fm,
					node = $(base).children('img:first'),
					elfNode = fm.getUI(),
					dfrd = $.Deferred(),
					container = $('#elfinder-aviary-container'),
					init = function(onload) {
						var getLang = function() {
								var langMap = {
									'jp' : 'ja',
									'zh_TW' : 'zh_HANT',
									'zh_CN' : 'zh_HANS'
								};
								return langMap[fm.lang]? langMap[fm.lang] : fm.lang;
							};

						if (!container.length) {
							container = $('
').css({
								position: 'fixed',
								top: 0,
								right: 0,
								width: '100%',
								height: $(window).height(),
								overflow: 'auto'
							}).hide().appendTo(elfNode.hasClass('elfinder-fullscreen')? elfNode : 'body');
							// fit to window size
							$(window).on('resize.'+fm.namespace, function() {
								container.css('height', $(window).height());
							});
							// bind switch fullscreen event
							elfNode.on('resize.'+fm.namespace, function(e, data) {
								data && data.fullscreen && container.appendTo(data.fullscreen === 'on'? elfNode : 'body');
							});
							fm.bind('destroy', function() {
								container.remove();
							});
						} else {
							// always moves to last
							container.appendTo(container.parent());
						}
						node.on('click', launch).data('loading')();
						featherEditor = new Aviary.Feather({
							apiKey: self.confObj.apiKey,
							onSave: function(imageID, newURL) {
								featherEditor.showWaitIndicator();
								node.on('load error', function() {
										node.data('loading')(true);
									})
									.attr('crossorigin', 'anonymous')
									.attr('src', newURL)
									.data('loading')();
								featherEditor.close();
							},
							onLoad: onload || function(){},
							onClose: function() { $(container).hide(); },
							appendTo: container.get(0),
							maxSize: 2048,
							language: getLang()
						});
						// return editor instance
						dfrd.resolve(featherEditor);
					},
					launch = function() {
						$(container).show();
						featherEditor.launch({
							image: node.attr('id'),
							url: node.attr('src')
						});
						node.data('loading')(true);
					},
					featherEditor, extraOpts;

				// load script then init
				if (typeof Aviary === 'undefined') {
					fm.loadScript(['https://dme0ih8comzn4.cloudfront.net/imaging/v3/editor.js'], function() {
						init(launch);
					});
				} else {
					init();
					launch();
				}
				return dfrd;
			},
			// Convert content url to data uri scheme to save content
			save : function(base) {
				var node = $(base).children('img:first');
				if (node.attr('src').substr(0, 5) !== 'data:') {
					node.attr('src', imgBase64(node, this.file.mime));
				}
			}
		},
		{
			// ACE Editor
			// `mimes` is not set for support everything kind of text file
			info : {
				name : 'ACE Editor',
				iconImg : 'img/edit_aceeditor.png'
			},
			load : function(textarea) {
				var self = this,
					dfrd = $.Deferred(),
					cdn  = cdns.ace,
					start = function() {
						var editor, editorBase, mode,
						ta = $(textarea),
						taBase = ta.parent(),
						dialog = taBase.parent(),
						id = textarea.id + '_ace',
						ext = self.file.name.replace(/^.+\.([^.]+)|(.+)$/, '$1$2').toLowerCase(),
						// MIME/mode map
						mimeMode = {
							'text/x-php'			  : 'php',
							'application/x-php'		  : 'php',
							'text/html'				  : 'html',
							'application/xhtml+xml'	  : 'html',
							'text/javascript'		  : 'javascript',
							'application/javascript'  : 'javascript',
							'text/css'				  : 'css',
							'text/x-c'				  : 'c_cpp',
							'text/x-csrc'			  : 'c_cpp',
							'text/x-chdr'			  : 'c_cpp',
							'text/x-c++'			  : 'c_cpp',
							'text/x-c++src'			  : 'c_cpp',
							'text/x-c++hdr'			  : 'c_cpp',
							'text/x-shellscript'	  : 'sh',
							'application/x-csh'		  : 'sh',
							'text/x-python'			  : 'python',
							'text/x-java'			  : 'java',
							'text/x-java-source'	  : 'java',
							'text/x-ruby'			  : 'ruby',
							'text/x-perl'			  : 'perl',
							'application/x-perl'	  : 'perl',
							'text/x-sql'			  : 'sql',
							'text/xml'				  : 'xml',
							'application/docbook+xml' : 'xml',
							'application/xml'		  : 'xml'
						};

						// set base height
						taBase.height(taBase.height());

						// set basePath of ace
						ace.config.set('basePath', cdn);

						// Base node of Ace editor
						editorBase = $('
').text(ta.val()).insertBefore(ta.hide());

						// Editor flag
						ta.data('ace', true);

						// Aceeditor instance
						editor = ace.edit(id);

						// Ace editor configure
						editor.$blockScrolling = Infinity;
						editor.setOptions({
							theme: 'ace/theme/monokai',
							fontSize: '14px',
							wrap: true,
						});
						ace.config.loadModule('ace/ext/modelist', function() {
							// detect mode
							mode = ace.require('ace/ext/modelist').getModeForPath('/' + self.file.name).name;
							if (mode === 'text') {
								if (mimeMode[self.file.mime]) {
									mode = mimeMode[self.file.mime];
								}
							}
							// show MIME:mode in title bar
							taBase.prev().children('.elfinder-dialog-title').append(' (' + self.file.mime + ' : ' + mode.split(/[\/\\]/).pop() + ')');
							editor.setOptions({
								mode: 'ace/mode/' + mode
							});
						});
						ace.config.loadModule('ace/ext/language_tools', function() {
							ace.require('ace/ext/language_tools');
							editor.setOptions({
								enableBasicAutocompletion: true,
								enableSnippets: true,
								enableLiveAutocompletion: false
							});
						});
						ace.config.loadModule('ace/ext/settings_menu', function() {
							ace.require('ace/ext/settings_menu').init(editor);
						});

						// Short cuts
						editor.commands.addCommand({
							name : "saveFile",
							bindKey: {
								win : 'Ctrl-s',
								mac : 'Command-s'
							},
							exec: function(editor) {
								self.doSave();
							}
						});
						editor.commands.addCommand({
							name : "closeEditor",
							bindKey: {
								win : 'Ctrl-w|Ctrl-q',
								mac : 'Command-w|Command-q'
							},
							exec: function(editor) {
								self.doCancel();
							}
						});

						editor.resize();

						// TextArea button and Setting button
						$('
').css('float', 'left')
						.append(
							$('<button/>').html(self.fm.i18n('TextArea'))
							.button()
							.on('click', function(){
								if (ta.data('ace')) {
									ta.removeData('ace');
									editorBase.hide();
									ta.val(editor.session.getValue()).show().focus();
									$(this).text('AceEditor');
								} else {
									ta.data('ace', true);
									editorBase.show();
									editor.setValue(ta.hide().val(), -1);
									editor.focus();
									$(this).html(self.fm.i18n('TextArea'));
								}
							})
						)
						.append(
							$('<button>Ace editor setting</button>')
							.button({
								icons: {
									primary: 'ui-icon-gear',
									secondary: 'ui-icon-triangle-1-e'
								},
								text: false
							})
							.on('click', function(){
								editor.showSettingsMenu();
								$('#ace_settingsmenu')
									.css('font-size', '80%')
									.find('div[contains="setOptions"]').hide().end()
									.parent().parent().appendTo($('#elfinder'));
							})
						)
						.prependTo(taBase.next());

						dfrd.resolve(editor);
					};

				// check ace & start
				if (!self.confObj.loader) {
					self.confObj.loader = $.Deferred();
					self.fm.loadScript([ cdn+'/ace.js' ], function() {
						self.confObj.loader.resolve();
					}, void 0, {obj: window, name: 'ace'});
				}
				self.confObj.loader.done(start);

				return dfrd;
			},
			close : function(textarea, instance) {
				instance && instance.destroy();
			},
			save : function(textarea, instance) {
				instance && $(textarea).data('ace') && (textarea.value = instance.session.getValue());
			},
			focus : function(textarea, instance) {
				instance && $(textarea).data('ace') && instance.focus();
			},
			resize : function(textarea, instance, e, data) {
				instance && instance.resize();
			}
		},
		{
			// CodeMirror
			// `mimes` is not set for support everything kind of text file
			info : {
				name : 'CodeMirror',
				iconImg : 'img/edit_codemirror.png'
			},
			load : function(textarea) {
				var cmUrl = cdns.codemirror,
					dfrd = $.Deferred(),
					self = this,
					start = function(CodeMirror) {
						var ta   = $(textarea),
							base = ta.parent(),
							editor, editorBase;

						// set base height
						base.height(base.height());

						// CodeMirror configure
						editor = CodeMirror.fromTextArea(textarea, {
							lineNumbers: true,
							lineWrapping: true,
							extraKeys : {
								'Ctrl-S': function() { self.doSave(); },
								'Ctrl-Q': function() { self.doCancel(); },
								'Ctrl-W': function() { self.doCancel(); }
							}
						});

						// return editor instance
						dfrd.resolve(editor);

						// Auto mode set
						var info, m, mode, spec;
						if (! info) {
							info = CodeMirror.findModeByMIME(self.file.mime);
						}
						if (! info && (m = self.file.name.match(/.+\.([^.]+)$/))) {
							info = CodeMirror.findModeByExtension(m[1]);
						}
						if (info) {
							CodeMirror.modeURL = useRequire? 'codemirror/mode/%N/%N.min' : cmUrl + '/mode/%N/%N.min.js';
							mode = info.mode;
							spec = info.mime;
							editor.setOption('mode', spec);
							CodeMirror.autoLoadMode(editor, mode);
							// show MIME:mode in title bar
							base.prev().children('.elfinder-dialog-title').append(' (' + spec + ' : ' + mode + ')');
						}

						// editor base node
						editorBase = $(editor.getWrapperElement()).css({
							// fix CSS conflict to SimpleMDE
							padding: 0,
					    	border: 'none'
						});
						ta.data('cm', true);

						// fit height to base
						editorBase.height('100%');

						// TextArea button and Setting button
						$('
').css('float', 'left')
						.append(
							$('<button/>').html(self.fm.i18n('TextArea'))
							.button()
							.on('click', function(){
								if (ta.data('cm')) {
									ta.removeData('cm');
									editorBase.hide();
									ta.val(editor.getValue()).show().focus();
									$(this).text('CodeMirror');
								} else {
									ta.data('cm', true);
									editorBase.show();
									editor.setValue(ta.hide().val());
									editor.refresh();
									editor.focus();
									$(this).html(self.fm.i18n('TextArea'));
								}
							})
						)
						.prependTo(base.next());
					};
				// load script then start
				if (!self.confObj.loader) {
					self.confObj.loader = $.Deferred();
					if (useRequire) {
						require.config({
							packages: [{
								name: 'codemirror',
								location: cmUrl,
								main: 'codemirror.min'
							}],
							map: {
								'codemirror': {
									'codemirror/lib/codemirror': 'codemirror'
								}
							}
						});
						require([
							'codemirror',
							'codemirror/addon/mode/loadmode.min',
							'codemirror/mode/meta.min'
						], function(CodeMirror) {
							self.confObj.loader.resolve(CodeMirror);
						});
					} else {
						self.fm.loadScript([
							cmUrl + '/codemirror.min.js',
							cmUrl + '/addon/mode/loadmode.min.js',
							cmUrl + '/mode/meta.min.js'
						], function() {
							self.confObj.loader.resolve(CodeMirror);
						}, void 0, {obj: window, name: 'CodeMirror'});
					}
					self.fm.loadCss(cmUrl + '/codemirror.css');
				}
				self.confObj.loader.done(start);
				return dfrd;
			},
			close : function(textarea, instance) {
				instance && instance.toTextArea();
			},
			save : function(textarea, instance) {
				instance && $(textarea).data('cm') && (textarea.value = instance.getValue());
			},
			focus : function(textarea, instance) {
				instance && $(textarea).data('cm') && instance.focus();
			},
			resize : function(textarea, instance, e, data) {
				instance && instance.refresh();
			}
		},
		{
			// SimpleMDE
			info : {
				name : 'SimpleMDE',
				iconImg : 'img/edit_simplemde.png'
			},
			exts  : ['md'],
			load : function(textarea) {
				var self = this,
					base = $(textarea).parent(),
					dfrd = $.Deferred(),
					start = function(SimpleMDE) {
						var h     = base.height(),
							delta = base.outerHeight(true) - h + 14,
							editor, editorBase;

						// fit height function
						textarea._setHeight = function(h) {
							var h    = h || base.height(),
								ctrH = 0,
								areaH;
							base.children('.editor-toolbar,.editor-statusbar').each(function() {
								ctrH += $(this).outerHeight(true);
							});
							areaH = h - ctrH - delta;
							editorBase.height(areaH);
							editor.codemirror.refresh();
							return areaH;
						};

						// set base height
						base.height(h);

						// make editor
						editor = new SimpleMDE({
							element: textarea,
							autofocus: true
						});
						dfrd.resolve(editor);

						// editor base node
						editorBase = $(editor.codemirror.getWrapperElement());

						// fit height to base
						editorBase.css('min-height', '50px')
							.children('.CodeMirror-scroll').css('min-height', '50px');
						textarea._setHeight(h);
					};

				// check SimpleMDE & start
				if (!self.confObj.loader) {
					self.confObj.loader = $.Deferred();
					self.fm.loadCss(cdns.simplemde+'/simplemde.min.css');
					if (useRequire) {
						require([
							cdns.simplemde+'/simplemde.min.js'
						], function(SimpleMDE) {
							self.confObj.loader.resolve(SimpleMDE);
						});
					} else {
						self.fm.loadScript([cdns.simplemde+'/simplemde.min.js'], function() {
							self.confObj.loader.resolve(SimpleMDE);
						}, void 0, {obj: window, name: 'SimpleMDE'});
					}
				}
				self.confObj.loader.done(start);

				return dfrd;
			},
			close : function(textarea, instance) {
				instance && instance.toTextArea();
				instance = null;
			},
			save : function(textarea, instance) {
				instance && (textarea.value = instance.value());
			},
			focus : function(textarea, instance) {
				instance && instance.codemirror.focus();
			},
			resize : function(textarea, instance, e, data) {
				instance && textarea._setHeight();
			}
		},
		{
			// CKEditor for html file
			info : {
				name : 'CKEditor',
				iconImg : 'img/edit_ckeditor.png'
			},
			exts  : ['htm', 'html', 'xhtml'],
			setup : function(opts, fm) {
				if (opts.extraOptions && opts.extraOptions.managerUrl) {
					this.managerUrl = opts.extraOptions.managerUrl;
				}
			},
			load : function(textarea) {
				var self = this,
					fm   = this.fm,
					dfrd = $.Deferred(),
					init = function() {
						var base = $(textarea).parent(),
							dlg = base.closest('.elfinder-dialog'),
							h = base.height(),
							reg = /([&?]getfile=)[^&]+/,
							loc = self.confObj.managerUrl || window.location.href.replace(/#.*$/, ''),
							name = 'ckeditor';

						// make manager location
						if (reg.test(loc)) {
							loc = loc.replace(reg, '$1' + name);
						} else {
							loc += '?getfile=' + name;
						}
						// set base height
						base.height(h);
						// CKEditor configure
						CKEDITOR.replace(textarea.id, {
							startupFocus : true,
							fullPage: true,
							allowedContent: true,
							filebrowserBrowseUrl : loc,
							removePlugins: 'resize',
							on: {
								'instanceReady' : function(e) {
									var editor = e.editor;
									editor.resize('100%', h);
									// re-build on dom move
									dlg.one('beforedommove.'+fm.namespace, function() {
										editor.destroy();
									}).one('dommove.'+fm.namespace, function() {
										self.load(textarea).done(function(editor) {
											self.instance = editor;
										});
									});
									// return editor instance
									dfrd.resolve(e.editor);
								}
							}
						});
						CKEDITOR.on('dialogDefinition', function(e) {
							var dlg = e.data.definition.dialog;
							dlg.on('show', function(e) {
								fm.getUI().append($('.cke_dialog_background_cover')).append(this.getElement().$)
							});
							dlg.on('hide', function(e) {
								$('body:first').append($('.cke_dialog_background_cover')).append(this.getElement().$)
							});
						});
					};

				if (!self.confObj.loader) {
					self.confObj.loader = $.Deferred();
					$.getScript(cdns.ckeditor + '/ckeditor.js', function() {
						self.confObj.loader.resolve();
					});
				}
				self.confObj.loader.done(init);
				return dfrd;
			},
			close : function(textarea, instance) {
				instance && instance.destroy();
			},
			save : function(textarea, instance) {
				instance && (textarea.value = instance.getData());
			},
			focus : function(textarea, instance) {
				instance && instance.focus();
			},
			resize : function(textarea, instance, e, data) {
				var self;
				if (instance) {
					if (instance.status === 'ready') {
						instance.resize('100%', $(textarea).parent().height());
					}
				}
			}
		},
		{
			// TinyMCE for html file
			info : {
				name : 'TinyMCE',
				iconImg : 'img/edit_tinymce.png'
			},
			exts  : ['htm', 'html', 'xhtml'],
			setup : function(opts, fm) {
				if (opts.extraOptions && opts.extraOptions.managerUrl) {
					this.managerUrl = opts.extraOptions.managerUrl;
				}
			},
			load : function(textarea) {
				var self = this,
					fm   = this.fm,
					dfrd = $.Deferred(),
					init = function() {
						var base = $(textarea).parent(),
							dlg = base.closest('.elfinder-dialog'),
							h = base.height(),
							delta = base.outerHeight(true) - h;
						// set base height
						base.height(h);
						// fit height function
						textarea._setHeight = function(h) {
							var base = $(this).parent(),
								h    = h || base.height(),
								ctrH = 0,
								areaH;
							base.find('.mce-container-body:first').children('.mce-toolbar,.mce-toolbar-grp,.mce-statusbar').each(function() {
								ctrH += $(this).outerHeight(true);
							});
							areaH = h - ctrH - delta;
							base.find('.mce-edit-area iframe:first').height(areaH);
							return areaH;
						};
						// TinyMCE configure
						tinymce.init({
							selector: '#' + textarea.id,
							resize: false,
							plugins: [
								'fullpage', // require for getting full HTML
								'image', 'link', 'media',
								'code', 'fullscreen'
							],
							init_instance_callback : function(editor) {
								// fit height on init
								textarea._setHeight(h);
								// re-build on dom move
								dlg.one('beforedommove.'+fm.namespace, function() {
									tinymce.execCommand('mceRemoveEditor', false, textarea.id);
								}).one('dommove.'+fm.namespace, function() {
									self.load(textarea).done(function(editor) {
										self.instance = editor;
									});
								});
								// return editor instance
								dfrd.resolve(editor);
							},
							file_picker_callback : function (callback, value, meta) {
								var reg = /([&?]getfile=)[^&]+/,
									loc = self.confObj.managerUrl || window.location.href.replace(/#.*$/, ''),
									name = 'tinymce';

								// make manager location
								if (reg.test(loc)) {
									loc = loc.replace(reg, '$1' + name);
								} else {
									loc += '?getfile=' + name;
								}
								// launch TinyMCE
								tinymce.activeEditor.windowManager.open({
									file: loc,
									title: 'elFinder',
									width: 900,
									height: 450,
									resizable: 'yes'
								}, {
									oninsert: function (file, elf) {
										var url, reg, info;

										// URL normalization
										url = elf.convAbsUrl(file.url);

										// Make file info
										info = file.name + ' (' + elf.formatSize(file.size) + ')';

										// Provide file and text for the link dialog
										if (meta.filetype == 'file') {
											callback(url, {text: info, title: info});
										}

										// Provide image and alt text for the image dialog
										if (meta.filetype == 'image') {
											callback(url, {alt: info});
										}

										// Provide alternative source and posted for the media dialog
										if (meta.filetype == 'media') {
											callback(url);
										}
									}
								});
								return false;
							}
						});
					};

 				// impossible launch TineMCE in native fullscreen mode
 				fm.getUI().hasClass('elfinder-fullscreen-native') && fm.exec('fullscreen');

				if (!self.confObj.loader) {
					self.confObj.loader = $.Deferred();
					$.getScript(cdns.tinymce + '/tinymce.min.js', function() {
						setTimeout(function() {
							self.confObj.loader.resolve();
						}, 0);
					});
				}
				self.confObj.loader.done(init);
				return dfrd;
			},
			close : function(textarea, instance) {
				instance && tinymce.execCommand('mceRemoveEditor', false, textarea.id);
			},
			save : function(textarea, instance) {
				instance && instance.save();
			},
			focus : function(textarea, instance) {
				instance && instance.focus();
			},
			resize : function(textarea, instance, e, data) {
				// fit height to base node on dialog resize
				textarea._setHeight();
			}
		},
		{
			// Simple Text (basic textarea editor)
			info : {
				name : 'TextArea',
				useTextAreaEvent : true
			},
			load : function(){},
			save : function(){}
		}
	];
}, window.elFinder));


text:
import templateUrl from './concurrency.jade';

export default ['igniteConfigurationCachesConcurrency', [() => {
    return {
        scope: true,
        restrict: 'E',
        templateUrl,
        replace: true
    };
}]];


text:
package org.isep.maw;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.storm.Config;
import org.apache.storm.LocalCluster;
import org.apache.storm.topology.TopologyBuilder;
import org.apache.storm.tuple.Fields;
import org.apache.storm.utils.*;

public class TweetAnalyzer {

	static private int TOP = 20;
	static private int EMIT_FREQ = 30;
	static private int WINDOW_SIZE = 60;

	private static LocalCluster cluster;

	public static void main(String [] args) throws FileNotFoundException {
		if(args.length <= 3) {
			System.out.println("Usage: $ tweetAnalyzer top_n path_result [;|,] path_to_data1 path_to_data2 ..." );
			System.exit(0);
		}
		TOP = Integer.parseInt(args[0]);
		String resultFilePath = args[1];
		String separator = args[2];

		cluster = new LocalCluster();
		List<String> fileList = Arrays.asList(args).subList(2, args.length);
		List<String> pathList = new ArrayList<String>();

		for(String relPath: fileList) {
			File f = new File(relPath);
			pathList.add(f.getAbsolutePath());
		}

		TopologyBuilder builder = new TopologyBuilder();
		builder.setSpout("tweet", new CSVTweetSpout(separator,pathList));
		builder.setBolt("wordcount", new WordCountBolt(),3)
					.shuffleGrouping("tweet");
		builder.setBolt("rank", new RollingWordRank(TOP,EMIT_FREQ,WINDOW_SIZE),3)
					.fieldsGrouping("wordcount", new Fields("word"));
		builder.setBolt("totalranking", new MergeWordsRanks(TOP, EMIT_FREQ, new File(resultFilePath).getAbsolutePath()),1)
					.globalGrouping("rank");
		//1. build topology
		Config conf = new Config();
		conf.setDebug(true);
		//2. run it for a while
		cluster.submitTopology("TWEET2018", conf, builder.createTopology());

		org.apache.storm.utils.Utils.sleep(100000);

		cluster.shutdown();
	}
}


text:
package com.ztiany.view.drawable;

import android.graphics.drawable.Animatable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.ztiany.view.R;

/**
 * @author Ztiany
 *         Email: ztiany3@gmail.com
 *         Date : 2017-12-10 23:02
 */
public class DrawableRotateFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.drawable_fragment_rotate, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        View view1 = view.findViewById(R.id.rotate_view_1);
        View view2 = view.findViewById(R.id.rotate_view_2);
        Animatable rotateDrawable = (Animatable) view2.getBackground();
        rotateDrawable.start();
    }
}


text:
"""Validate post-ETL FERC Form 1 data and the associated derived outputs.

These tests depend on a FERC Form 1 specific PudlTabl output object, which is
a parameterized fixture that has session scope.
"""
import logging

import pandas as pd
import pytest

from pudl import validate as pv
from pudl.metadata.classes import DataSource

logger = logging.getLogger(__name__)

# These are tables for which individual records have been sliced up and
# turned into columns -- so there's no universally unique record ID:
row_mapped_tables = [
    "plant_in_service_ferc1",
]
unique_record_tables = [
    t
    for t in DataSource.from_id("ferc1").get_resource_ids()
    if t not in row_mapped_tables
]

@pytest.mark.parametrize("table_name", unique_record_tables)
def test_record_id_dupes(pudl_engine, table_name):
    """Verify that the generated ferc1 record_ids are unique."""
    table = pd.read_sql(table_name, pudl_engine)
    n_dupes = table.record_id.duplicated().values.sum()

    if n_dupes:
        dupe_ids = table.record_id[table.record_id.duplicated()].values
        raise AssertionError(
            f"{n_dupes} duplicate record_ids found in {table_name}: {dupe_ids}."
        )

@pytest.mark.parametrize(
    "df_name,cols",
    [
        ("all_plants_ferc1", "all"),
        ("fbp_ferc1", "all"),
        ("fuel_ferc1", "all"),
        ("plant_in_service_ferc1", "all"),
        (
            "plants_hydro_ferc1",
            "all",
        ),
        ("plants_pumped_storage_ferc1", "all"),
        ("plants_small_ferc1", "all"),
        ("plants_steam_ferc1", "all"),
        ("pu_ferc1", "all"),
        ("purchased_power_ferc1", "all"),
    ],
)
def test_no_null_cols_ferc1(pudl_out_ferc1, live_dbs, cols, df_name):
    """Verify that output DataFrames have no entirely NULL columns."""
    if not live_dbs:
        pytest.skip("Data validation only works with a live PUDL DB.")
    pv.no_null_cols(
        pudl_out_ferc1.__getattribute__(df_name)(), cols=cols, df_name=df_name
    )

@pytest.mark.parametrize(
    "df_name,expected_rows",
    [
        ("all_plants_ferc1", 51_456),
        ("fbp_ferc1", 20_573),
        ("fuel_ferc1", 31_265),
        ("plant_in_service_ferc1", 26_933),
        ("plants_hydro_ferc1", 6_782),
        ("plants_pumped_storage_ferc1", 710),
        ("plants_small_ferc1", 15_584),
        ("plants_steam_ferc1", 28_380),
        ("pu_ferc1", 6_946),
        ("purchased_power_ferc1", 190_228),
    ],
)
def test_minmax_rows(pudl_out_ferc1, live_dbs, expected_rows, df_name):
    """Verify that output DataFrames don't have too many or too few rows.

    Args:
        pudl_out_ferc1: A PudlTabl output object.
        live_dbs: Boolean (wether we're using a live or testing DB).
        expected_rows (int): Expected number of rows that the dataframe should
            contain when all data is loaded and is output without aggregation.
        df_name (str): Shorthand name identifying the dataframe, corresponding
            to the name of the function used to pull it from the PudlTabl
            output object.

    """
    if not live_dbs:
        pytest.skip("Data validation only works with a live PUDL DB.")
    _ = (
        pudl_out_ferc1.__getattribute__(df_name)()
        .pipe(
            pv.check_min_rows, expected_rows=expected_rows, margin=0.0, df_name=df_name
        )
        .pipe(
            pv.check_max_rows, expected_rows=expected_rows, margin=0.0, df_name=df_name
        )
    )

@pytest.mark.parametrize(
    "df_name,unique_subset",
    [
        ("pu_ferc1", ["utility_id_ferc1", "plant_name_ferc1"]),
        ("fbp_ferc1", ["report_year", "utility_id_ferc1", "plant_name_ferc1"]),
        (
            "plants_hydro_ferc1",
            [
                "report_year",
                "utility_id_ferc1",
                "plant_name_ferc1",
                "capacity_mw",  # Why does having capacity here make sense???
            ],
        ),
        (
            "plants_pumped_storage_ferc1",
            [
                "report_year",
                "utility_id_ferc1",
                "plant_name_ferc1",
                "capacity_mw",  # Why does having capacity here make sense???
            ],
        ),
        ("plant_in_service_ferc1", ["report_year", "utility_id_ferc1", "amount_type"]),
    ],
)
def test_unique_rows_ferc1(pudl_out_ferc1, live_dbs, df_name, unique_subset):
    """Test whether dataframe has unique records within a subset of columns."""
    if not live_dbs:
        pytest.skip("Data validation only works with a live PUDL DB.")
    pv.check_unique_rows(
        pudl_out_ferc1.__getattribute__(df_name)(),
        subset=unique_subset,
        df_name=df_name,
    )


text:
var HTown = HTown || {};

HTown.TownModel = function(coefs, initialStats, buildings){

  this.coefs = {};
  this.coefs.populationGrowth = this.coefs.populationGrowth || 1.02;
  this.coefs.foodConsumption = this.coefs.foodConsumption || 1;
  this.coefs.productivityPerPerson = this.coefs.productivityPerPerson || 0.5;

  this.stats = {};
  this.stats.population = initialStats.population;
  this.stats.food = initialStats.food;
  this.stats.money = initialStats.money;

  this.buildings = buildings;
};

HTown.TownModel.prototype.step = function(){
  //update building production
  this.updateBuildingProduction();

  //population
  this.stats.population = this.stats.population * this.coefs.populationGrowth;

  //population can't be greater than the number of housing space
  this.stats.population = Math.min(this.stats.population, this.stats.housing);

  //update food   new food = old food + food prod - food consumptio
  this.stats.food -= this.stats.population * this.coefs.foodConsumption;

  //if food is negative, decrease population
  if(this.stats.food < 0) {
    this.stats.population += this.stats.food / this.coefs.foodConsumption;
    this.stats.food = 0;
  }

  //industrial output
  this.stats.money += Math.min(this.stats.population, this.stats.jobs) * this.coefs.productivityPerPerson;

  console.log(this.stats);
};

HTown.TownModel.prototype.updateBuildingProduction = function() {
  this.stats.housing = 0;
  this.stats.jobs = 0;

  this.buildings.forEach(function(building){
    if(building.housing) {
      this.stats.housing += building.housing;
    }

    if(building.jobs) {
      this.stats.jobs += building.jobs;
    }

    if(building.food) {
      this.stats.food += building.food;
    }

  }, this);
};


text:
.module.filtered {
    background: none!important;
}

#changelist-filter {
    border: #ccc 1px solid;
}

#hide_filter {
    padding: 12px;
    display: block;
    text-align: center;
    background: #fff;
    font-weight: bold;
    text-transform: uppercase
}

.change-list .filtered .results {
    margin-right: 0!important;
}

#changelist-form .results {
    overflow-x: inherit;
}


text:
Deface::Override.new(
  :virtual_path => "spree/orders/_line_item",
  :name         => "remove_remove_button",
  :surround     => "erb[loud]:contains('icons/delete.png')",
  :text         => "<% unless line_item.parent_id %> <%= render_original %> <% end %>")

Deface::Override.new(
  :virtual_path => "spree/orders/_line_item",
  :name         => "remove_qty_field",
  :surround     => "erb[loud]:contains('item_form.number_field :quantity')",
  :text         => "<% if line_item.parent_id %> <%=line_item.quantity%> <% else %> <%= render_original %> <% end %>")


text:
layout: pages
title: Subversion Install On Ubuntu From Source
description: Subversion Install On Ubuntu From Source
keywords: subversion,linux,ubuntu
---

___
###1 从源程序安装Apache
1-1 从源程序进行安装

    sudo apt-get install openssl libssl-dev
下载Apache源程序,http://www.eng.lsu.edu/mirrors/apache/httpd/httpd-x.x.x.tar.gz

    tar zxvf httpd-x.x.x.tar.gz
    cd httpd-x.x.x
    ./configure --prefix=/usr/local/apache-x.x.x \
    --enable-so \
    --enable-auth-digest \
    --enable-rewrite \
    --enable-setenvif \
    --enable-mime \
    --enable-ssl \
    --with-ssl=/usr/local \
    --enable-dav \
    --enable-headers
    make
    sudo make install

1-2 测试安装

    export APACHE_HOME=/usr/local/apache-x.x.x
    export PATH=$PATH:$APACHE_HOME/bin

    启动apache服务器:apachectl -k start
    打开浏览器,确认连接
    http://localhost
    确认是否正确显示信息。

___
###2 从源程序安装Subversion
2-1 从源程序安装

    下载subversion-x.x.x.tar.gz, http://subversion.tigris.org/downloads/subversion-x.x.x.tar.gz
    安装之前可能需要安装zlib1g zlib1g-dev libexpat1 libexpat1-dev

    sudo apt-get install zlib1g zlib1g-dev libexpat1 libexpat1-dev
    tar zxvf subversion-x.x.x.tar.gz
    cd subversion-x.x.x
    ./configure --prefix=/usr/local/subversion-x.x.x \
    --with-apr=/usr/local/apache-x.x.x \
    --with-apr-util=/usr/local/apache-x.x.x \
    --with-apxs
    make
    sudo make install

2-2 测试Subversion安装

    export SVN_HOME=/usr/local/subversion-x.x.x
    export PATH=$PATH:$SVN_HOME/bin

    sudo svnadmin create /home/svn
    sudo groupadd subversion
    sudo chown -R root:subversion /home/svn
    sudo chmod -R g+rws /home/svn

    mkdir svntest
    echo "This is a test subversion" >> svntest/test.txt
    svn import -m "new import" svntest file:///home/svn/svntest


text:
@echo off
setlocal
set JC_CLASSIC_HOME=%~dp0\..
rem Print warning if no JAVA_HOME set
if not defined JAVA_HOME goto nojavahome

rem set classpath to all jars

set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH%
set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH%

rem execute normalizer's Main class
"%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.normalizer.Main %*
goto done
:nojavahome
echo JAVA_HOME is not set - please set it to point to JDK 1.6
:done
endlocal

rem Send the error code to the command interpreter
cmd /c Exit /B %errorlevel%


text:
package net.mindengine.testhub.model.builds;

import net.mindengine.testhub.model.tests.TestStatistics;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

public class BuildResponse {
    private String name;
    private TestStatistics testStatistics;

    public BuildResponse(String name, TestStatistics testStatistics) {
        this.name = name;
        this.testStatistics = testStatistics;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public TestStatistics getTestStatistics() {
        return testStatistics;
    }

    public void setTestStatistics(TestStatistics testStatistics) {
        this.testStatistics = testStatistics;
    }

    public static BuildResponse from(Build build) {
        if (build == null) {
            return null;
        }

        return new BuildResponse(
            build.getName(),
            new TestStatistics(build.getCntTestsPassed(), build.getCntTestsFailed(), build.getCntTestsSkipped())
        );
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;

        if (o == null || getClass() != o.getClass()) return false;

        BuildResponse that = (BuildResponse) o;

        return new EqualsBuilder()
            .append(name, that.name)
            .append(testStatistics, that.testStatistics)
            .isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37)
            .append(name)
            .append(testStatistics)
            .toHashCode();
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
            .append("name", name)
            .append("testStatistics", testStatistics)
            .toString();
    }
}


text:
"use strict";
const postcss = require("postcss");
const unprefixDecl = require("./unprefix").decl;
const util = require("./util");
function walkDecl (decl) {
	if (util.rePrefix.test(decl.prop) || /(^|,|\s)-\w+-.+/i.test(decl.value)) {
		clearDecl(decl);
	}
}

function clearDecl (decl) {
	const rule = decl.parent;
	const prop = postcss.vendor.unprefixed(decl.prop);
	let unprefixed;
	let lastUnprefixed;

	const prefixedDecls = util.getDecls(rule, new RegExp("^-\\w+-" + prop + "$", "i"));

	util.getDecls(rule, unprefixDecl(decl).prop || prop).forEach((decl) => {
		lastUnprefixed = unprefixDecl(decl);
		if (lastUnprefixed.value) {
			prefixedDecls.push(decl);
		} else {
			unprefixed = decl;
		}
	});

	if (!unprefixed) {
		const lastDecl = prefixedDecls.pop();
		(lastUnprefixed || unprefixDecl(lastDecl)).replace();
	}

	prefixedDecls.forEach((decl) => {
		decl.remove();
	});
}

module.exports = walkDecl;


text:
package uriOnline;
import java.util.Scanner;

public class Exerciciouri01 {

	Scanner teclado = new Scanner(System.in);

	int entrada, AUXILIAR;

	public double getAUXILIAR() {

		int contador = 0;
		float media = 0, soma = 0;;

		while(entrada >= 0) {

			System.out.println("Digite uma idade aleatória : ");
			entrada = teclado.nextInt();
			contador++;
			soma = entrada + soma;
		}
	    soma = soma + (entrada * -1);
		media = soma / --contador;
		return media;
	}

}