Merge lp:~andreserl/maas/precise.sru.jslibs into lp:~maas-maintainers/maas/packaging.precise.sru

Proposed by Andres Rodriguez on 2013-02-02
Status: Merged
Approved by: Andres Rodriguez on 2013-02-20
Approved revision: 163
Merged at revision: 164
Proposed branch: lp:~andreserl/maas/precise.sru.jslibs
Merge into: lp:~maas-maintainers/maas/packaging.precise.sru
Diff against target: 415462 lines (+407895/-3)
1271 files modified
debian/changelog (+4/-0)
debian/control (+0/-3)
debian/extras/jslibs/raphael/raphael-min.js (+10/-0)
debian/extras/jslibs/yui/align-plugin/align-plugin-debug.js (+199/-0)
debian/extras/jslibs/yui/align-plugin/align-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/align-plugin/align-plugin.js (+199/-0)
debian/extras/jslibs/yui/anim-base/anim-base-debug.js (+682/-0)
debian/extras/jslibs/yui/anim-base/anim-base-min.js (+7/-0)
debian/extras/jslibs/yui/anim-base/anim-base.js (+681/-0)
debian/extras/jslibs/yui/anim-color/anim-color-debug.js (+54/-0)
debian/extras/jslibs/yui/anim-color/anim-color-min.js (+7/-0)
debian/extras/jslibs/yui/anim-color/anim-color.js (+54/-0)
debian/extras/jslibs/yui/anim-curve/anim-curve-debug.js (+63/-0)
debian/extras/jslibs/yui/anim-curve/anim-curve-min.js (+7/-0)
debian/extras/jslibs/yui/anim-curve/anim-curve.js (+63/-0)
debian/extras/jslibs/yui/anim-easing/anim-easing-debug.js (+356/-0)
debian/extras/jslibs/yui/anim-easing/anim-easing-min.js (+7/-0)
debian/extras/jslibs/yui/anim-easing/anim-easing.js (+356/-0)
debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-debug.js (+32/-0)
debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin.js (+32/-0)
debian/extras/jslibs/yui/anim-scroll/anim-scroll-debug.js (+44/-0)
debian/extras/jslibs/yui/anim-scroll/anim-scroll-min.js (+7/-0)
debian/extras/jslibs/yui/anim-scroll/anim-scroll.js (+44/-0)
debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-debug.js (+112/-0)
debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-min.js (+7/-0)
debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform.js (+112/-0)
debian/extras/jslibs/yui/anim-xy/anim-xy-debug.js (+32/-0)
debian/extras/jslibs/yui/anim-xy/anim-xy-min.js (+7/-0)
debian/extras/jslibs/yui/anim-xy/anim-xy.js (+32/-0)
debian/extras/jslibs/yui/app-base/app-base-debug.js (+1142/-0)
debian/extras/jslibs/yui/app-base/app-base-min.js (+7/-0)
debian/extras/jslibs/yui/app-base/app-base.js (+1142/-0)
debian/extras/jslibs/yui/app-transitions-css/app-transitions-css-min.css (+7/-0)
debian/extras/jslibs/yui/app-transitions-css/app-transitions-css.css (+24/-0)
debian/extras/jslibs/yui/app-transitions-native/app-transitions-native-debug.js (+358/-0)
debian/extras/jslibs/yui/app-transitions-native/app-transitions-native-min.js (+7/-0)
debian/extras/jslibs/yui/app-transitions-native/app-transitions-native.js (+358/-0)
debian/extras/jslibs/yui/app-transitions/app-transitions-debug.js (+257/-0)
debian/extras/jslibs/yui/app-transitions/app-transitions-min.js (+7/-0)
debian/extras/jslibs/yui/app-transitions/app-transitions.js (+257/-0)
debian/extras/jslibs/yui/array-extras/array-extras-debug.js (+367/-0)
debian/extras/jslibs/yui/array-extras/array-extras-min.js (+7/-0)
debian/extras/jslibs/yui/array-extras/array-extras.js (+366/-0)
debian/extras/jslibs/yui/array-invoke/array-invoke-debug.js (+46/-0)
debian/extras/jslibs/yui/array-invoke/array-invoke-min.js (+7/-0)
debian/extras/jslibs/yui/array-invoke/array-invoke.js (+46/-0)
debian/extras/jslibs/yui/arraylist-add/arraylist-add-debug.js (+93/-0)
debian/extras/jslibs/yui/arraylist-add/arraylist-add-min.js (+7/-0)
debian/extras/jslibs/yui/arraylist-add/arraylist-add.js (+93/-0)
debian/extras/jslibs/yui/arraylist-filter/arraylist-filter-debug.js (+51/-0)
debian/extras/jslibs/yui/arraylist-filter/arraylist-filter-min.js (+7/-0)
debian/extras/jslibs/yui/arraylist-filter/arraylist-filter.js (+51/-0)
debian/extras/jslibs/yui/arraylist/arraylist-debug.js (+220/-0)
debian/extras/jslibs/yui/arraylist/arraylist-min.js (+7/-0)
debian/extras/jslibs/yui/arraylist/arraylist.js (+220/-0)
debian/extras/jslibs/yui/arraysort/arraysort-debug.js (+71/-0)
debian/extras/jslibs/yui/arraysort/arraysort-min.js (+7/-0)
debian/extras/jslibs/yui/arraysort/arraysort.js (+71/-0)
debian/extras/jslibs/yui/assets/skins/sam/autocomplete-list.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/calendar-base.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/calendar.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/calendarnavigator.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/console-filters.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/console.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/datatable-base-deprecated.css (+8/-0)
debian/extras/jslibs/yui/assets/skins/sam/datatable-base.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/datatable-message.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/datatable-scroll.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/datatable-sort.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/dial.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/node-flick.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/node-menunav.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/overlay.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/panel.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/resize-base.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/scrollview-base.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/scrollview-list.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/scrollview-scrollbars.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/skin.css (+35/-0)
debian/extras/jslibs/yui/assets/skins/sam/slider-base.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/tabview.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/test-console.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/test.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/widget-base.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/widget-buttons.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/widget-modality.css (+7/-0)
debian/extras/jslibs/yui/assets/skins/sam/widget-stack.css (+7/-0)
debian/extras/jslibs/yui/async-queue/async-queue-debug.js (+528/-0)
debian/extras/jslibs/yui/async-queue/async-queue-min.js (+7/-0)
debian/extras/jslibs/yui/async-queue/async-queue.js (+528/-0)
debian/extras/jslibs/yui/attribute-base/attribute-base-debug.js (+111/-0)
debian/extras/jslibs/yui/attribute-base/attribute-base-min.js (+7/-0)
debian/extras/jslibs/yui/attribute-base/attribute-base.js (+111/-0)
debian/extras/jslibs/yui/attribute-complex/attribute-complex-debug.js (+132/-0)
debian/extras/jslibs/yui/attribute-complex/attribute-complex-min.js (+7/-0)
debian/extras/jslibs/yui/attribute-complex/attribute-complex.js (+132/-0)
debian/extras/jslibs/yui/attribute-core/attribute-core-debug.js (+1029/-0)
debian/extras/jslibs/yui/attribute-core/attribute-core-min.js (+7/-0)
debian/extras/jslibs/yui/attribute-core/attribute-core.js (+1017/-0)
debian/extras/jslibs/yui/attribute-events/attribute-events-debug.js (+180/-0)
debian/extras/jslibs/yui/attribute-events/attribute-events-min.js (+7/-0)
debian/extras/jslibs/yui/attribute-events/attribute-events.js (+179/-0)
debian/extras/jslibs/yui/attribute-extras/attribute-extras-debug.js (+150/-0)
debian/extras/jslibs/yui/attribute-extras/attribute-extras-min.js (+7/-0)
debian/extras/jslibs/yui/attribute-extras/attribute-extras.js (+149/-0)
debian/extras/jslibs/yui/autocomplete-base/autocomplete-base-debug.js (+1552/-0)
debian/extras/jslibs/yui/autocomplete-base/autocomplete-base-min.js (+8/-0)
debian/extras/jslibs/yui/autocomplete-base/autocomplete-base.js (+1544/-0)
debian/extras/jslibs/yui/autocomplete-filters-accentfold/autocomplete-filters-accentfold-debug.js (+142/-0)
debian/extras/jslibs/yui/autocomplete-filters-accentfold/autocomplete-filters-accentfold-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-filters-accentfold/autocomplete-filters-accentfold.js (+142/-0)
debian/extras/jslibs/yui/autocomplete-filters/autocomplete-filters-debug.js (+245/-0)
debian/extras/jslibs/yui/autocomplete-filters/autocomplete-filters-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-filters/autocomplete-filters.js (+245/-0)
debian/extras/jslibs/yui/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-debug.js (+113/-0)
debian/extras/jslibs/yui/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold.js (+113/-0)
debian/extras/jslibs/yui/autocomplete-highlighters/autocomplete-highlighters-debug.js (+205/-0)
debian/extras/jslibs/yui/autocomplete-highlighters/autocomplete-highlighters-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-highlighters/autocomplete-highlighters.js (+205/-0)
debian/extras/jslibs/yui/autocomplete-list-keys/autocomplete-list-keys-debug.js (+192/-0)
debian/extras/jslibs/yui/autocomplete-list-keys/autocomplete-list-keys-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-list-keys/autocomplete-list-keys.js (+192/-0)
debian/extras/jslibs/yui/autocomplete-list/assets/autocomplete-list-core.css (+33/-0)
debian/extras/jslibs/yui/autocomplete-list/assets/skins/night/autocomplete-list-skin.css (+57/-0)
debian/extras/jslibs/yui/autocomplete-list/assets/skins/night/autocomplete-list.css (+7/-0)
debian/extras/jslibs/yui/autocomplete-list/assets/skins/sam/autocomplete-list-skin.css (+23/-0)
debian/extras/jslibs/yui/autocomplete-list/assets/skins/sam/autocomplete-list.css (+7/-0)
debian/extras/jslibs/yui/autocomplete-list/autocomplete-list-debug.js (+893/-0)
debian/extras/jslibs/yui/autocomplete-list/autocomplete-list-min.js (+8/-0)
debian/extras/jslibs/yui/autocomplete-list/autocomplete-list.js (+893/-0)
debian/extras/jslibs/yui/autocomplete-list/lang/autocomplete-list.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-list/lang/autocomplete-list_en.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-plugin/autocomplete-plugin-debug.js (+54/-0)
debian/extras/jslibs/yui/autocomplete-plugin/autocomplete-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-plugin/autocomplete-plugin.js (+54/-0)
debian/extras/jslibs/yui/autocomplete-sources/autocomplete-sources-debug.js (+482/-0)
debian/extras/jslibs/yui/autocomplete-sources/autocomplete-sources-min.js (+7/-0)
debian/extras/jslibs/yui/autocomplete-sources/autocomplete-sources.js (+482/-0)
debian/extras/jslibs/yui/base-base/base-base-debug.js (+354/-0)
debian/extras/jslibs/yui/base-base/base-base-min.js (+7/-0)
debian/extras/jslibs/yui/base-base/base-base.js (+352/-0)
debian/extras/jslibs/yui/base-build/base-build-debug.js (+428/-0)
debian/extras/jslibs/yui/base-build/base-build-min.js (+7/-0)
debian/extras/jslibs/yui/base-build/base-build.js (+428/-0)
debian/extras/jslibs/yui/base-core/base-core-debug.js (+621/-0)
debian/extras/jslibs/yui/base-core/base-core-min.js (+7/-0)
debian/extras/jslibs/yui/base-core/base-core.js (+616/-0)
debian/extras/jslibs/yui/base-pluginhost/base-pluginhost-debug.js (+42/-0)
debian/extras/jslibs/yui/base-pluginhost/base-pluginhost-min.js (+7/-0)
debian/extras/jslibs/yui/base-pluginhost/base-pluginhost.js (+42/-0)
debian/extras/jslibs/yui/button-base/button-base-debug.js (+344/-0)
debian/extras/jslibs/yui/button-base/button-base-min.js (+7/-0)
debian/extras/jslibs/yui/button-base/button-base.js (+344/-0)
debian/extras/jslibs/yui/button-core/button-core-debug.js (+253/-0)
debian/extras/jslibs/yui/button-core/button-core-min.js (+7/-0)
debian/extras/jslibs/yui/button-core/button-core.js (+253/-0)
debian/extras/jslibs/yui/button-group/button-group-debug.js (+182/-0)
debian/extras/jslibs/yui/button-group/button-group-min.js (+7/-0)
debian/extras/jslibs/yui/button-group/button-group.js (+182/-0)
debian/extras/jslibs/yui/button-plugin/button-plugin-debug.js (+138/-0)
debian/extras/jslibs/yui/button-plugin/button-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/button-plugin/button-plugin.js (+138/-0)
debian/extras/jslibs/yui/button/button-debug.js (+325/-0)
debian/extras/jslibs/yui/button/button-min.js (+7/-0)
debian/extras/jslibs/yui/button/button.js (+325/-0)
debian/extras/jslibs/yui/cache-base/cache-base-debug.js (+448/-0)
debian/extras/jslibs/yui/cache-base/cache-base-min.js (+7/-0)
debian/extras/jslibs/yui/cache-base/cache-base.js (+438/-0)
debian/extras/jslibs/yui/cache-offline/cache-offline-debug.js (+347/-0)
debian/extras/jslibs/yui/cache-offline/cache-offline-min.js (+7/-0)
debian/extras/jslibs/yui/cache-offline/cache-offline.js (+339/-0)
debian/extras/jslibs/yui/cache-plugin/cache-plugin-debug.js (+59/-0)
debian/extras/jslibs/yui/cache-plugin/cache-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/cache-plugin/cache-plugin.js (+59/-0)
debian/extras/jslibs/yui/calendar-base/assets/calendar-base-core.css (+27/-0)
debian/extras/jslibs/yui/calendar-base/assets/calendar-core.css (+37/-0)
debian/extras/jslibs/yui/calendar-base/assets/calendarnavigator-core.css (+22/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/night/calendar-base-skin.css (+88/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/night/calendar-base.css (+7/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/night/calendar-skin.css (+13/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/night/calendarnavigator-skin.css (+39/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/sam/calendar-base-skin.css (+94/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/sam/calendar-base.css (+7/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/sam/calendar-skin.css (+13/-0)
debian/extras/jslibs/yui/calendar-base/assets/skins/sam/calendarnavigator-skin.css (+39/-0)
debian/extras/jslibs/yui/calendar-base/calendar-base-debug.js (+1702/-0)
debian/extras/jslibs/yui/calendar-base/calendar-base-min.js (+9/-0)
debian/extras/jslibs/yui/calendar-base/calendar-base.js (+1702/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_de.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_en.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_fr.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_ja.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_nb-NO.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_pt-BR.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_ru.js (+7/-0)
debian/extras/jslibs/yui/calendar-base/lang/calendar-base_zh-HANT-TW.js (+7/-0)
debian/extras/jslibs/yui/calendar/assets/calendar-base-core.css (+27/-0)
debian/extras/jslibs/yui/calendar/assets/calendar-core.css (+37/-0)
debian/extras/jslibs/yui/calendar/assets/calendarnavigator-core.css (+22/-0)
debian/extras/jslibs/yui/calendar/assets/skins/night/calendar-base-skin.css (+88/-0)
debian/extras/jslibs/yui/calendar/assets/skins/night/calendar-skin.css (+13/-0)
debian/extras/jslibs/yui/calendar/assets/skins/night/calendar.css (+7/-0)
debian/extras/jslibs/yui/calendar/assets/skins/night/calendarnavigator-skin.css (+39/-0)
debian/extras/jslibs/yui/calendar/assets/skins/sam/calendar-base-skin.css (+94/-0)
debian/extras/jslibs/yui/calendar/assets/skins/sam/calendar-skin.css (+13/-0)
debian/extras/jslibs/yui/calendar/assets/skins/sam/calendar.css (+7/-0)
debian/extras/jslibs/yui/calendar/assets/skins/sam/calendarnavigator-skin.css (+39/-0)
debian/extras/jslibs/yui/calendar/calendar-base-debug.js (+183/-0)
debian/extras/jslibs/yui/calendar/calendar-base-min.js (+7/-0)
debian/extras/jslibs/yui/calendar/calendar-base.js (+182/-0)
debian/extras/jslibs/yui/calendar/calendar-debug.js (+544/-0)
debian/extras/jslibs/yui/calendar/calendar-min.js (+7/-0)
debian/extras/jslibs/yui/calendar/calendar.js (+544/-0)
debian/extras/jslibs/yui/calendar/lang/calendar.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_de.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_en.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_fr.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_ja.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_nb-NO.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_pt-BR.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_ru.js (+7/-0)
debian/extras/jslibs/yui/calendar/lang/calendar_zh-HANT-TW.js (+7/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/calendar-base-core.css (+27/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/calendar-core.css (+37/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/calendarnavigator-core.css (+22/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/night/calendar-base-skin.css (+88/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/night/calendar-skin.css (+13/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/night/calendarnavigator-skin.css (+39/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/night/calendarnavigator.css (+7/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/sam/calendar-base-skin.css (+94/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/sam/calendar-skin.css (+13/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/sam/calendarnavigator-skin.css (+39/-0)
debian/extras/jslibs/yui/calendarnavigator/assets/skins/sam/calendarnavigator.css (+7/-0)
debian/extras/jslibs/yui/calendarnavigator/calendarnavigator-debug.js (+284/-0)
debian/extras/jslibs/yui/calendarnavigator/calendarnavigator-min.js (+7/-0)
debian/extras/jslibs/yui/calendarnavigator/calendarnavigator.js (+284/-0)
debian/extras/jslibs/yui/charts-base/charts-base-debug.js (+15451/-0)
debian/extras/jslibs/yui/charts-base/charts-base-min.js (+27/-0)
debian/extras/jslibs/yui/charts-base/charts-base.js (+15451/-0)
debian/extras/jslibs/yui/charts-legend/charts-legend-debug.js (+1668/-0)
debian/extras/jslibs/yui/charts-legend/charts-legend-min.js (+9/-0)
debian/extras/jslibs/yui/charts-legend/charts-legend.js (+1668/-0)
debian/extras/jslibs/yui/charts/charts-debug.js (+30/-0)
debian/extras/jslibs/yui/charts/charts-min.js (+7/-0)
debian/extras/jslibs/yui/charts/charts.js (+30/-0)
debian/extras/jslibs/yui/classnamemanager/classnamemanager-debug.js (+90/-0)
debian/extras/jslibs/yui/classnamemanager/classnamemanager-min.js (+7/-0)
debian/extras/jslibs/yui/classnamemanager/classnamemanager.js (+90/-0)
debian/extras/jslibs/yui/clickable-rail/assets/slider-base-core.css (+37/-0)
debian/extras/jslibs/yui/clickable-rail/assets/slider-core.css (+37/-0)
debian/extras/jslibs/yui/clickable-rail/clickable-rail-debug.js (+219/-0)
debian/extras/jslibs/yui/clickable-rail/clickable-rail-min.js (+7/-0)
debian/extras/jslibs/yui/clickable-rail/clickable-rail.js (+219/-0)
debian/extras/jslibs/yui/console-filters/assets/console-filters-core.css (+6/-0)
debian/extras/jslibs/yui/console-filters/assets/skins/sam/console-filters-skin.css (+33/-0)
debian/extras/jslibs/yui/console-filters/assets/skins/sam/console-filters.css (+7/-0)
debian/extras/jslibs/yui/console-filters/console-filters-debug.js (+729/-0)
debian/extras/jslibs/yui/console-filters/console-filters-min.js (+7/-0)
debian/extras/jslibs/yui/console-filters/console-filters.js (+729/-0)
debian/extras/jslibs/yui/console/assets/console-core.css (+6/-0)
debian/extras/jslibs/yui/console/assets/console-filters-core.css (+6/-0)
debian/extras/jslibs/yui/console/assets/skins/sam/console-filters-skin.css (+33/-0)
debian/extras/jslibs/yui/console/assets/skins/sam/console-filters.css (+7/-0)
debian/extras/jslibs/yui/console/assets/skins/sam/console-skin.css (+191/-0)
debian/extras/jslibs/yui/console/assets/skins/sam/console.css (+7/-0)
debian/extras/jslibs/yui/console/console-debug.js (+1523/-0)
debian/extras/jslibs/yui/console/console-min.js (+8/-0)
debian/extras/jslibs/yui/console/console.js (+1523/-0)
debian/extras/jslibs/yui/console/lang/console.js (+7/-0)
debian/extras/jslibs/yui/console/lang/console_en.js (+7/-0)
debian/extras/jslibs/yui/console/lang/console_es.js (+7/-0)
debian/extras/jslibs/yui/console/lang/console_ja.js (+7/-0)
debian/extras/jslibs/yui/cookie/cookie-debug.js (+505/-0)
debian/extras/jslibs/yui/cookie/cookie-min.js (+7/-0)
debian/extras/jslibs/yui/cookie/cookie.js (+505/-0)
debian/extras/jslibs/yui/createlink-base/createlink-base-debug.js (+91/-0)
debian/extras/jslibs/yui/createlink-base/createlink-base-min.js (+7/-0)
debian/extras/jslibs/yui/createlink-base/createlink-base.js (+90/-0)
debian/extras/jslibs/yui/cssbase-context/base-context-min.css (+7/-0)
debian/extras/jslibs/yui/cssbase-context/base-context.css (+81/-0)
debian/extras/jslibs/yui/cssbase-context/cssbase-context-min.css (+7/-0)
debian/extras/jslibs/yui/cssbase-context/cssbase-context.css (+81/-0)
debian/extras/jslibs/yui/cssbase/base-min.css (+7/-0)
debian/extras/jslibs/yui/cssbase/base.css (+81/-0)
debian/extras/jslibs/yui/cssbase/cssbase-min.css (+7/-0)
debian/extras/jslibs/yui/cssbase/cssbase.css (+81/-0)
debian/extras/jslibs/yui/cssbutton/cssbutton-min.css (+7/-0)
debian/extras/jslibs/yui/cssbutton/cssbutton.css (+148/-0)
debian/extras/jslibs/yui/cssfonts-context/cssfonts-context-min.css (+7/-0)
debian/extras/jslibs/yui/cssfonts-context/cssfonts-context.css (+48/-0)
debian/extras/jslibs/yui/cssfonts-context/fonts-context-min.css (+7/-0)
debian/extras/jslibs/yui/cssfonts-context/fonts-context.css (+48/-0)
debian/extras/jslibs/yui/cssfonts/cssfonts-min.css (+7/-0)
debian/extras/jslibs/yui/cssfonts/cssfonts.css (+48/-0)
debian/extras/jslibs/yui/cssfonts/fonts-min.css (+7/-0)
debian/extras/jslibs/yui/cssfonts/fonts.css (+48/-0)
debian/extras/jslibs/yui/cssgrids-base/cssgrids-base-min.css (+7/-0)
debian/extras/jslibs/yui/cssgrids-base/cssgrids-base.css (+21/-0)
debian/extras/jslibs/yui/cssgrids-context-deprecated/grids-context-min.css (+8/-0)
debian/extras/jslibs/yui/cssgrids-context-deprecated/grids-context.css (+490/-0)
debian/extras/jslibs/yui/cssgrids-units/cssgrids-units-min.css (+7/-0)
debian/extras/jslibs/yui/cssgrids-units/cssgrids-units.css (+154/-0)
debian/extras/jslibs/yui/cssgrids/cssgrids-min.css (+7/-0)
debian/extras/jslibs/yui/cssgrids/cssgrids.css (+167/-0)
debian/extras/jslibs/yui/cssgrids/grids-min.css (+7/-0)
debian/extras/jslibs/yui/cssgrids/grids.css (+167/-0)
debian/extras/jslibs/yui/cssreset-context/cssreset-context-min.css (+7/-0)
debian/extras/jslibs/yui/cssreset-context/cssreset-context.css (+126/-0)
debian/extras/jslibs/yui/cssreset-context/reset-context-min.css (+7/-0)
debian/extras/jslibs/yui/cssreset-context/reset-context.css (+126/-0)
debian/extras/jslibs/yui/cssreset/cssreset-min.css (+7/-0)
debian/extras/jslibs/yui/cssreset/cssreset.css (+126/-0)
debian/extras/jslibs/yui/cssreset/reset-min.css (+7/-0)
debian/extras/jslibs/yui/cssreset/reset.css (+126/-0)
debian/extras/jslibs/yui/dataschema-array/dataschema-array-debug.js (+195/-0)
debian/extras/jslibs/yui/dataschema-array/dataschema-array-min.js (+7/-0)
debian/extras/jslibs/yui/dataschema-array/dataschema-array.js (+192/-0)
debian/extras/jslibs/yui/dataschema-base/dataschema-base-debug.js (+73/-0)
debian/extras/jslibs/yui/dataschema-base/dataschema-base-min.js (+7/-0)
debian/extras/jslibs/yui/dataschema-base/dataschema-base.js (+72/-0)
debian/extras/jslibs/yui/dataschema-json/dataschema-json-debug.js (+449/-0)
debian/extras/jslibs/yui/dataschema-json/dataschema-json-min.js (+7/-0)
debian/extras/jslibs/yui/dataschema-json/dataschema-json.js (+445/-0)
debian/extras/jslibs/yui/dataschema-text/dataschema-text-debug.js (+189/-0)
debian/extras/jslibs/yui/dataschema-text/dataschema-text-min.js (+7/-0)
debian/extras/jslibs/yui/dataschema-text/dataschema-text.js (+188/-0)
debian/extras/jslibs/yui/dataschema-xml/dataschema-xml-debug.js (+387/-0)
debian/extras/jslibs/yui/dataschema-xml/dataschema-xml-min.js (+7/-0)
debian/extras/jslibs/yui/dataschema-xml/dataschema-xml.js (+385/-0)
debian/extras/jslibs/yui/datasource-arrayschema/datasource-arrayschema-debug.js (+112/-0)
debian/extras/jslibs/yui/datasource-arrayschema/datasource-arrayschema-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-arrayschema/datasource-arrayschema.js (+112/-0)
debian/extras/jslibs/yui/datasource-cache/datasource-cache-debug.js (+172/-0)
debian/extras/jslibs/yui/datasource-cache/datasource-cache-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-cache/datasource-cache.js (+172/-0)
debian/extras/jslibs/yui/datasource-function/datasource-function-debug.js (+111/-0)
debian/extras/jslibs/yui/datasource-function/datasource-function-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-function/datasource-function.js (+109/-0)
debian/extras/jslibs/yui/datasource-get/datasource-get-debug.js (+219/-0)
debian/extras/jslibs/yui/datasource-get/datasource-get-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-get/datasource-get.js (+215/-0)
debian/extras/jslibs/yui/datasource-io/datasource-io-debug.js (+210/-0)
debian/extras/jslibs/yui/datasource-io/datasource-io-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-io/datasource-io.js (+207/-0)
debian/extras/jslibs/yui/datasource-jsonschema/datasource-jsonschema-debug.js (+109/-0)
debian/extras/jslibs/yui/datasource-jsonschema/datasource-jsonschema-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-jsonschema/datasource-jsonschema.js (+109/-0)
debian/extras/jslibs/yui/datasource-local/datasource-local-debug.js (+408/-0)
debian/extras/jslibs/yui/datasource-local/datasource-local-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-local/datasource-local.js (+404/-0)
debian/extras/jslibs/yui/datasource-polling/datasource-polling-debug.js (+99/-0)
debian/extras/jslibs/yui/datasource-polling/datasource-polling-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-polling/datasource-polling.js (+99/-0)
debian/extras/jslibs/yui/datasource-textschema/datasource-textschema-debug.js (+108/-0)
debian/extras/jslibs/yui/datasource-textschema/datasource-textschema-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-textschema/datasource-textschema.js (+108/-0)
debian/extras/jslibs/yui/datasource-xmlschema/datasource-xmlschema-debug.js (+108/-0)
debian/extras/jslibs/yui/datasource-xmlschema/datasource-xmlschema-min.js (+7/-0)
debian/extras/jslibs/yui/datasource-xmlschema/datasource-xmlschema.js (+108/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/assets/datatable-base-deprecated-core.css (+93/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css (+295/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css (+8/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css (+243/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css (+8/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/datatable-base-deprecated-debug.js (+1709/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/datatable-base-deprecated-min.js (+8/-0)
debian/extras/jslibs/yui/datatable-base-deprecated/datatable-base-deprecated.js (+1709/-0)
debian/extras/jslibs/yui/datatable-base/assets/datatable-base-core.css (+10/-0)
debian/extras/jslibs/yui/datatable-base/assets/skins/night/datatable-base-skin.css (+80/-0)
debian/extras/jslibs/yui/datatable-base/assets/skins/night/datatable-base.css (+7/-0)
debian/extras/jslibs/yui/datatable-base/assets/skins/sam/datatable-base-skin.css (+75/-0)
debian/extras/jslibs/yui/datatable-base/assets/skins/sam/datatable-base.css (+7/-0)
debian/extras/jslibs/yui/datatable-base/datatable-base-debug.js (+241/-0)
debian/extras/jslibs/yui/datatable-base/datatable-base-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-base/datatable-base.js (+241/-0)
debian/extras/jslibs/yui/datatable-body/datatable-body-debug.js (+898/-0)
debian/extras/jslibs/yui/datatable-body/datatable-body-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-body/datatable-body.js (+898/-0)
debian/extras/jslibs/yui/datatable-column-widths/datatable-column-widths-debug.js (+307/-0)
debian/extras/jslibs/yui/datatable-column-widths/datatable-column-widths-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-column-widths/datatable-column-widths.js (+307/-0)
debian/extras/jslibs/yui/datatable-core/datatable-core-debug.js (+1628/-0)
debian/extras/jslibs/yui/datatable-core/datatable-core-min.js (+8/-0)
debian/extras/jslibs/yui/datatable-core/datatable-core.js (+1626/-0)
debian/extras/jslibs/yui/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js (+189/-0)
debian/extras/jslibs/yui/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-datasource-deprecated/datatable-datasource-deprecated.js (+189/-0)
debian/extras/jslibs/yui/datatable-datasource/datatable-datasource-debug.js (+186/-0)
debian/extras/jslibs/yui/datatable-datasource/datatable-datasource-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-datasource/datatable-datasource.js (+186/-0)
debian/extras/jslibs/yui/datatable-head/datatable-head-debug.js (+507/-0)
debian/extras/jslibs/yui/datatable-head/datatable-head-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-head/datatable-head.js (+507/-0)
debian/extras/jslibs/yui/datatable-message/assets/datatable-message-core.css (+14/-0)
debian/extras/jslibs/yui/datatable-message/assets/skins/night/datatable-message-skin.css (+12/-0)
debian/extras/jslibs/yui/datatable-message/assets/skins/night/datatable-message.css (+7/-0)
debian/extras/jslibs/yui/datatable-message/assets/skins/sam/datatable-message-skin.css (+11/-0)
debian/extras/jslibs/yui/datatable-message/assets/skins/sam/datatable-message.css (+7/-0)
debian/extras/jslibs/yui/datatable-message/datatable-message-debug.js (+294/-0)
debian/extras/jslibs/yui/datatable-message/datatable-message-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-message/datatable-message.js (+294/-0)
debian/extras/jslibs/yui/datatable-message/lang/datatable-message.js (+7/-0)
debian/extras/jslibs/yui/datatable-message/lang/datatable-message_en.js (+7/-0)
debian/extras/jslibs/yui/datatable-mutable/datatable-mutable-debug.js (+641/-0)
debian/extras/jslibs/yui/datatable-mutable/datatable-mutable-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-mutable/datatable-mutable.js (+636/-0)
debian/extras/jslibs/yui/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js (+738/-0)
debian/extras/jslibs/yui/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js (+8/-0)
debian/extras/jslibs/yui/datatable-scroll-deprecated/datatable-scroll-deprecated.js (+738/-0)
debian/extras/jslibs/yui/datatable-scroll/assets/datatable-scroll-core.css (+77/-0)
debian/extras/jslibs/yui/datatable-scroll/assets/skins/night/datatable-scroll-skin.css (+31/-0)
debian/extras/jslibs/yui/datatable-scroll/assets/skins/night/datatable-scroll.css (+7/-0)
debian/extras/jslibs/yui/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css (+30/-0)
debian/extras/jslibs/yui/datatable-scroll/assets/skins/sam/datatable-scroll.css (+7/-0)
debian/extras/jslibs/yui/datatable-scroll/datatable-scroll-debug.js (+1391/-0)
debian/extras/jslibs/yui/datatable-scroll/datatable-scroll-min.js (+9/-0)
debian/extras/jslibs/yui/datatable-scroll/datatable-scroll.js (+1391/-0)
debian/extras/jslibs/yui/datatable-sort-deprecated/datatable-sort-deprecated-debug.js (+371/-0)
debian/extras/jslibs/yui/datatable-sort-deprecated/datatable-sort-deprecated-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-sort-deprecated/datatable-sort-deprecated.js (+371/-0)
debian/extras/jslibs/yui/datatable-sort-deprecated/lang/datatable-sort-deprecated.js (+7/-0)
debian/extras/jslibs/yui/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js (+7/-0)
debian/extras/jslibs/yui/datatable-sort/assets/datatable-sort-core.css (+15/-0)
debian/extras/jslibs/yui/datatable-sort/assets/skins/night/datatable-sort-skin.css (+91/-0)
debian/extras/jslibs/yui/datatable-sort/assets/skins/night/datatable-sort.css (+7/-0)
debian/extras/jslibs/yui/datatable-sort/assets/skins/sam/datatable-sort-skin.css (+49/-0)
debian/extras/jslibs/yui/datatable-sort/assets/skins/sam/datatable-sort.css (+7/-0)
debian/extras/jslibs/yui/datatable-sort/datatable-sort-debug.js (+904/-0)
debian/extras/jslibs/yui/datatable-sort/datatable-sort-min.js (+7/-0)
debian/extras/jslibs/yui/datatable-sort/datatable-sort.js (+904/-0)
debian/extras/jslibs/yui/datatable-sort/lang/datatable-sort.js (+7/-0)
debian/extras/jslibs/yui/datatable-sort/lang/datatable-sort_en.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/datatype-date-format-debug.js (+441/-0)
debian/extras/jslibs/yui/datatype-date-format/datatype-date-format-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/datatype-date-format.js (+437/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ar-JO.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ar.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ca-ES.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ca.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_da-DK.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_da.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_de-AT.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_de-DE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_de.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_el-GR.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_el.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-AU.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-CA.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-GB.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-IE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-IN.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-JO.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-MY.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-NZ.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-PH.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-SG.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en-US.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_en.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-AR.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-BO.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-CL.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-CO.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-EC.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-ES.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-MX.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-PE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-PY.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-US.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-UY.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es-VE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_es.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_fi-FI.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_fi.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_fr-BE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_fr-CA.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_fr-FR.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_fr.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_hi-IN.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_hi.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_id-ID.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_id.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_it-IT.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_it.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ja-JP.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ja.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ko-KR.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ko.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ms-MY.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ms.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_nb-NO.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_nb.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_nl-BE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_nl-NL.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_nl.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_pl-PL.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_pl.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_pt-BR.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_pt.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ro-RO.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ro.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ru-RU.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_ru.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_sv-SE.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_sv.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_th-TH.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_th.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_tr-TR.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_tr.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_vi-VN.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_vi.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_zh-Hans.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-format/lang/datatype-date-format_zh-Hant.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-math/datatype-date-math-debug.js (+211/-0)
debian/extras/jslibs/yui/datatype-date-math/datatype-date-math-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-math/datatype-date-math.js (+210/-0)
debian/extras/jslibs/yui/datatype-date-parse/datatype-date-parse-debug.js (+52/-0)
debian/extras/jslibs/yui/datatype-date-parse/datatype-date-parse-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-date-parse/datatype-date-parse.js (+51/-0)
debian/extras/jslibs/yui/datatype-number-format/datatype-number-format-debug.js (+111/-0)
debian/extras/jslibs/yui/datatype-number-format/datatype-number-format-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-number-format/datatype-number-format.js (+110/-0)
debian/extras/jslibs/yui/datatype-number-parse/datatype-number-parse-debug.js (+44/-0)
debian/extras/jslibs/yui/datatype-number-parse/datatype-number-parse-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-number-parse/datatype-number-parse.js (+43/-0)
debian/extras/jslibs/yui/datatype-xml-format/datatype-xml-format-debug.js (+59/-0)
debian/extras/jslibs/yui/datatype-xml-format/datatype-xml-format-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-xml-format/datatype-xml-format.js (+58/-0)
debian/extras/jslibs/yui/datatype-xml-parse/datatype-xml-parse-debug.js (+62/-0)
debian/extras/jslibs/yui/datatype-xml-parse/datatype-xml-parse-min.js (+7/-0)
debian/extras/jslibs/yui/datatype-xml-parse/datatype-xml-parse.js (+60/-0)
debian/extras/jslibs/yui/dd-constrain/dd-constrain-debug.js (+563/-0)
debian/extras/jslibs/yui/dd-constrain/dd-constrain-min.js (+7/-0)
debian/extras/jslibs/yui/dd-constrain/dd-constrain.js (+563/-0)
debian/extras/jslibs/yui/dd-ddm-base/dd-ddm-base-debug.js (+360/-0)
debian/extras/jslibs/yui/dd-ddm-base/dd-ddm-base-min.js (+7/-0)
debian/extras/jslibs/yui/dd-ddm-base/dd-ddm-base.js (+360/-0)
debian/extras/jslibs/yui/dd-ddm-drop/dd-ddm-drop-debug.js (+414/-0)
debian/extras/jslibs/yui/dd-ddm-drop/dd-ddm-drop-min.js (+7/-0)
debian/extras/jslibs/yui/dd-ddm-drop/dd-ddm-drop.js (+414/-0)
debian/extras/jslibs/yui/dd-ddm/dd-ddm-debug.js (+130/-0)
debian/extras/jslibs/yui/dd-ddm/dd-ddm-min.js (+7/-0)
debian/extras/jslibs/yui/dd-ddm/dd-ddm.js (+130/-0)
debian/extras/jslibs/yui/dd-delegate/dd-delegate-debug.js (+341/-0)
debian/extras/jslibs/yui/dd-delegate/dd-delegate-min.js (+7/-0)
debian/extras/jslibs/yui/dd-delegate/dd-delegate.js (+341/-0)
debian/extras/jslibs/yui/dd-drag/dd-drag-debug.js (+1269/-0)
debian/extras/jslibs/yui/dd-drag/dd-drag-min.js (+8/-0)
debian/extras/jslibs/yui/dd-drag/dd-drag.js (+1266/-0)
debian/extras/jslibs/yui/dd-drop-plugin/dd-drop-plugin-debug.js (+50/-0)
debian/extras/jslibs/yui/dd-drop-plugin/dd-drop-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/dd-drop-plugin/dd-drop-plugin.js (+50/-0)
debian/extras/jslibs/yui/dd-drop/dd-drop-debug.js (+564/-0)
debian/extras/jslibs/yui/dd-drop/dd-drop-min.js (+7/-0)
debian/extras/jslibs/yui/dd-drop/dd-drop.js (+563/-0)
debian/extras/jslibs/yui/dd-gestures/dd-gestures-debug.js (+47/-0)
debian/extras/jslibs/yui/dd-gestures/dd-gestures-min.js (+7/-0)
debian/extras/jslibs/yui/dd-gestures/dd-gestures.js (+45/-0)
debian/extras/jslibs/yui/dd-plugin/dd-plugin-debug.js (+211/-0)
debian/extras/jslibs/yui/dd-plugin/dd-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/dd-plugin/dd-plugin.js (+206/-0)
debian/extras/jslibs/yui/dd-proxy/dd-proxy-debug.js (+255/-0)
debian/extras/jslibs/yui/dd-proxy/dd-proxy-min.js (+7/-0)
debian/extras/jslibs/yui/dd-proxy/dd-proxy.js (+255/-0)
debian/extras/jslibs/yui/dd-scroll/dd-scroll-debug.js (+425/-0)
debian/extras/jslibs/yui/dd-scroll/dd-scroll-min.js (+7/-0)
debian/extras/jslibs/yui/dd-scroll/dd-scroll.js (+425/-0)
debian/extras/jslibs/yui/dial/assets/dial-core.css (+48/-0)
debian/extras/jslibs/yui/dial/assets/skins/night/dial-skin.css (+95/-0)
debian/extras/jslibs/yui/dial/assets/skins/night/dial.css (+7/-0)
debian/extras/jslibs/yui/dial/assets/skins/sam/dial-skin.css (+81/-0)
debian/extras/jslibs/yui/dial/assets/skins/sam/dial.css (+7/-0)
debian/extras/jslibs/yui/dial/dial-debug.js (+1298/-0)
debian/extras/jslibs/yui/dial/dial-min.js (+9/-0)
debian/extras/jslibs/yui/dial/dial.js (+1298/-0)
debian/extras/jslibs/yui/dial/lang/dial.js (+7/-0)
debian/extras/jslibs/yui/dial/lang/dial_en.js (+7/-0)
debian/extras/jslibs/yui/dial/lang/dial_es.js (+7/-0)
debian/extras/jslibs/yui/dom-attrs/dom-attrs-debug.js (+214/-0)
debian/extras/jslibs/yui/dom-attrs/dom-attrs-min.js (+7/-0)
debian/extras/jslibs/yui/dom-attrs/dom-attrs.js (+211/-0)
debian/extras/jslibs/yui/dom-base/dom-base-debug.js (+694/-0)
debian/extras/jslibs/yui/dom-base/dom-base-min.js (+8/-0)
debian/extras/jslibs/yui/dom-base/dom-base.js (+690/-0)
debian/extras/jslibs/yui/dom-class/dom-class-debug.js (+98/-0)
debian/extras/jslibs/yui/dom-class/dom-class-min.js (+7/-0)
debian/extras/jslibs/yui/dom-class/dom-class.js (+97/-0)
debian/extras/jslibs/yui/dom-core/dom-core-debug.js (+379/-0)
debian/extras/jslibs/yui/dom-core/dom-core-min.js (+7/-0)
debian/extras/jslibs/yui/dom-core/dom-core.js (+379/-0)
debian/extras/jslibs/yui/dom-create/dom-create-debug.js (+285/-0)
debian/extras/jslibs/yui/dom-create/dom-create-min.js (+7/-0)
debian/extras/jslibs/yui/dom-create/dom-create.js (+284/-0)
debian/extras/jslibs/yui/dom-deprecated/dom-deprecated-debug.js (+67/-0)
debian/extras/jslibs/yui/dom-deprecated/dom-deprecated-min.js (+7/-0)
debian/extras/jslibs/yui/dom-deprecated/dom-deprecated.js (+67/-0)
debian/extras/jslibs/yui/dom-screen/dom-screen-debug.js (+617/-0)
debian/extras/jslibs/yui/dom-screen/dom-screen-min.js (+7/-0)
debian/extras/jslibs/yui/dom-screen/dom-screen.js (+611/-0)
debian/extras/jslibs/yui/dom-size/dom-size-debug.js (+54/-0)
debian/extras/jslibs/yui/dom-size/dom-size-min.js (+7/-0)
debian/extras/jslibs/yui/dom-size/dom-size.js (+54/-0)
debian/extras/jslibs/yui/dom-style-ie/dom-style-ie-debug.js (+312/-0)
debian/extras/jslibs/yui/dom-style-ie/dom-style-ie-min.js (+7/-0)
debian/extras/jslibs/yui/dom-style-ie/dom-style-ie.js (+309/-0)
debian/extras/jslibs/yui/dom-style/dom-style-debug.js (+333/-0)
debian/extras/jslibs/yui/dom-style/dom-style-min.js (+7/-0)
debian/extras/jslibs/yui/dom-style/dom-style.js (+333/-0)
debian/extras/jslibs/yui/dump/dump-debug.js (+111/-0)
debian/extras/jslibs/yui/dump/dump-min.js (+7/-0)
debian/extras/jslibs/yui/dump/dump.js (+111/-0)
debian/extras/jslibs/yui/editor-base/editor-base-debug.js (+914/-0)
debian/extras/jslibs/yui/editor-base/editor-base-min.js (+8/-0)
debian/extras/jslibs/yui/editor-base/editor-base.js (+910/-0)
debian/extras/jslibs/yui/editor-bidi/editor-bidi-debug.js (+342/-0)
debian/extras/jslibs/yui/editor-bidi/editor-bidi-min.js (+7/-0)
debian/extras/jslibs/yui/editor-bidi/editor-bidi.js (+342/-0)
debian/extras/jslibs/yui/editor-br/editor-br-debug.js (+137/-0)
debian/extras/jslibs/yui/editor-br/editor-br-min.js (+7/-0)
debian/extras/jslibs/yui/editor-br/editor-br.js (+137/-0)
debian/extras/jslibs/yui/editor-lists/editor-lists-debug.js (+131/-0)
debian/extras/jslibs/yui/editor-lists/editor-lists-min.js (+7/-0)
debian/extras/jslibs/yui/editor-lists/editor-lists.js (+126/-0)
debian/extras/jslibs/yui/editor-para-base/editor-para-base-debug.js (+130/-0)
debian/extras/jslibs/yui/editor-para-base/editor-para-base-min.js (+7/-0)
debian/extras/jslibs/yui/editor-para-base/editor-para-base.js (+129/-0)
debian/extras/jslibs/yui/editor-para-ie/editor-para-ie-debug.js (+131/-0)
debian/extras/jslibs/yui/editor-para-ie/editor-para-ie-min.js (+7/-0)
debian/extras/jslibs/yui/editor-para-ie/editor-para-ie.js (+131/-0)
debian/extras/jslibs/yui/editor-para/editor-para-debug.js (+306/-0)
debian/extras/jslibs/yui/editor-para/editor-para-min.js (+7/-0)
debian/extras/jslibs/yui/editor-para/editor-para.js (+305/-0)
debian/extras/jslibs/yui/editor-selection/editor-selection-debug.js (+1028/-0)
debian/extras/jslibs/yui/editor-selection/editor-selection-min.js (+8/-0)
debian/extras/jslibs/yui/editor-selection/editor-selection.js (+1007/-0)
debian/extras/jslibs/yui/editor-tab/editor-tab-debug.js (+75/-0)
debian/extras/jslibs/yui/editor-tab/editor-tab-min.js (+7/-0)
debian/extras/jslibs/yui/editor-tab/editor-tab.js (+74/-0)
debian/extras/jslibs/yui/escape/escape-debug.js (+98/-0)
debian/extras/jslibs/yui/escape/escape-min.js (+7/-0)
debian/extras/jslibs/yui/escape/escape.js (+98/-0)
debian/extras/jslibs/yui/event-base-ie/event-base-ie-debug.js (+309/-0)
debian/extras/jslibs/yui/event-base-ie/event-base-ie-min.js (+9/-0)
debian/extras/jslibs/yui/event-base-ie/event-base-ie.js (+309/-0)
debian/extras/jslibs/yui/event-base/event-base-debug.js (+1383/-0)
debian/extras/jslibs/yui/event-base/event-base-min.js (+8/-0)
debian/extras/jslibs/yui/event-base/event-base.js (+1372/-0)
debian/extras/jslibs/yui/event-contextmenu/event-contextmenu-debug.js (+191/-0)
debian/extras/jslibs/yui/event-contextmenu/event-contextmenu-min.js (+7/-0)
debian/extras/jslibs/yui/event-contextmenu/event-contextmenu.js (+191/-0)
debian/extras/jslibs/yui/event-custom-base/event-custom-base-debug.js (+2220/-0)
debian/extras/jslibs/yui/event-custom-base/event-custom-base-min.js (+9/-0)
debian/extras/jslibs/yui/event-custom-base/event-custom-base.js (+2206/-0)
debian/extras/jslibs/yui/event-custom-complex/event-custom-complex-debug.js (+505/-0)
debian/extras/jslibs/yui/event-custom-complex/event-custom-complex-min.js (+7/-0)
debian/extras/jslibs/yui/event-custom-complex/event-custom-complex.js (+504/-0)
debian/extras/jslibs/yui/event-delegate/event-delegate-debug.js (+329/-0)
debian/extras/jslibs/yui/event-delegate/event-delegate-min.js (+7/-0)
debian/extras/jslibs/yui/event-delegate/event-delegate.js (+328/-0)
debian/extras/jslibs/yui/event-flick/event-flick-debug.js (+270/-0)
debian/extras/jslibs/yui/event-flick/event-flick-min.js (+7/-0)
debian/extras/jslibs/yui/event-flick/event-flick.js (+270/-0)
debian/extras/jslibs/yui/event-focus/event-focus-debug.js (+246/-0)
debian/extras/jslibs/yui/event-focus/event-focus-min.js (+7/-0)
debian/extras/jslibs/yui/event-focus/event-focus.js (+246/-0)
debian/extras/jslibs/yui/event-hover/event-hover-debug.js (+76/-0)
debian/extras/jslibs/yui/event-hover/event-hover-min.js (+7/-0)
debian/extras/jslibs/yui/event-hover/event-hover.js (+76/-0)
debian/extras/jslibs/yui/event-key/event-key-debug.js (+177/-0)
debian/extras/jslibs/yui/event-key/event-key-min.js (+7/-0)
debian/extras/jslibs/yui/event-key/event-key.js (+177/-0)
debian/extras/jslibs/yui/event-mouseenter/event-mouseenter-debug.js (+135/-0)
debian/extras/jslibs/yui/event-mouseenter/event-mouseenter-min.js (+7/-0)
debian/extras/jslibs/yui/event-mouseenter/event-mouseenter.js (+135/-0)
debian/extras/jslibs/yui/event-mousewheel/event-mousewheel-debug.js (+56/-0)
debian/extras/jslibs/yui/event-mousewheel/event-mousewheel-min.js (+7/-0)
debian/extras/jslibs/yui/event-mousewheel/event-mousewheel.js (+56/-0)
debian/extras/jslibs/yui/event-move/event-move-debug.js (+523/-0)
debian/extras/jslibs/yui/event-move/event-move-min.js (+7/-0)
debian/extras/jslibs/yui/event-move/event-move.js (+513/-0)
debian/extras/jslibs/yui/event-outside/event-outside-debug.js (+106/-0)
debian/extras/jslibs/yui/event-outside/event-outside-min.js (+7/-0)
debian/extras/jslibs/yui/event-outside/event-outside.js (+106/-0)
debian/extras/jslibs/yui/event-resize/event-resize-debug.js (+59/-0)
debian/extras/jslibs/yui/event-resize/event-resize-min.js (+7/-0)
debian/extras/jslibs/yui/event-resize/event-resize.js (+59/-0)
debian/extras/jslibs/yui/event-simulate/event-simulate-debug.js (+615/-0)
debian/extras/jslibs/yui/event-simulate/event-simulate-min.js (+7/-0)
debian/extras/jslibs/yui/event-simulate/event-simulate.js (+615/-0)
debian/extras/jslibs/yui/event-synthetic/event-synthetic-debug.js (+834/-0)
debian/extras/jslibs/yui/event-synthetic/event-synthetic-min.js (+7/-0)
debian/extras/jslibs/yui/event-synthetic/event-synthetic.js (+834/-0)
debian/extras/jslibs/yui/event-touch/event-touch-debug.js (+133/-0)
debian/extras/jslibs/yui/event-touch/event-touch-min.js (+7/-0)
debian/extras/jslibs/yui/event-touch/event-touch.js (+127/-0)
debian/extras/jslibs/yui/event-valuechange/event-valuechange-debug.js (+481/-0)
debian/extras/jslibs/yui/event-valuechange/event-valuechange-min.js (+7/-0)
debian/extras/jslibs/yui/event-valuechange/event-valuechange.js (+467/-0)
debian/extras/jslibs/yui/exec-command/exec-command-debug.js (+718/-0)
debian/extras/jslibs/yui/exec-command/exec-command-min.js (+8/-0)
debian/extras/jslibs/yui/exec-command/exec-command.js (+714/-0)
debian/extras/jslibs/yui/features/features-debug.js (+341/-0)
debian/extras/jslibs/yui/features/features-min.js (+7/-0)
debian/extras/jslibs/yui/features/features.js (+340/-0)
debian/extras/jslibs/yui/file-flash/file-flash-debug.js (+342/-0)
debian/extras/jslibs/yui/file-flash/file-flash-min.js (+7/-0)
debian/extras/jslibs/yui/file-flash/file-flash.js (+342/-0)
debian/extras/jslibs/yui/file-html5/file-html5-debug.js (+450/-0)
debian/extras/jslibs/yui/file-html5/file-html5-min.js (+7/-0)
debian/extras/jslibs/yui/file-html5/file-html5.js (+450/-0)
debian/extras/jslibs/yui/file/file-debug.js (+37/-0)
debian/extras/jslibs/yui/file/file-min.js (+7/-0)
debian/extras/jslibs/yui/file/file.js (+37/-0)
debian/extras/jslibs/yui/frame/frame-debug.js (+1037/-0)
debian/extras/jslibs/yui/frame/frame-min.js (+8/-0)
debian/extras/jslibs/yui/frame/frame.js (+1008/-0)
debian/extras/jslibs/yui/get-nodejs/get-debug.js (+208/-0)
debian/extras/jslibs/yui/get-nodejs/get-min.js (+7/-0)
debian/extras/jslibs/yui/get-nodejs/get-nodejs-debug.js (+105/-0)
debian/extras/jslibs/yui/get-nodejs/get-nodejs-min.js (+7/-0)
debian/extras/jslibs/yui/get-nodejs/get-nodejs.js (+97/-0)
debian/extras/jslibs/yui/get-nodejs/get.js (+198/-0)
debian/extras/jslibs/yui/get/get-debug.js (+1274/-0)
debian/extras/jslibs/yui/get/get-min.js (+8/-0)
debian/extras/jslibs/yui/get/get.js (+1257/-0)
debian/extras/jslibs/yui/graphics-canvas-default/graphics-canvas-default-debug.js (+18/-0)
debian/extras/jslibs/yui/graphics-canvas-default/graphics-canvas-default-min.js (+7/-0)
debian/extras/jslibs/yui/graphics-canvas-default/graphics-canvas-default.js (+18/-0)
debian/extras/jslibs/yui/graphics-canvas/graphics-canvas-debug.js (+2963/-0)
debian/extras/jslibs/yui/graphics-canvas/graphics-canvas-min.js (+10/-0)
debian/extras/jslibs/yui/graphics-canvas/graphics-canvas.js (+2963/-0)
debian/extras/jslibs/yui/graphics-svg-default/graphics-svg-default-debug.js (+18/-0)
debian/extras/jslibs/yui/graphics-svg-default/graphics-svg-default-min.js (+7/-0)
debian/extras/jslibs/yui/graphics-svg-default/graphics-svg-default.js (+18/-0)
debian/extras/jslibs/yui/graphics-svg/graphics-svg-debug.js (+2861/-0)
debian/extras/jslibs/yui/graphics-svg/graphics-svg-min.js (+10/-0)
debian/extras/jslibs/yui/graphics-svg/graphics-svg.js (+2861/-0)
debian/extras/jslibs/yui/graphics-vml-default/graphics-vml-default-debug.js (+18/-0)
debian/extras/jslibs/yui/graphics-vml-default/graphics-vml-default-min.js (+7/-0)
debian/extras/jslibs/yui/graphics-vml-default/graphics-vml-default.js (+18/-0)
debian/extras/jslibs/yui/graphics-vml/graphics-vml-debug.js (+2872/-0)
debian/extras/jslibs/yui/graphics-vml/graphics-vml-min.js (+10/-0)
debian/extras/jslibs/yui/graphics-vml/graphics-vml.js (+2871/-0)
debian/extras/jslibs/yui/graphics/graphics-debug.js (+1133/-0)
debian/extras/jslibs/yui/graphics/graphics-min.js (+7/-0)
debian/extras/jslibs/yui/graphics/graphics.js (+1133/-0)
debian/extras/jslibs/yui/handlebars-base/handlebars-base-debug.js (+359/-0)
debian/extras/jslibs/yui/handlebars-base/handlebars-base-min.js (+12/-0)
debian/extras/jslibs/yui/handlebars-base/handlebars-base.js (+359/-0)
debian/extras/jslibs/yui/handlebars-compiler/handlebars-compiler-debug.js (+1531/-0)
debian/extras/jslibs/yui/handlebars-compiler/handlebars-compiler-min.js (+16/-0)
debian/extras/jslibs/yui/handlebars-compiler/handlebars-compiler.js (+1531/-0)
debian/extras/jslibs/yui/highlight-accentfold/highlight-accentfold-debug.js (+150/-0)
debian/extras/jslibs/yui/highlight-accentfold/highlight-accentfold-min.js (+7/-0)
debian/extras/jslibs/yui/highlight-accentfold/highlight-accentfold.js (+150/-0)
debian/extras/jslibs/yui/highlight-base/highlight-base-debug.js (+318/-0)
debian/extras/jslibs/yui/highlight-base/highlight-base-min.js (+7/-0)
debian/extras/jslibs/yui/highlight-base/highlight-base.js (+318/-0)
debian/extras/jslibs/yui/history-base/history-base-debug.js (+646/-0)
debian/extras/jslibs/yui/history-base/history-base-min.js (+7/-0)
debian/extras/jslibs/yui/history-base/history-base.js (+646/-0)
debian/extras/jslibs/yui/history-hash-ie/history-hash-ie-debug.js (+144/-0)
debian/extras/jslibs/yui/history-hash-ie/history-hash-ie-min.js (+7/-0)
debian/extras/jslibs/yui/history-hash-ie/history-hash-ie.js (+140/-0)
debian/extras/jslibs/yui/history-hash/history-hash-debug.js (+470/-0)
debian/extras/jslibs/yui/history-hash/history-hash-min.js (+7/-0)
debian/extras/jslibs/yui/history-hash/history-hash.js (+470/-0)
debian/extras/jslibs/yui/history-html5/history-html5-debug.js (+184/-0)
debian/extras/jslibs/yui/history-html5/history-html5-min.js (+7/-0)
debian/extras/jslibs/yui/history-html5/history-html5.js (+184/-0)
debian/extras/jslibs/yui/imageloader/imageloader-debug.js (+671/-0)
debian/extras/jslibs/yui/imageloader/imageloader-min.js (+7/-0)
debian/extras/jslibs/yui/imageloader/imageloader.js (+659/-0)
debian/extras/jslibs/yui/intl-base/intl-base-debug.js (+94/-0)
debian/extras/jslibs/yui/intl-base/intl-base-min.js (+7/-0)
debian/extras/jslibs/yui/intl-base/intl-base.js (+94/-0)
debian/extras/jslibs/yui/intl/intl-debug.js (+156/-0)
debian/extras/jslibs/yui/intl/intl-min.js (+7/-0)
debian/extras/jslibs/yui/intl/intl.js (+156/-0)
debian/extras/jslibs/yui/io-base/io-base-debug.js (+1001/-0)
debian/extras/jslibs/yui/io-base/io-base-min.js (+7/-0)
debian/extras/jslibs/yui/io-base/io-base.js (+997/-0)
debian/extras/jslibs/yui/io-form/io-form-debug.js (+102/-0)
debian/extras/jslibs/yui/io-form/io-form-min.js (+7/-0)
debian/extras/jslibs/yui/io-form/io-form.js (+101/-0)
debian/extras/jslibs/yui/io-nodejs/io-nodejs-debug.js (+142/-0)
debian/extras/jslibs/yui/io-nodejs/io-nodejs-min.js (+7/-0)
debian/extras/jslibs/yui/io-nodejs/io-nodejs.js (+135/-0)
debian/extras/jslibs/yui/io-queue/io-queue-debug.js (+165/-0)
debian/extras/jslibs/yui/io-queue/io-queue-min.js (+7/-0)
debian/extras/jslibs/yui/io-queue/io-queue.js (+162/-0)
debian/extras/jslibs/yui/io-upload-iframe/io-upload-iframe-debug.js (+297/-0)
debian/extras/jslibs/yui/io-upload-iframe/io-upload-iframe-min.js (+7/-0)
debian/extras/jslibs/yui/io-upload-iframe/io-upload-iframe.js (+289/-0)
debian/extras/jslibs/yui/io-xdr/io-xdr-debug.js (+318/-0)
debian/extras/jslibs/yui/io-xdr/io-xdr-min.js (+7/-0)
debian/extras/jslibs/yui/io-xdr/io-xdr.js (+318/-0)
debian/extras/jslibs/yui/json-parse/json-parse-debug.js (+236/-0)
debian/extras/jslibs/yui/json-parse/json-parse-min.js (+7/-0)
debian/extras/jslibs/yui/json-parse/json-parse.js (+236/-0)
debian/extras/jslibs/yui/json-stringify/json-stringify-debug.js (+354/-0)
debian/extras/jslibs/yui/json-stringify/json-stringify-min.js (+7/-0)
debian/extras/jslibs/yui/json-stringify/json-stringify.js (+354/-0)
debian/extras/jslibs/yui/jsonp-url/jsonp-url-debug.js (+132/-0)
debian/extras/jslibs/yui/jsonp-url/jsonp-url-min.js (+7/-0)
debian/extras/jslibs/yui/jsonp-url/jsonp-url.js (+132/-0)
debian/extras/jslibs/yui/jsonp/jsonp-debug.js (+258/-0)
debian/extras/jslibs/yui/jsonp/jsonp-min.js (+7/-0)
debian/extras/jslibs/yui/jsonp/jsonp.js (+253/-0)
debian/extras/jslibs/yui/loader-base/loader-base-debug.js (+2567/-0)
debian/extras/jslibs/yui/loader-base/loader-base-min.js (+10/-0)
debian/extras/jslibs/yui/loader-base/loader-base.js (+2529/-0)
debian/extras/jslibs/yui/loader-rollup/loader-rollup-debug.js (+108/-0)
debian/extras/jslibs/yui/loader-rollup/loader-rollup-min.js (+7/-0)
debian/extras/jslibs/yui/loader-rollup/loader-rollup.js (+105/-0)
debian/extras/jslibs/yui/loader-yui3/loader-yui3-debug.js (+2442/-0)
debian/extras/jslibs/yui/loader-yui3/loader-yui3-min.js (+10/-0)
debian/extras/jslibs/yui/loader-yui3/loader-yui3.js (+2442/-0)
debian/extras/jslibs/yui/loader/loader-debug.js (+5109/-0)
debian/extras/jslibs/yui/loader/loader-min.js (+13/-0)
debian/extras/jslibs/yui/loader/loader.js (+5068/-0)
debian/extras/jslibs/yui/matrix/matrix-debug.js (+924/-0)
debian/extras/jslibs/yui/matrix/matrix-min.js (+8/-0)
debian/extras/jslibs/yui/matrix/matrix.js (+924/-0)
debian/extras/jslibs/yui/model-list/model-list-debug.js (+1090/-0)
debian/extras/jslibs/yui/model-list/model-list-min.js (+7/-0)
debian/extras/jslibs/yui/model-list/model-list.js (+1090/-0)
debian/extras/jslibs/yui/model/model-debug.js (+975/-0)
debian/extras/jslibs/yui/model/model-min.js (+7/-0)
debian/extras/jslibs/yui/model/model.js (+973/-0)
debian/extras/jslibs/yui/node-base/node-base-debug.js (+1143/-0)
debian/extras/jslibs/yui/node-base/node-base-min.js (+8/-0)
debian/extras/jslibs/yui/node-base/node-base.js (+1141/-0)
debian/extras/jslibs/yui/node-core/node-core-debug.js (+1596/-0)
debian/extras/jslibs/yui/node-core/node-core-min.js (+8/-0)
debian/extras/jslibs/yui/node-core/node-core.js (+1592/-0)
debian/extras/jslibs/yui/node-deprecated/node-deprecated-debug.js (+131/-0)
debian/extras/jslibs/yui/node-deprecated/node-deprecated-min.js (+7/-0)
debian/extras/jslibs/yui/node-deprecated/node-deprecated.js (+125/-0)
debian/extras/jslibs/yui/node-event-delegate/node-event-delegate-debug.js (+60/-0)
debian/extras/jslibs/yui/node-event-delegate/node-event-delegate-min.js (+7/-0)
debian/extras/jslibs/yui/node-event-delegate/node-event-delegate.js (+60/-0)
debian/extras/jslibs/yui/node-event-html5/node-event-html5-debug.js (+58/-0)
debian/extras/jslibs/yui/node-event-html5/node-event-html5-min.js (+7/-0)
debian/extras/jslibs/yui/node-event-html5/node-event-html5.js (+58/-0)
debian/extras/jslibs/yui/node-event-simulate/node-event-simulate-debug.js (+29/-0)
debian/extras/jslibs/yui/node-event-simulate/node-event-simulate-min.js (+7/-0)
debian/extras/jslibs/yui/node-event-simulate/node-event-simulate.js (+29/-0)
debian/extras/jslibs/yui/node-flick/assets/node-flick-core.css (+14/-0)
debian/extras/jslibs/yui/node-flick/assets/skins/sam/node-flick-skin.css (+7/-0)
debian/extras/jslibs/yui/node-flick/assets/skins/sam/node-flick.css (+7/-0)
debian/extras/jslibs/yui/node-flick/node-flick-debug.js (+530/-0)
debian/extras/jslibs/yui/node-flick/node-flick-min.js (+7/-0)
debian/extras/jslibs/yui/node-flick/node-flick.js (+529/-0)
debian/extras/jslibs/yui/node-focusmanager/node-focusmanager-debug.js (+1075/-0)
debian/extras/jslibs/yui/node-focusmanager/node-focusmanager-min.js (+7/-0)
debian/extras/jslibs/yui/node-focusmanager/node-focusmanager.js (+1072/-0)
debian/extras/jslibs/yui/node-load/node-load-debug.js (+71/-0)
debian/extras/jslibs/yui/node-load/node-load-min.js (+7/-0)
debian/extras/jslibs/yui/node-load/node-load.js (+71/-0)
debian/extras/jslibs/yui/node-menunav/assets/node-menunav-core.css (+175/-0)
debian/extras/jslibs/yui/node-menunav/assets/skins/night/node-menunav-skin.css (+318/-0)
debian/extras/jslibs/yui/node-menunav/assets/skins/night/node-menunav.css (+7/-0)
debian/extras/jslibs/yui/node-menunav/assets/skins/sam/node-menunav-skin.css (+272/-0)
debian/extras/jslibs/yui/node-menunav/assets/skins/sam/node-menunav.css (+7/-0)
debian/extras/jslibs/yui/node-menunav/node-menunav-debug.js (+2190/-0)
debian/extras/jslibs/yui/node-menunav/node-menunav-min.js (+9/-0)
debian/extras/jslibs/yui/node-menunav/node-menunav.js (+2190/-0)
debian/extras/jslibs/yui/node-pluginhost/node-pluginhost-debug.js (+65/-0)
debian/extras/jslibs/yui/node-pluginhost/node-pluginhost-min.js (+7/-0)
debian/extras/jslibs/yui/node-pluginhost/node-pluginhost.js (+65/-0)
debian/extras/jslibs/yui/node-screen/node-screen-debug.js (+246/-0)
debian/extras/jslibs/yui/node-screen/node-screen-min.js (+7/-0)
debian/extras/jslibs/yui/node-screen/node-screen.js (+244/-0)
debian/extras/jslibs/yui/node-style/node-style-debug.js (+112/-0)
debian/extras/jslibs/yui/node-style/node-style-min.js (+7/-0)
debian/extras/jslibs/yui/node-style/node-style.js (+112/-0)
debian/extras/jslibs/yui/oop/oop-debug.js (+396/-0)
debian/extras/jslibs/yui/oop/oop-min.js (+7/-0)
debian/extras/jslibs/yui/oop/oop.js (+396/-0)
debian/extras/jslibs/yui/overlay/assets/overlay-core.css (+17/-0)
debian/extras/jslibs/yui/overlay/assets/skins/night/overlay-skin.css (+179/-0)
debian/extras/jslibs/yui/overlay/assets/skins/night/overlay.css (+7/-0)
debian/extras/jslibs/yui/overlay/assets/skins/sam/overlay-skin.css (+6/-0)
debian/extras/jslibs/yui/overlay/assets/skins/sam/overlay.css (+7/-0)
debian/extras/jslibs/yui/overlay/overlay-debug.js (+35/-0)
debian/extras/jslibs/yui/overlay/overlay-min.js (+7/-0)
debian/extras/jslibs/yui/overlay/overlay.js (+35/-0)
debian/extras/jslibs/yui/panel/assets/panel-core.css (+28/-0)
debian/extras/jslibs/yui/panel/assets/skins/night/panel-skin.css (+129/-0)
debian/extras/jslibs/yui/panel/assets/skins/night/panel.css (+7/-0)
debian/extras/jslibs/yui/panel/assets/skins/sam/panel-skin.css (+101/-0)
debian/extras/jslibs/yui/panel/assets/skins/sam/panel.css (+7/-0)
debian/extras/jslibs/yui/panel/panel-debug.js (+105/-0)
debian/extras/jslibs/yui/panel/panel-min.js (+7/-0)
debian/extras/jslibs/yui/panel/panel.js (+105/-0)
debian/extras/jslibs/yui/parallel/parallel-debug.js (+110/-0)
debian/extras/jslibs/yui/parallel/parallel-min.js (+7/-0)
debian/extras/jslibs/yui/parallel/parallel.js (+108/-0)
debian/extras/jslibs/yui/pjax-base/pjax-base-debug.js (+517/-0)
debian/extras/jslibs/yui/pjax-base/pjax-base-min.js (+7/-0)
debian/extras/jslibs/yui/pjax-base/pjax-base.js (+517/-0)
debian/extras/jslibs/yui/pjax-plugin/pjax-plugin-debug.js (+35/-0)
debian/extras/jslibs/yui/pjax-plugin/pjax-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/pjax-plugin/pjax-plugin.js (+35/-0)
debian/extras/jslibs/yui/pjax/pjax-debug.js (+340/-0)
debian/extras/jslibs/yui/pjax/pjax-min.js (+7/-0)
debian/extras/jslibs/yui/pjax/pjax.js (+340/-0)
debian/extras/jslibs/yui/plugin/plugin-debug.js (+235/-0)
debian/extras/jslibs/yui/plugin/plugin-min.js (+7/-0)
debian/extras/jslibs/yui/plugin/plugin.js (+233/-0)
debian/extras/jslibs/yui/pluginhost-base/pluginhost-base-debug.js (+184/-0)
debian/extras/jslibs/yui/pluginhost-base/pluginhost-base-min.js (+7/-0)
debian/extras/jslibs/yui/pluginhost-base/pluginhost-base.js (+183/-0)
debian/extras/jslibs/yui/pluginhost-config/pluginhost-config-debug.js (+136/-0)
debian/extras/jslibs/yui/pluginhost-config/pluginhost-config-min.js (+7/-0)
debian/extras/jslibs/yui/pluginhost-config/pluginhost-config.js (+136/-0)
debian/extras/jslibs/yui/profiler/profiler-debug.js (+553/-0)
debian/extras/jslibs/yui/profiler/profiler-min.js (+7/-0)
debian/extras/jslibs/yui/profiler/profiler.js (+553/-0)
debian/extras/jslibs/yui/querystring-parse-simple/querystring-parse-simple-debug.js (+85/-0)
debian/extras/jslibs/yui/querystring-parse-simple/querystring-parse-simple-min.js (+7/-0)
debian/extras/jslibs/yui/querystring-parse-simple/querystring-parse-simple.js (+85/-0)
debian/extras/jslibs/yui/querystring-parse/querystring-parse-debug.js (+165/-0)
debian/extras/jslibs/yui/querystring-parse/querystring-parse-min.js (+7/-0)
debian/extras/jslibs/yui/querystring-parse/querystring-parse.js (+165/-0)
debian/extras/jslibs/yui/querystring-stringify-simple/querystring-stringify-simple-debug.js (+67/-0)
debian/extras/jslibs/yui/querystring-stringify-simple/querystring-stringify-simple-min.js (+7/-0)
debian/extras/jslibs/yui/querystring-stringify-simple/querystring-stringify-simple.js (+67/-0)
debian/extras/jslibs/yui/querystring-stringify/querystring-stringify-debug.js (+118/-0)
debian/extras/jslibs/yui/querystring-stringify/querystring-stringify-min.js (+7/-0)
debian/extras/jslibs/yui/querystring-stringify/querystring-stringify.js (+113/-0)
debian/extras/jslibs/yui/queue-promote/queue-promote-debug.js (+59/-0)
debian/extras/jslibs/yui/queue-promote/queue-promote-min.js (+7/-0)
debian/extras/jslibs/yui/queue-promote/queue-promote.js (+59/-0)
debian/extras/jslibs/yui/range-slider/assets/slider-base-core.css (+37/-0)
debian/extras/jslibs/yui/range-slider/assets/slider-core.css (+37/-0)
debian/extras/jslibs/yui/range-slider/range-slider-debug.js (+35/-0)
debian/extras/jslibs/yui/range-slider/range-slider-min.js (+7/-0)
debian/extras/jslibs/yui/range-slider/range-slider.js (+35/-0)
debian/extras/jslibs/yui/recordset-base/recordset-base-debug.js (+657/-0)
debian/extras/jslibs/yui/recordset-base/recordset-base-min.js (+7/-0)
debian/extras/jslibs/yui/recordset-base/recordset-base.js (+656/-0)
debian/extras/jslibs/yui/recordset-filter/recordset-filter-debug.js (+111/-0)
debian/extras/jslibs/yui/recordset-filter/recordset-filter-min.js (+7/-0)
debian/extras/jslibs/yui/recordset-filter/recordset-filter.js (+111/-0)
debian/extras/jslibs/yui/recordset-indexer/recordset-indexer-debug.js (+233/-0)
debian/extras/jslibs/yui/recordset-indexer/recordset-indexer-min.js (+7/-0)
debian/extras/jslibs/yui/recordset-indexer/recordset-indexer.js (+233/-0)
debian/extras/jslibs/yui/recordset-sort/recordset-sort-debug.js (+212/-0)
debian/extras/jslibs/yui/recordset-sort/recordset-sort-min.js (+7/-0)
debian/extras/jslibs/yui/recordset-sort/recordset-sort.js (+211/-0)
debian/extras/jslibs/yui/resize-base/assets/resize-base-core.css (+129/-0)
debian/extras/jslibs/yui/resize-base/assets/skins/night/resize-base-skin.css (+52/-0)
debian/extras/jslibs/yui/resize-base/assets/skins/night/resize-base.css (+7/-0)
debian/extras/jslibs/yui/resize-base/assets/skins/sam/resize-base-skin.css (+52/-0)
debian/extras/jslibs/yui/resize-base/assets/skins/sam/resize-base.css (+7/-0)
debian/extras/jslibs/yui/resize-base/resize-base-debug.js (+1640/-0)
debian/extras/jslibs/yui/resize-base/resize-base-min.js (+8/-0)
debian/extras/jslibs/yui/resize-base/resize-base.js (+1639/-0)
debian/extras/jslibs/yui/resize-constrain/assets/resize-base-core.css (+129/-0)
debian/extras/jslibs/yui/resize-constrain/resize-constrain-debug.js (+461/-0)
debian/extras/jslibs/yui/resize-constrain/resize-constrain-min.js (+7/-0)
debian/extras/jslibs/yui/resize-constrain/resize-constrain.js (+461/-0)
debian/extras/jslibs/yui/resize-plugin/assets/resize-base-core.css (+129/-0)
debian/extras/jslibs/yui/resize-plugin/resize-plugin-debug.js (+214/-0)
debian/extras/jslibs/yui/resize-plugin/resize-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/resize-plugin/resize-plugin.js (+214/-0)
debian/extras/jslibs/yui/resize-proxy/assets/resize-base-core.css (+129/-0)
debian/extras/jslibs/yui/resize-proxy/resize-proxy-debug.js (+172/-0)
debian/extras/jslibs/yui/resize-proxy/resize-proxy-min.js (+7/-0)
debian/extras/jslibs/yui/resize-proxy/resize-proxy.js (+172/-0)
debian/extras/jslibs/yui/router/router-debug.js (+1079/-0)
debian/extras/jslibs/yui/router/router-min.js (+7/-0)
debian/extras/jslibs/yui/router/router.js (+1077/-0)
debian/extras/jslibs/yui/scrollview-base-ie/scrollview-base-ie-debug.js (+61/-0)
debian/extras/jslibs/yui/scrollview-base-ie/scrollview-base-ie-min.js (+7/-0)
debian/extras/jslibs/yui/scrollview-base-ie/scrollview-base-ie.js (+61/-0)
debian/extras/jslibs/yui/scrollview-base/assets/scrollview-base-core.css (+20/-0)
debian/extras/jslibs/yui/scrollview-base/assets/skins/night/scrollview-base-skin.css (+6/-0)
debian/extras/jslibs/yui/scrollview-base/assets/skins/night/scrollview-base.css (+7/-0)
debian/extras/jslibs/yui/scrollview-base/assets/skins/sam/scrollview-base-skin.css (+9/-0)
debian/extras/jslibs/yui/scrollview-base/assets/skins/sam/scrollview-base.css (+7/-0)
debian/extras/jslibs/yui/scrollview-base/scrollview-base-debug.js (+1224/-0)
debian/extras/jslibs/yui/scrollview-base/scrollview-base-min.js (+8/-0)
debian/extras/jslibs/yui/scrollview-base/scrollview-base.js (+1222/-0)
debian/extras/jslibs/yui/scrollview-list/assets/scrollview-list-core.css (+6/-0)
debian/extras/jslibs/yui/scrollview-list/assets/skins/night/scrollview-list-skin.css (+63/-0)
debian/extras/jslibs/yui/scrollview-list/assets/skins/night/scrollview-list.css (+7/-0)
debian/extras/jslibs/yui/scrollview-list/assets/skins/sam/scrollview-list-skin.css (+43/-0)
debian/extras/jslibs/yui/scrollview-list/assets/skins/sam/scrollview-list.css (+7/-0)
debian/extras/jslibs/yui/scrollview-list/scrollview-list-debug.js (+136/-0)
debian/extras/jslibs/yui/scrollview-list/scrollview-list-min.js (+7/-0)
debian/extras/jslibs/yui/scrollview-list/scrollview-list.js (+136/-0)
debian/extras/jslibs/yui/scrollview-paginator/scrollview-paginator-debug.js (+454/-0)
debian/extras/jslibs/yui/scrollview-paginator/scrollview-paginator-min.js (+7/-0)
debian/extras/jslibs/yui/scrollview-paginator/scrollview-paginator.js (+454/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/assets/scrollview-scrollbars-core.css (+101/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/assets/skins/night/scrollview-scrollbars-skin.css (+102/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/assets/skins/night/scrollview-scrollbars.css (+7/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/assets/skins/sam/scrollview-scrollbars-skin.css (+96/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/assets/skins/sam/scrollview-scrollbars.css (+7/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/scrollview-scrollbars-debug.js (+559/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/scrollview-scrollbars-min.js (+7/-0)
debian/extras/jslibs/yui/scrollview-scrollbars/scrollview-scrollbars.js (+559/-0)
debian/extras/jslibs/yui/scrollview/scrollview-debug.js (+27/-0)
debian/extras/jslibs/yui/scrollview/scrollview-min.js (+7/-0)
debian/extras/jslibs/yui/scrollview/scrollview.js (+27/-0)
debian/extras/jslibs/yui/selector-css2/selector-css2-debug.js (+451/-0)
debian/extras/jslibs/yui/selector-css2/selector-css2-min.js (+7/-0)
debian/extras/jslibs/yui/selector-css2/selector-css2.js (+450/-0)
debian/extras/jslibs/yui/selector-css3/selector-css3-debug.js (+158/-0)
debian/extras/jslibs/yui/selector-css3/selector-css3-min.js (+7/-0)
debian/extras/jslibs/yui/selector-css3/selector-css3.js (+158/-0)
debian/extras/jslibs/yui/selector-native/selector-native-debug.js (+381/-0)
debian/extras/jslibs/yui/selector-native/selector-native-min.js (+7/-0)
debian/extras/jslibs/yui/selector-native/selector-native.js (+376/-0)
debian/extras/jslibs/yui/selector/selector-debug.js (+12/-0)
debian/extras/jslibs/yui/selector/selector-min.js (+7/-0)
debian/extras/jslibs/yui/selector/selector.js (+12/-0)
debian/extras/jslibs/yui/shim-plugin/shim-plugin-debug.js (+112/-0)
debian/extras/jslibs/yui/shim-plugin/shim-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/shim-plugin/shim-plugin.js (+112/-0)
debian/extras/jslibs/yui/simpleyui/simpleyui-debug.js (+19938/-0)
debian/extras/jslibs/yui/simpleyui/simpleyui-min.js (+29/-0)
debian/extras/jslibs/yui/simpleyui/simpleyui.js (+19844/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/audio-light/slider-base-skin.css (+97/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/audio-light/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/audio-light/slider-skin.css (+97/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/audio/slider-base-skin.css (+97/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/audio/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/audio/slider-skin.css (+97/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/capsule-dark/slider-base-skin.css (+97/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/capsule-dark/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/capsule-dark/slider-skin.css (+97/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/capsule/slider-base-skin.css (+99/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/capsule/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/capsule/slider-skin.css (+99/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/night/slider-base-skin.css (+93/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/night/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/night/slider-skin.css (+93/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/round-dark/slider-base-skin.css (+95/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/round-dark/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/round-dark/slider-skin.css (+95/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/round/slider-base-skin.css (+95/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/round/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/round/slider-skin.css (+95/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/sam-dark/slider-base-skin.css (+93/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/sam-dark/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/sam-dark/slider-skin.css (+93/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/sam/slider-base-skin.css (+93/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/sam/slider-base.css (+7/-0)
debian/extras/jslibs/yui/slider-base/assets/skins/sam/slider-skin.css (+93/-0)
debian/extras/jslibs/yui/slider-base/assets/slider-base-core.css (+37/-0)
debian/extras/jslibs/yui/slider-base/assets/slider-core.css (+37/-0)
debian/extras/jslibs/yui/slider-base/slider-base-debug.js (+767/-0)
debian/extras/jslibs/yui/slider-base/slider-base-min.js (+7/-0)
debian/extras/jslibs/yui/slider-base/slider-base.js (+765/-0)
debian/extras/jslibs/yui/slider-value-range/assets/slider-base-core.css (+37/-0)
debian/extras/jslibs/yui/slider-value-range/assets/slider-core.css (+37/-0)
debian/extras/jslibs/yui/slider-value-range/slider-value-range-debug.js (+425/-0)
debian/extras/jslibs/yui/slider-value-range/slider-value-range-min.js (+7/-0)
debian/extras/jslibs/yui/slider-value-range/slider-value-range.js (+421/-0)
debian/extras/jslibs/yui/sortable-scroll/sortable-scroll-debug.js (+73/-0)
debian/extras/jslibs/yui/sortable-scroll/sortable-scroll-min.js (+7/-0)
debian/extras/jslibs/yui/sortable-scroll/sortable-scroll.js (+73/-0)
debian/extras/jslibs/yui/sortable/sortable-debug.js (+506/-0)
debian/extras/jslibs/yui/sortable/sortable-min.js (+7/-0)
debian/extras/jslibs/yui/sortable/sortable.js (+505/-0)
debian/extras/jslibs/yui/stylesheet/stylesheet-debug.js (+648/-0)
debian/extras/jslibs/yui/stylesheet/stylesheet-min.js (+7/-0)
debian/extras/jslibs/yui/stylesheet/stylesheet.js (+644/-0)
debian/extras/jslibs/yui/substitute/substitute-debug.js (+166/-0)
debian/extras/jslibs/yui/substitute/substitute-min.js (+7/-0)
debian/extras/jslibs/yui/substitute/substitute.js (+166/-0)
debian/extras/jslibs/yui/swf/swf-debug.js (+208/-0)
debian/extras/jslibs/yui/swf/swf-min.js (+7/-0)
debian/extras/jslibs/yui/swf/swf.js (+207/-0)
debian/extras/jslibs/yui/swfdetect/swfdetect-debug.js (+122/-0)
debian/extras/jslibs/yui/swfdetect/swfdetect-min.js (+7/-0)
debian/extras/jslibs/yui/swfdetect/swfdetect.js (+121/-0)
debian/extras/jslibs/yui/tabview-base/assets/tabview-core.css (+48/-0)
debian/extras/jslibs/yui/tabview-base/assets/tabview.css (+28/-0)
debian/extras/jslibs/yui/tabview-base/tabview-base-debug.js (+150/-0)
debian/extras/jslibs/yui/tabview-base/tabview-base-min.js (+7/-0)
debian/extras/jslibs/yui/tabview-base/tabview-base.js (+150/-0)
debian/extras/jslibs/yui/tabview-plugin/assets/tabview-core.css (+48/-0)
debian/extras/jslibs/yui/tabview-plugin/assets/tabview.css (+28/-0)
debian/extras/jslibs/yui/tabview-plugin/tabview-plugin-debug.js (+22/-0)
debian/extras/jslibs/yui/tabview-plugin/tabview-plugin-min.js (+7/-0)
debian/extras/jslibs/yui/tabview-plugin/tabview-plugin.js (+22/-0)
debian/extras/jslibs/yui/tabview/assets/skins/night/tabview-skin.css (+95/-0)
debian/extras/jslibs/yui/tabview/assets/skins/night/tabview.css (+7/-0)
debian/extras/jslibs/yui/tabview/assets/skins/sam/tabview-skin.css (+64/-0)
debian/extras/jslibs/yui/tabview/assets/skins/sam/tabview.css (+7/-0)
debian/extras/jslibs/yui/tabview/assets/tabview-core.css (+48/-0)
debian/extras/jslibs/yui/tabview/assets/tabview.css (+28/-0)
debian/extras/jslibs/yui/tabview/tabview-debug.js (+407/-0)
debian/extras/jslibs/yui/tabview/tabview-min.js (+7/-0)
debian/extras/jslibs/yui/tabview/tabview.js (+407/-0)
debian/extras/jslibs/yui/test-console/assets/skins/sam/test-console-skin.css (+64/-0)
debian/extras/jslibs/yui/test-console/assets/skins/sam/test-console.css (+7/-0)
debian/extras/jslibs/yui/test-console/assets/test-console-core.css (+14/-0)
debian/extras/jslibs/yui/test-console/test-console-debug.js (+104/-0)
debian/extras/jslibs/yui/test-console/test-console-min.js (+7/-0)
debian/extras/jslibs/yui/test-console/test-console.js (+104/-0)
debian/extras/jslibs/yui/test/assets/skins/sam/test-skin.css (+19/-0)
debian/extras/jslibs/yui/test/assets/skins/sam/test.css (+7/-0)
debian/extras/jslibs/yui/test/assets/test-console.css (+17/-0)
debian/extras/jslibs/yui/test/test-debug.js (+3733/-0)
debian/extras/jslibs/yui/test/test-min.js (+12/-0)
debian/extras/jslibs/yui/test/test.js (+3733/-0)
debian/extras/jslibs/yui/text-accentfold/text-accentfold-debug.js (+168/-0)
debian/extras/jslibs/yui/text-accentfold/text-accentfold-min.js (+7/-0)
debian/extras/jslibs/yui/text-accentfold/text-accentfold.js (+168/-0)
debian/extras/jslibs/yui/text-data-accentfold/text-data-accentfold-debug.js (+52/-0)
debian/extras/jslibs/yui/text-data-accentfold/text-data-accentfold-min.js (+7/-0)
debian/extras/jslibs/yui/text-data-accentfold/text-data-accentfold.js (+52/-0)
debian/extras/jslibs/yui/text-data-wordbreak/text-data-wordbreak-debug.js (+35/-0)
debian/extras/jslibs/yui/text-data-wordbreak/text-data-wordbreak-min.js (+8/-0)
debian/extras/jslibs/yui/text-data-wordbreak/text-data-wordbreak.js (+35/-0)
debian/extras/jslibs/yui/text-wordbreak/text-wordbreak-debug.js (+369/-0)
debian/extras/jslibs/yui/text-wordbreak/text-wordbreak-min.js (+7/-0)
debian/extras/jslibs/yui/text-wordbreak/text-wordbreak.js (+368/-0)
debian/extras/jslibs/yui/transition-native/transition-native-debug.js (+718/-0)
debian/extras/jslibs/yui/transition-native/transition-native-min.js (+8/-0)
debian/extras/jslibs/yui/transition-native/transition-native.js (+716/-0)
debian/extras/jslibs/yui/transition-timer/transition-timer-debug.js (+345/-0)
debian/extras/jslibs/yui/transition-timer/transition-timer-min.js (+7/-0)
debian/extras/jslibs/yui/transition-timer/transition-timer.js (+345/-0)
debian/extras/jslibs/yui/transition/transition-debug.js (+707/-0)
debian/extras/jslibs/yui/transition/transition-min.js (+8/-0)
debian/extras/jslibs/yui/transition/transition.js (+705/-0)
debian/extras/jslibs/yui/uploader-deprecated/uploader-deprecated-debug.js (+602/-0)
debian/extras/jslibs/yui/uploader-deprecated/uploader-deprecated-min.js (+7/-0)
debian/extras/jslibs/yui/uploader-deprecated/uploader-deprecated.js (+600/-0)
debian/extras/jslibs/yui/uploader-flash/assets/uploader-flash-core.css (+10/-0)
debian/extras/jslibs/yui/uploader-flash/uploader-flash-debug.js (+966/-0)
debian/extras/jslibs/yui/uploader-flash/uploader-flash-min.js (+8/-0)
debian/extras/jslibs/yui/uploader-flash/uploader-flash.js (+966/-0)
debian/extras/jslibs/yui/uploader-html5/assets/uploader-flash-core.css (+10/-0)
debian/extras/jslibs/yui/uploader-html5/uploader-html5-debug.js (+814/-0)
debian/extras/jslibs/yui/uploader-html5/uploader-html5-min.js (+8/-0)
debian/extras/jslibs/yui/uploader-html5/uploader-html5.js (+814/-0)
debian/extras/jslibs/yui/uploader-queue/assets/uploader-flash-core.css (+10/-0)
debian/extras/jslibs/yui/uploader-queue/uploader-queue-debug.js (+572/-0)
debian/extras/jslibs/yui/uploader-queue/uploader-queue-min.js (+7/-0)
debian/extras/jslibs/yui/uploader-queue/uploader-queue.js (+572/-0)
debian/extras/jslibs/yui/uploader/assets/uploader-flash-core.css (+10/-0)
debian/extras/jslibs/yui/uploader/uploader-debug.js (+59/-0)
debian/extras/jslibs/yui/uploader/uploader-min.js (+7/-0)
debian/extras/jslibs/yui/uploader/uploader.js (+59/-0)
debian/extras/jslibs/yui/view-node-map/view-node-map-debug.js (+89/-0)
debian/extras/jslibs/yui/view-node-map/view-node-map-min.js (+7/-0)
debian/extras/jslibs/yui/view-node-map/view-node-map.js (+89/-0)
debian/extras/jslibs/yui/view/view-debug.js (+431/-0)
debian/extras/jslibs/yui/view/view-min.js (+7/-0)
debian/extras/jslibs/yui/view/view.js (+431/-0)
debian/extras/jslibs/yui/widget-anim/widget-anim-debug.js (+263/-0)
debian/extras/jslibs/yui/widget-anim/widget-anim-min.js (+7/-0)
debian/extras/jslibs/yui/widget-anim/widget-anim.js (+263/-0)
debian/extras/jslibs/yui/widget-autohide/widget-autohide-debug.js (+243/-0)
debian/extras/jslibs/yui/widget-autohide/widget-autohide-min.js (+7/-0)
debian/extras/jslibs/yui/widget-autohide/widget-autohide.js (+242/-0)
debian/extras/jslibs/yui/widget-base-ie/assets/widget-base-core.css (+26/-0)
debian/extras/jslibs/yui/widget-base-ie/widget-base-ie-debug.js (+55/-0)
debian/extras/jslibs/yui/widget-base-ie/widget-base-ie-min.js (+7/-0)
debian/extras/jslibs/yui/widget-base-ie/widget-base-ie.js (+55/-0)
debian/extras/jslibs/yui/widget-base/assets/skins/night/widget-base-skin.css (+6/-0)
debian/extras/jslibs/yui/widget-base/assets/skins/night/widget-base.css (+7/-0)
debian/extras/jslibs/yui/widget-base/assets/skins/sam/widget-base-skin.css (+6/-0)
debian/extras/jslibs/yui/widget-base/assets/skins/sam/widget-base.css (+7/-0)
debian/extras/jslibs/yui/widget-base/assets/widget-base-core.css (+26/-0)
debian/extras/jslibs/yui/widget-base/widget-base-debug.js (+1260/-0)
debian/extras/jslibs/yui/widget-base/widget-base-min.js (+8/-0)
debian/extras/jslibs/yui/widget-base/widget-base.js (+1256/-0)
debian/extras/jslibs/yui/widget-buttons/assets/skins/night/widget-buttons-skin.css (+9/-0)
debian/extras/jslibs/yui/widget-buttons/assets/skins/night/widget-buttons.css (+7/-0)
debian/extras/jslibs/yui/widget-buttons/assets/skins/sam/widget-buttons-skin.css (+9/-0)
debian/extras/jslibs/yui/widget-buttons/assets/skins/sam/widget-buttons.css (+7/-0)
debian/extras/jslibs/yui/widget-buttons/assets/widget-buttons-core.css (+21/-0)
debian/extras/jslibs/yui/widget-buttons/widget-buttons-debug.js (+1296/-0)
debian/extras/jslibs/yui/widget-buttons/widget-buttons-min.js (+8/-0)
debian/extras/jslibs/yui/widget-buttons/widget-buttons.js (+1296/-0)
debian/extras/jslibs/yui/widget-child/widget-child-debug.js (+383/-0)
debian/extras/jslibs/yui/widget-child/widget-child-min.js (+7/-0)
debian/extras/jslibs/yui/widget-child/widget-child.js (+383/-0)
debian/extras/jslibs/yui/widget-htmlparser/assets/widget-base-core.css (+26/-0)
debian/extras/jslibs/yui/widget-htmlparser/widget-htmlparser-debug.js (+169/-0)
debian/extras/jslibs/yui/widget-htmlparser/widget-htmlparser-min.js (+7/-0)
debian/extras/jslibs/yui/widget-htmlparser/widget-htmlparser.js (+169/-0)
debian/extras/jslibs/yui/widget-locale/assets/widget-base-core.css (+26/-0)
debian/extras/jslibs/yui/widget-locale/widget-locale-debug.js (+179/-0)
debian/extras/jslibs/yui/widget-locale/widget-locale-min.js (+7/-0)
debian/extras/jslibs/yui/widget-locale/widget-locale.js (+175/-0)
debian/extras/jslibs/yui/widget-modality/assets/skins/night/widget-modality-skin.css (+13/-0)
debian/extras/jslibs/yui/widget-modality/assets/skins/night/widget-modality.css (+7/-0)
debian/extras/jslibs/yui/widget-modality/assets/skins/sam/widget-modality-skin.css (+13/-0)
debian/extras/jslibs/yui/widget-modality/assets/skins/sam/widget-modality.css (+7/-0)
debian/extras/jslibs/yui/widget-modality/assets/widget-modality-core.css (+7/-0)
debian/extras/jslibs/yui/widget-modality/widget-modality-debug.js (+578/-0)
debian/extras/jslibs/yui/widget-modality/widget-modality-min.js (+9/-0)
debian/extras/jslibs/yui/widget-modality/widget-modality.js (+578/-0)
debian/extras/jslibs/yui/widget-parent/widget-parent-debug.js (+876/-0)
debian/extras/jslibs/yui/widget-parent/widget-parent-min.js (+7/-0)
debian/extras/jslibs/yui/widget-parent/widget-parent.js (+875/-0)
debian/extras/jslibs/yui/widget-position-align/widget-position-align-debug.js (+659/-0)
debian/extras/jslibs/yui/widget-position-align/widget-position-align-min.js (+7/-0)
debian/extras/jslibs/yui/widget-position-align/widget-position-align.js (+655/-0)
debian/extras/jslibs/yui/widget-position-constrain/widget-position-constrain-debug.js (+352/-0)
debian/extras/jslibs/yui/widget-position-constrain/widget-position-constrain-min.js (+7/-0)
debian/extras/jslibs/yui/widget-position-constrain/widget-position-constrain.js (+352/-0)
debian/extras/jslibs/yui/widget-position/widget-position-debug.js (+281/-0)
debian/extras/jslibs/yui/widget-position/widget-position-min.js (+7/-0)
debian/extras/jslibs/yui/widget-position/widget-position.js (+281/-0)
debian/extras/jslibs/yui/widget-skin/assets/widget-base-core.css (+26/-0)
debian/extras/jslibs/yui/widget-skin/widget-skin-debug.js (+49/-0)
debian/extras/jslibs/yui/widget-skin/widget-skin-min.js (+7/-0)
debian/extras/jslibs/yui/widget-skin/widget-skin.js (+49/-0)
debian/extras/jslibs/yui/widget-stack/assets/skins/night/widget-stack-skin.css (+6/-0)
debian/extras/jslibs/yui/widget-stack/assets/skins/night/widget-stack.css (+7/-0)
debian/extras/jslibs/yui/widget-stack/assets/skins/sam/widget-stack-skin.css (+6/-0)
debian/extras/jslibs/yui/widget-stack/assets/skins/sam/widget-stack.css (+7/-0)
debian/extras/jslibs/yui/widget-stack/assets/widget-stack-core.css (+25/-0)
debian/extras/jslibs/yui/widget-stack/widget-stack-debug.js (+444/-0)
debian/extras/jslibs/yui/widget-stack/widget-stack-min.js (+7/-0)
debian/extras/jslibs/yui/widget-stack/widget-stack.js (+444/-0)
debian/extras/jslibs/yui/widget-stdmod/widget-stdmod-debug.js (+785/-0)
debian/extras/jslibs/yui/widget-stdmod/widget-stdmod-min.js (+7/-0)
debian/extras/jslibs/yui/widget-stdmod/widget-stdmod.js (+785/-0)
debian/extras/jslibs/yui/widget-uievents/assets/widget-base-core.css (+26/-0)
debian/extras/jslibs/yui/widget-uievents/widget-uievents-debug.js (+233/-0)
debian/extras/jslibs/yui/widget-uievents/widget-uievents-min.js (+7/-0)
debian/extras/jslibs/yui/widget-uievents/widget-uievents.js (+232/-0)
debian/extras/jslibs/yui/yql/yql-debug.js (+145/-0)
debian/extras/jslibs/yui/yql/yql-min.js (+7/-0)
debian/extras/jslibs/yui/yql/yql.js (+144/-0)
debian/extras/jslibs/yui/yui-base/yui-base-debug.js (+5562/-0)
debian/extras/jslibs/yui/yui-base/yui-base-min.js (+12/-0)
debian/extras/jslibs/yui/yui-base/yui-base.js (+5530/-0)
debian/extras/jslibs/yui/yui-core/yui-core-debug.js (+3681/-0)
debian/extras/jslibs/yui/yui-core/yui-core-min.js (+10/-0)
debian/extras/jslibs/yui/yui-core/yui-core.js (+3667/-0)
debian/extras/jslibs/yui/yui-later/yui-later-debug.js (+83/-0)
debian/extras/jslibs/yui/yui-later/yui-later-min.js (+7/-0)
debian/extras/jslibs/yui/yui-later/yui-later.js (+83/-0)
debian/extras/jslibs/yui/yui-log-nodejs/yui-log-nodejs-debug.js (+86/-0)
debian/extras/jslibs/yui/yui-log-nodejs/yui-log-nodejs-min.js (+7/-0)
debian/extras/jslibs/yui/yui-log-nodejs/yui-log-nodejs.js (+86/-0)
debian/extras/jslibs/yui/yui-log/yui-log-debug.js (+115/-0)
debian/extras/jslibs/yui/yui-log/yui-log-min.js (+7/-0)
debian/extras/jslibs/yui/yui-log/yui-log.js (+115/-0)
debian/extras/jslibs/yui/yui-nodejs/yui-nodejs-debug.js (+9675/-0)
debian/extras/jslibs/yui/yui-nodejs/yui-nodejs-min.js (+18/-0)
debian/extras/jslibs/yui/yui-nodejs/yui-nodejs.js (+9609/-0)
debian/extras/jslibs/yui/yui-throttle/yui-throttle-debug.js (+60/-0)
debian/extras/jslibs/yui/yui-throttle/yui-throttle-min.js (+9/-0)
debian/extras/jslibs/yui/yui-throttle/yui-throttle.js (+60/-0)
debian/extras/jslibs/yui/yui/yui-debug.js (+10661/-0)
debian/extras/jslibs/yui/yui/yui-min.js (+19/-0)
debian/extras/jslibs/yui/yui/yui.js (+10588/-0)
debian/maas-region-controller.install (+3/-0)
debian/patches/04_precise_no_yui_root.patch (+17/-0)
debian/patches/series (+1/-0)
debian/source/include-binaries (+130/-0)
To merge this branch: bzr merge lp:~andreserl/maas/precise.sru.jslibs
Reviewer Review Type Date Requested Status
Raphaël Badin (community) 2013-02-02 Approve on 2013-02-15
Review via email: mp+146252@code.launchpad.net

Commit message

As discussed with slangasek, it seems to be convenient to continue to ship the jslibs with maas as it was recommended to not introduce new packages for both raphael and yui3. However, if we do so from the upstream tarball, it would mean that the tarball in precise would differ from the one in quantal (for the sru) as they would have the same upstream version, but the tarball would be different.

This would cause a problem the archive as two packages/uploads to different mpockets of the archive using the same upstream version, should have the same tarball. For this reason slangasek recommended to ship the jslibs with the packaging. These get installed with maas-region-controller.

To post a comment you must log in.
Adam Conrad (adconrad) wrote :

Operating under the assumption that this will get reviewed and landed in some form, I've rejected yui3 from precise-proposed/new. Please do make this solution work. :P

Raphaël Badin (rvb) wrote :

A bit ugly to ship JS libraries in the packaging like this but this is really a packaging issue so I'll trust you that we have to do this ;).

I've built a package from this branch and tested it in the lab. All tests passed and the UI (which is the only part affected by this change) is fine.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2013-02-02 00:25:55 +0000
3+++ debian/changelog 2013-02-02 01:30:27 +0000
4@@ -4,6 +4,10 @@
5 by user/group 'dhcpd' instead of root.
6 * debian/control: Force dependency version for python-django to
7 ((>> 1.3.1-4ubuntu1.4).
8+ * Continue to ship yui3 and raphael with MAAS.
9+ - debian/patches/04_precise_no_yui_root.patch: Add.
10+ - debian/control: Drop dependencies on yui3 and raphael.
11+ - debian/source/include-binaries: Add to not FTBFS
12
13 -- Andres Rodriguez <andreserl@ubuntu.com> Wed, 30 Jan 2013 14:07:52 -0500
14
15
16=== modified file 'debian/control'
17--- debian/control 2013-02-02 00:25:55 +0000
18+++ debian/control 2013-02-02 01:30:27 +0000
19@@ -56,9 +56,6 @@
20 bind9utils,
21 dbconfig-common,
22 libapache2-mod-wsgi,
23- libjs-raphael,
24- libjs-yui3-full,
25- libjs-yui3-min,
26 maas-common (= ${binary:Version}),
27 postgresql-9.1,
28 pwgen,
29
30=== added directory 'debian/extras/jslibs'
31=== added directory 'debian/extras/jslibs/raphael'
32=== added file 'debian/extras/jslibs/raphael/raphael-min.js'
33--- debian/extras/jslibs/raphael/raphael-min.js 1970-01-01 00:00:00 +0000
34+++ debian/extras/jslibs/raphael/raphael-min.js 2013-02-02 01:30:27 +0000
35@@ -0,0 +1,10 @@
36+// ┌────────────────────────────────────────────────────────────────────┐ \\
37+// │ Raphaël 2.1.0 - JavaScript Vector Library │ \\
38+// ├────────────────────────────────────────────────────────────────────┤ \\
39+// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\
40+// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\
41+// ├────────────────────────────────────────────────────────────────────┤ \\
42+// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\
43+// └────────────────────────────────────────────────────────────────────┘ \\
44+
45+(function(a){var b="0.3.4",c="hasOwnProperty",d=/[\.\/]/,e="*",f=function(){},g=function(a,b){return a-b},h,i,j={n:{}},k=function(a,b){var c=j,d=i,e=Array.prototype.slice.call(arguments,2),f=k.listeners(a),l=0,m=!1,n,o=[],p={},q=[],r=h,s=[];h=a,i=0;for(var t=0,u=f.length;t<u;t++)"zIndex"in f[t]&&(o.push(f[t].zIndex),f[t].zIndex<0&&(p[f[t].zIndex]=f[t]));o.sort(g);while(o[l]<0){n=p[o[l++]],q.push(n.apply(b,e));if(i){i=d;return q}}for(t=0;t<u;t++){n=f[t];if("zIndex"in n)if(n.zIndex==o[l]){q.push(n.apply(b,e));if(i)break;do{l++,n=p[o[l]],n&&q.push(n.apply(b,e));if(i)break}while(n)}else p[n.zIndex]=n;else{q.push(n.apply(b,e));if(i)break}}i=d,h=r;return q.length?q:null};k.listeners=function(a){var b=a.split(d),c=j,f,g,h,i,k,l,m,n,o=[c],p=[];for(i=0,k=b.length;i<k;i++){n=[];for(l=0,m=o.length;l<m;l++){c=o[l].n,g=[c[b[i]],c[e]],h=2;while(h--)f=g[h],f&&(n.push(f),p=p.concat(f.f||[]))}o=n}return p},k.on=function(a,b){var c=a.split(d),e=j;for(var g=0,h=c.length;g<h;g++)e=e.n,!e[c[g]]&&(e[c[g]]={n:{}}),e=e[c[g]];e.f=e.f||[];for(g=0,h=e.f.length;g<h;g++)if(e.f[g]==b)return f;e.f.push(b);return function(a){+a==+a&&(b.zIndex=+a)}},k.stop=function(){i=1},k.nt=function(a){if(a)return(new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)")).test(h);return h},k.off=k.unbind=function(a,b){var f=a.split(d),g,h,i,k,l,m,n,o=[j];for(k=0,l=f.length;k<l;k++)for(m=0;m<o.length;m+=i.length-2){i=[m,1],g=o[m].n;if(f[k]!=e)g[f[k]]&&i.push(g[f[k]]);else for(h in g)g[c](h)&&i.push(g[h]);o.splice.apply(o,i)}for(k=0,l=o.length;k<l;k++){g=o[k];while(g.n){if(b){if(g.f){for(m=0,n=g.f.length;m<n;m++)if(g.f[m]==b){g.f.splice(m,1);break}!g.f.length&&delete g.f}for(h in g.n)if(g.n[c](h)&&g.n[h].f){var p=g.n[h].f;for(m=0,n=p.length;m<n;m++)if(p[m]==b){p.splice(m,1);break}!p.length&&delete g.n[h].f}}else{delete g.f;for(h in g.n)g.n[c](h)&&g.n[h].f&&delete g.n[h].f}g=g.n}}},k.once=function(a,b){var c=function(){var d=b.apply(this,arguments);k.unbind(a,c);return d};return k.on(a,c)},k.version=b,k.toString=function(){return"You are running Eve "+b},typeof module!="undefined"&&module.exports?module.exports=k:typeof define!="undefined"?define("eve",[],function(){return k}):a.eve=k})(this),function(){function cF(a){for(var b=0;b<cy.length;b++)cy[b].el.paper==a&&cy.splice(b--,1)}function cE(b,d,e,f,h,i){e=Q(e);var j,k,l,m=[],o,p,q,t=b.ms,u={},v={},w={};if(f)for(y=0,z=cy.length;y<z;y++){var x=cy[y];if(x.el.id==d.id&&x.anim==b){x.percent!=e?(cy.splice(y,1),l=1):k=x,d.attr(x.totalOrigin);break}}else f=+v;for(var y=0,z=b.percents.length;y<z;y++){if(b.percents[y]==e||b.percents[y]>f*b.top){e=b.percents[y],p=b.percents[y-1]||0,t=t/b.top*(e-p),o=b.percents[y+1],j=b.anim[e];break}f&&d.attr(b.anim[b.percents[y]])}if(!!j){if(!k){for(var A in j)if(j[g](A))if(U[g](A)||d.paper.customAttributes[g](A)){u[A]=d.attr(A),u[A]==null&&(u[A]=T[A]),v[A]=j[A];switch(U[A]){case C:w[A]=(v[A]-u[A])/t;break;case"colour":u[A]=a.getRGB(u[A]);var B=a.getRGB(v[A]);w[A]={r:(B.r-u[A].r)/t,g:(B.g-u[A].g)/t,b:(B.b-u[A].b)/t};break;case"path":var D=bR(u[A],v[A]),E=D[1];u[A]=D[0],w[A]=[];for(y=0,z=u[A].length;y<z;y++){w[A][y]=[0];for(var F=1,G=u[A][y].length;F<G;F++)w[A][y][F]=(E[y][F]-u[A][y][F])/t}break;case"transform":var H=d._,I=ca(H[A],v[A]);if(I){u[A]=I.from,v[A]=I.to,w[A]=[],w[A].real=!0;for(y=0,z=u[A].length;y<z;y++){w[A][y]=[u[A][y][0]];for(F=1,G=u[A][y].length;F<G;F++)w[A][y][F]=(v[A][y][F]-u[A][y][F])/t}}else{var J=d.matrix||new cb,K={_:{transform:H.transform},getBBox:function(){return d.getBBox(1)}};u[A]=[J.a,J.b,J.c,J.d,J.e,J.f],b$(K,v[A]),v[A]=K._.transform,w[A]=[(K.matrix.a-J.a)/t,(K.matrix.b-J.b)/t,(K.matrix.c-J.c)/t,(K.matrix.d-J.d)/t,(K.matrix.e-J.e)/t,(K.matrix.f-J.f)/t]}break;case"csv":var L=r(j[A])[s](c),M=r(u[A])[s](c);if(A=="clip-rect"){u[A]=M,w[A]=[],y=M.length;while(y--)w[A][y]=(L[y]-u[A][y])/t}v[A]=L;break;default:L=[][n](j[A]),M=[][n](u[A]),w[A]=[],y=d.paper.customAttributes[A].length;while(y--)w[A][y]=((L[y]||0)-(M[y]||0))/t}}var O=j.easing,P=a.easing_formulas[O];if(!P){P=r(O).match(N);if(P&&P.length==5){var R=P;P=function(a){return cC(a,+R[1],+R[2],+R[3],+R[4],t)}}else P=bf}q=j.start||b.start||+(new Date),x={anim:b,percent:e,timestamp:q,start:q+(b.del||0),status:0,initstatus:f||0,stop:!1,ms:t,easing:P,from:u,diff:w,to:v,el:d,callback:j.callback,prev:p,next:o,repeat:i||b.times,origin:d.attr(),totalOrigin:h},cy.push(x);if(f&&!k&&!l){x.stop=!0,x.start=new Date-t*f;if(cy.length==1)return cA()}l&&(x.start=new Date-x.ms*f),cy.length==1&&cz(cA)}else k.initstatus=f,k.start=new Date-k.ms*f;eve("raphael.anim.start."+d.id,d,b)}}function cD(a,b){var c=[],d={};this.ms=b,this.times=1;if(a){for(var e in a)a[g](e)&&(d[Q(e)]=a[e],c.push(Q(e)));c.sort(bd)}this.anim=d,this.top=c[c.length-1],this.percents=c}function cC(a,b,c,d,e,f){function o(a,b){var c,d,e,f,j,k;for(e=a,k=0;k<8;k++){f=m(e)-a;if(z(f)<b)return e;j=(3*i*e+2*h)*e+g;if(z(j)<1e-6)break;e=e-f/j}c=0,d=1,e=a;if(e<c)return c;if(e>d)return d;while(c<d){f=m(e);if(z(f-a)<b)return e;a>f?c=e:d=e,e=(d-c)/2+c}return e}function n(a,b){var c=o(a,b);return((l*c+k)*c+j)*c}function m(a){return((i*a+h)*a+g)*a}var g=3*b,h=3*(d-b)-g,i=1-g-h,j=3*c,k=3*(e-c)-j,l=1-j-k;return n(a,1/(200*f))}function cq(){return this.x+q+this.y+q+this.width+" × "+this.height}function cp(){return this.x+q+this.y}function cb(a,b,c,d,e,f){a!=null?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function bH(b,c,d){b=a._path2curve(b),c=a._path2curve(c);var e,f,g,h,i,j,k,l,m,n,o=d?0:[];for(var p=0,q=b.length;p<q;p++){var r=b[p];if(r[0]=="M")e=i=r[1],f=j=r[2];else{r[0]=="C"?(m=[e,f].concat(r.slice(1)),e=m[6],f=m[7]):(m=[e,f,e,f,i,j,i,j],e=i,f=j);for(var s=0,t=c.length;s<t;s++){var u=c[s];if(u[0]=="M")g=k=u[1],h=l=u[2];else{u[0]=="C"?(n=[g,h].concat(u.slice(1)),g=n[6],h=n[7]):(n=[g,h,g,h,k,l,k,l],g=k,h=l);var v=bG(m,n,d);if(d)o+=v;else{for(var w=0,x=v.length;w<x;w++)v[w].segment1=p,v[w].segment2=s,v[w].bez1=m,v[w].bez2=n;o=o.concat(v)}}}}}return o}function bG(b,c,d){var e=a.bezierBBox(b),f=a.bezierBBox(c);if(!a.isBBoxIntersect(e,f))return d?0:[];var g=bB.apply(0,b),h=bB.apply(0,c),i=~~(g/5),j=~~(h/5),k=[],l=[],m={},n=d?0:[];for(var o=0;o<i+1;o++){var p=a.findDotsAtSegment.apply(a,b.concat(o/i));k.push({x:p.x,y:p.y,t:o/i})}for(o=0;o<j+1;o++)p=a.findDotsAtSegment.apply(a,c.concat(o/j)),l.push({x:p.x,y:p.y,t:o/j});for(o=0;o<i;o++)for(var q=0;q<j;q++){var r=k[o],s=k[o+1],t=l[q],u=l[q+1],v=z(s.x-r.x)<.001?"y":"x",w=z(u.x-t.x)<.001?"y":"x",x=bD(r.x,r.y,s.x,s.y,t.x,t.y,u.x,u.y);if(x){if(m[x.x.toFixed(4)]==x.y.toFixed(4))continue;m[x.x.toFixed(4)]=x.y.toFixed(4);var y=r.t+z((x[v]-r[v])/(s[v]-r[v]))*(s.t-r.t),A=t.t+z((x[w]-t[w])/(u[w]-t[w]))*(u.t-t.t);y>=0&&y<=1&&A>=0&&A<=1&&(d?n++:n.push({x:x.x,y:x.y,t1:y,t2:A}))}}return n}function bF(a,b){return bG(a,b,1)}function bE(a,b){return bG(a,b)}function bD(a,b,c,d,e,f,g,h){if(!(x(a,c)<y(e,g)||y(a,c)>x(e,g)||x(b,d)<y(f,h)||y(b,d)>x(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(!k)return;var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(n<+y(a,c).toFixed(2)||n>+x(a,c).toFixed(2)||n<+y(e,g).toFixed(2)||n>+x(e,g).toFixed(2)||o<+y(b,d).toFixed(2)||o>+x(b,d).toFixed(2)||o<+y(f,h).toFixed(2)||o>+x(f,h).toFixed(2))return;return{x:l,y:m}}}function bC(a,b,c,d,e,f,g,h,i){if(!(i<0||bB(a,b,c,d,e,f,g,h)<i)){var j=1,k=j/2,l=j-k,m,n=.01;m=bB(a,b,c,d,e,f,g,h,l);while(z(m-i)>n)k/=2,l+=(m<i?1:-1)*k,m=bB(a,b,c,d,e,f,g,h,l);return l}}function bB(a,b,c,d,e,f,g,h,i){i==null&&(i=1),i=i>1?1:i<0?0:i;var j=i/2,k=12,l=[-0.1252,.1252,-0.3678,.3678,-0.5873,.5873,-0.7699,.7699,-0.9041,.9041,-0.9816,.9816],m=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],n=0;for(var o=0;o<k;o++){var p=j*l[o]+j,q=bA(p,a,c,e,g),r=bA(p,b,d,f,h),s=q*q+r*r;n+=m[o]*w.sqrt(s)}return j*n}function bA(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function by(a,b){var c=[];for(var d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function bx(){return this.hex}function bv(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];if(h[g](f)){bu(i,f);return c?c(h[f]):h[f]}i.length>=1e3&&delete h[i.shift()],i.push(f),h[f]=a[m](b,e);return c?c(h[f]):h[f]}return d}function bu(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function bm(a){if(Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[g](c)&&(b[c]=bm(a[c]));return b}function a(c){if(a.is(c,"function"))return b?c():eve.on("raphael.DOMload",c);if(a.is(c,E))return a._engine.create[m](a,c.splice(0,3+a.is(c[0],C))).add(c);var d=Array.prototype.slice.call(arguments,0);if(a.is(d[d.length-1],"function")){var e=d.pop();return b?e.call(a._engine.create[m](a,d)):eve.on("raphael.DOMload",function(){e.call(a._engine.create[m](a,d))})}return a._engine.create[m](a,arguments)}a.version="2.1.0",a.eve=eve;var b,c=/[, ]+/,d={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},e=/\{(\d+)\}/g,f="prototype",g="hasOwnProperty",h={doc:document,win:window},i={was:Object.prototype[g].call(h.win,"Raphael"),is:h.win.Raphael},j=function(){this.ca=this.customAttributes={}},k,l="appendChild",m="apply",n="concat",o="createTouch"in h.doc,p="",q=" ",r=String,s="split",t="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[s](q),u={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},v=r.prototype.toLowerCase,w=Math,x=w.max,y=w.min,z=w.abs,A=w.pow,B=w.PI,C="number",D="string",E="array",F="toString",G="fill",H=Object.prototype.toString,I={},J="push",K=a._ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,L=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,M={NaN:1,Infinity:1,"-Infinity":1},N=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,O=w.round,P="setAttribute",Q=parseFloat,R=parseInt,S=r.prototype.toUpperCase,T=a._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0},U=a._availableAnimAttrs={blur:C,"clip-rect":"csv",cx:C,cy:C,fill:"colour","fill-opacity":C,"font-size":C,height:C,opacity:C,path:"path",r:C,rx:C,ry:C,stroke:"colour","stroke-opacity":C,"stroke-width":C,transform:"transform",width:C,x:C,y:C},V=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g,W=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,X={hs:1,rg:1},Y=/,?([achlmqrstvxz]),?/gi,Z=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig,$=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig,_=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/ig,ba=a._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,bb={},bc=function(a,b){return a.key-b.key},bd=function(a,b){return Q(a)-Q(b)},be=function(){},bf=function(a){return a},bg=a._rectPath=function(a,b,c,d,e){if(e)return[["M",a+e,b],["l",c-e*2,0],["a",e,e,0,0,1,e,e],["l",0,d-e*2],["a",e,e,0,0,1,-e,e],["l",e*2-c,0],["a",e,e,0,0,1,-e,-e],["l",0,e*2-d],["a",e,e,0,0,1,e,-e],["z"]];return[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]]},bh=function(a,b,c,d){d==null&&(d=c);return[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]]},bi=a._getPath={path:function(a){return a.attr("path")},circle:function(a){var b=a.attrs;return bh(b.cx,b.cy,b.r)},ellipse:function(a){var b=a.attrs;return bh(b.cx,b.cy,b.rx,b.ry)},rect:function(a){var b=a.attrs;return bg(b.x,b.y,b.width,b.height,b.r)},image:function(a){var b=a.attrs;return bg(b.x,b.y,b.width,b.height)},text:function(a){var b=a._getBBox();return bg(b.x,b.y,b.width,b.height)}},bj=a.mapPath=function(a,b){if(!b)return a;var c,d,e,f,g,h,i;a=bR(a);for(e=0,g=a.length;e<g;e++){i=a[e];for(f=1,h=i.length;f<h;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d}return a};a._g=h,a.type=h.win.SVGAngle||h.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML";if(a.type=="VML"){var bk=h.doc.createElement("div"),bl;bk.innerHTML='<v:shape adj="1"/>',bl=bk.firstChild,bl.style.behavior="url(#default#VML)";if(!bl||typeof bl.adj!="object")return a.type=p;bk=null}a.svg=!(a.vml=a.type=="VML"),a._Paper=j,a.fn=k=j.prototype=a.prototype,a._id=0,a._oid=0,a.is=function(a,b){b=v.call(b);if(b=="finite")return!M[g](+a);if(b=="array")return a instanceof Array;return b=="null"&&a===null||b==typeof a&&a!==null||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||H.call(a).slice(8,-1).toLowerCase()==b},a.angle=function(b,c,d,e,f,g){if(f==null){var h=b-d,i=c-e;if(!h&&!i)return 0;return(180+w.atan2(-i,-h)*180/B+360)%360}return a.angle(b,c,f,g)-a.angle(d,e,f,g)},a.rad=function(a){return a%360*B/180},a.deg=function(a){return a*180/B%360},a.snapTo=function(b,c,d){d=a.is(d,"finite")?d:10;if(a.is(b,E)){var e=b.length;while(e--)if(z(b[e]-c)<=d)return b[e]}else{b=+b;var f=c%b;if(f<d)return c-f;if(f>b-d)return c-f+b}return c};var bn=a.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=w.random()*16|0,c=a=="x"?b:b&3|8;return c.toString(16)});a.setWindow=function(b){eve("raphael.setWindow",a,h.win,b),h.win=b,h.doc=h.win.document,a._engine.initWin&&a._engine.initWin(h.win)};var bo=function(b){if(a.vml){var c=/^\s+|\s+$/g,d;try{var e=new ActiveXObject("htmlfile");e.write("<body>"),e.close(),d=e.body}catch(f){d=createPopup().document.body}var g=d.createTextRange();bo=bv(function(a){try{d.style.color=r(a).replace(c,p);var b=g.queryCommandValue("ForeColor");b=(b&255)<<16|b&65280|(b&16711680)>>>16;return"#"+("000000"+b.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=h.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",h.doc.body.appendChild(i),bo=bv(function(a){i.style.color=a;return h.doc.defaultView.getComputedStyle(i,p).getPropertyValue("color")})}return bo(b)},bp=function(){return"hsb("+[this.h,this.s,this.b]+")"},bq=function(){return"hsl("+[this.h,this.s,this.l]+")"},br=function(){return this.hex},bs=function(b,c,d){c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);if(c==null&&a.is(b,D)){var e=a.getRGB(b);b=e.r,c=e.g,d=e.b}if(b>1||c>1||d>1)b/=255,c/=255,d/=255;return[b,c,d]},bt=function(b,c,d,e){b*=255,c*=255,d*=255;var f={r:b,g:c,b:d,hex:a.rgb(b,c,d),toString:br};a.is(e,"finite")&&(f.opacity=e);return f};a.color=function(b){var c;a.is(b,"object")&&"h"in b&&"s"in b&&"b"in b?(c=a.hsb2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):a.is(b,"object")&&"h"in b&&"s"in b&&"l"in b?(c=a.hsl2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):(a.is(b,"string")&&(b=a.getRGB(b)),a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b?(c=a.rgb2hsl(b),b.h=c.h,b.s=c.s,b.l=c.l,c=a.rgb2hsb(b),b.v=c.b):(b={hex:"none"},b.r=b.g=b.b=b.h=b.s=b.v=b.l=-1)),b.toString=br;return b},a.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;a=a%360/60,i=c*b,h=i*(1-z(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h);if(a>1||b>1||c>1)a/=360,b/=100,c/=100;a*=360;var e,f,g,h,i;a=a%360/60,i=2*b*(c<.5?c:1-c),h=i*(1-z(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.rgb2hsb=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;f=x(a,b,c),g=f-y(a,b,c),d=g==0?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=g==0?0:g/f;return{h:d,s:e,b:f,toString:bp}},a.rgb2hsl=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;g=x(a,b,c),h=y(a,b,c),i=g-h,d=i==0?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=i==0?0:f<.5?i/(2*f):i/(2-2*f);return{h:d,s:e,l:f,toString:bq}},a._path2string=function(){return this.join(",").replace(Y,"$1")};var bw=a._preload=function(a,b){var c=h.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,h.doc.body.removeChild(this)},c.onerror=function(){h.doc.body.removeChild(this)},h.doc.body.appendChild(c),c.src=a};a.getRGB=bv(function(b){if(!b||!!((b=r(b)).indexOf("-")+1))return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx};if(b=="none")return{r:-1,g:-1,b:-1,hex:"none",toString:bx};!X[g](b.toLowerCase().substring(0,2))&&b.charAt()!="#"&&(b=bo(b));var c,d,e,f,h,i,j,k=b.match(L);if(k){k[2]&&(f=R(k[2].substring(5),16),e=R(k[2].substring(3,5),16),d=R(k[2].substring(1,3),16)),k[3]&&(f=R((i=k[3].charAt(3))+i,16),e=R((i=k[3].charAt(2))+i,16),d=R((i=k[3].charAt(1))+i,16)),k[4]&&(j=k[4][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),k[1].toLowerCase().slice(0,4)=="rgba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100));if(k[5]){j=k[5][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsb2rgb(d,e,f,h)}if(k[6]){j=k[6][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsla"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsl2rgb(d,e,f,h)}k={r:d,g:e,b:f,toString:bx},k.hex="#"+(16777216|f|e<<8|d<<16).toString(16).slice(1),a.is(h,"finite")&&(k.opacity=h);return k}return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx}},a),a.hsb=bv(function(b,c,d){return a.hsb2rgb(b,c,d).hex}),a.hsl=bv(function(b,c,d){return a.hsl2rgb(b,c,d).hex}),a.rgb=bv(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),a.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b}));return c.hex},a.getColor.reset=function(){delete this.start},a.parsePathString=function(b){if(!b)return null;var c=bz(b);if(c.arr)return bJ(c.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];a.is(b,E)&&a.is(b[0],E)&&(e=bJ(b)),e.length||r(b).replace(Z,function(a,b,c){var f=[],g=b.toLowerCase();c.replace(_,function(a,b){b&&f.push(+b)}),g=="m"&&f.length>2&&(e.push([b][n](f.splice(0,2))),g="l",b=b=="m"?"l":"L");if(g=="r")e.push([b][n](f));else while(f.length>=d[g]){e.push([b][n](f.splice(0,d[g])));if(!d[g])break}}),e.toString=a._path2string,c.arr=bJ(e);return e},a.parseTransformString=bv(function(b){if(!b)return null;var c={r:3,s:4,t:2,m:6},d=[];a.is(b,E)&&a.is(b[0],E)&&(d=bJ(b)),d.length||r(b).replace($,function(a,b,c){var e=[],f=v.call(b);c.replace(_,function(a,b){b&&e.push(+b)}),d.push([b][n](e))}),d.toString=a._path2string;return d});var bz=function(a){var b=bz.ps=bz.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[g](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])});return b[a]};a.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=A(j,3),l=A(j,2),m=i*i,n=m*i,o=k*a+l*3*i*c+j*3*i*i*e+n*g,p=k*b+l*3*i*d+j*3*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,x=j*e+i*g,y=j*f+i*h,z=90-w.atan2(q-s,r-t)*180/B;(q>s||r<t)&&(z+=180);return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:x,y:y},alpha:z}},a.bezierBBox=function(b,c,d,e,f,g,h,i){a.is(b,"array")||(b=[b,c,d,e,f,g,h,i]);var j=bQ.apply(null,b);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},a.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},a.isBBoxIntersect=function(b,c){var d=a.isPointInsideBBox;return d(c,b.x,b.y)||d(c,b.x2,b.y)||d(c,b.x,b.y2)||d(c,b.x2,b.y2)||d(b,c.x,c.y)||d(b,c.x2,c.y)||d(b,c.x,c.y2)||d(b,c.x2,c.y2)||(b.x<c.x2&&b.x>c.x||c.x<b.x2&&c.x>b.x)&&(b.y<c.y2&&b.y>c.y||c.y<b.y2&&c.y>b.y)},a.pathIntersection=function(a,b){return bH(a,b)},a.pathIntersectionNumber=function(a,b){return bH(a,b,1)},a.isPointInsidePath=function(b,c,d){var e=a.pathBBox(b);return a.isPointInsideBBox(e,c,d)&&bH(b,[["M",c,d],["H",e.x2+10]],1)%2==1},a._removedFactory=function(a){return function(){eve("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var bI=a.pathBBox=function(a){var b=bz(a);if(b.bbox)return b.bbox;if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=bR(a);var c=0,d=0,e=[],f=[],g;for(var h=0,i=a.length;h<i;h++){g=a[h];if(g[0]=="M")c=g[1],d=g[2],e.push(c),f.push(d);else{var j=bQ(c,d,g[1],g[2],g[3],g[4],g[5],g[6]);e=e[n](j.min.x,j.max.x),f=f[n](j.min.y,j.max.y),c=g[5],d=g[6]}}var k=y[m](0,e),l=y[m](0,f),o=x[m](0,e),p=x[m](0,f),q={x:k,y:l,x2:o,y2:p,width:o-k,height:p-l};b.bbox=bm(q);return q},bJ=function(b){var c=bm(b);c.toString=a._path2string;return c},bK=a._pathToRelative=function(b){var c=bz(b);if(c.rel)return bJ(c.rel);if(!a.is(b,E)||!a.is(b&&b[0],E))b=a.parsePathString(b);var d=[],e=0,f=0,g=0,h=0,i=0;b[0][0]=="M"&&(e=b[0][1],f=b[0][2],g=e,h=f,i++,d.push(["M",e,f]));for(var j=i,k=b.length;j<k;j++){var l=d[j]=[],m=b[j];if(m[0]!=v.call(m[0])){l[0]=v.call(m[0]);switch(l[0]){case"a":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case"v":l[1]=+(m[1]-f).toFixed(3);break;case"m":g=m[1],h=m[2];default:for(var n=1,o=m.length;n<o;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}}else{l=d[j]=[],m[0]=="m"&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;p<q;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case"z":e=g,f=h;break;case"h":e+=+d[j][r-1];break;case"v":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}d.toString=a._path2string,c.rel=bJ(d);return d},bL=a._pathToAbsolute=function(b){var c=bz(b);if(c.abs)return bJ(c.abs);if(!a.is(b,E)||!a.is(b&&b[0],E))b=a.parsePathString(b);if(!b||!b.length)return[["M",0,0]];var d=[],e=0,f=0,g=0,h=0,i=0;b[0][0]=="M"&&(e=+b[0][1],f=+b[0][2],g=e,h=f,i++,d[0]=["M",e,f]);var j=b.length==3&&b[0][0]=="M"&&b[1][0].toUpperCase()=="R"&&b[2][0].toUpperCase()=="Z";for(var k,l,m=i,o=b.length;m<o;m++){d.push(k=[]),l=b[m];if(l[0]!=S.call(l[0])){k[0]=S.call(l[0]);switch(k[0]){case"A":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case"V":k[1]=+l[1]+f;break;case"H":k[1]=+l[1]+e;break;case"R":var p=[e,f][n](l.slice(1));for(var q=2,r=p.length;q<r;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[n](by(p,j));break;case"M":g=+l[1]+e,h=+l[2]+f;default:for(q=1,r=l.length;q<r;q++)k[q]=+l[q]+(q%2?e:f)}}else if(l[0]=="R")p=[e,f][n](l.slice(1)),d.pop(),d=d[n](by(p,j)),k=["R"][n](l.slice(-2));else for(var s=0,t=l.length;s<t;s++)k[s]=l[s];switch(k[0]){case"Z":e=g,f=h;break;case"H":e=k[1];break;case"V":f=k[1];break;case"M":g=k[k.length-2],h=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}d.toString=a._path2string,c.abs=bJ(d);return d},bM=function(a,b,c,d){return[a,b,c,d,c,d]},bN=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},bO=function(a,b,c,d,e,f,g,h,i,j){var k=B*120/180,l=B/180*(+e||0),m=[],o,p=bv(function(a,b,c){var d=a*w.cos(c)-b*w.sin(c),e=a*w.sin(c)+b*w.cos(c);return{x:d,y:e}});if(!j){o=p(a,b,-l),a=o.x,b=o.y,o=p(h,i,-l),h=o.x,i=o.y;var q=w.cos(B/180*e),r=w.sin(B/180*e),t=(a-h)/2,u=(b-i)/2,v=t*t/(c*c)+u*u/(d*d);v>1&&(v=w.sqrt(v),c=v*c,d=v*d);var x=c*c,y=d*d,A=(f==g?-1:1)*w.sqrt(z((x*y-x*u*u-y*t*t)/(x*u*u+y*t*t))),C=A*c*u/d+(a+h)/2,D=A*-d*t/c+(b+i)/2,E=w.asin(((b-D)/d).toFixed(9)),F=w.asin(((i-D)/d).toFixed(9));E=a<C?B-E:E,F=h<C?B-F:F,E<0&&(E=B*2+E),F<0&&(F=B*2+F),g&&E>F&&(E=E-B*2),!g&&F>E&&(F=F-B*2)}else E=j[0],F=j[1],C=j[2],D=j[3];var G=F-E;if(z(G)>k){var H=F,I=h,J=i;F=E+k*(g&&F>E?1:-1),h=C+c*w.cos(F),i=D+d*w.sin(F),m=bO(h,i,c,d,e,0,g,I,J,[F,H,C,D])}G=F-E;var K=w.cos(E),L=w.sin(E),M=w.cos(F),N=w.sin(F),O=w.tan(G/4),P=4/3*c*O,Q=4/3*d*O,R=[a,b],S=[a+P*L,b-Q*K],T=[h+P*N,i-Q*M],U=[h,i];S[0]=2*R[0]-S[0],S[1]=2*R[1]-S[1];if(j)return[S,T,U][n](m);m=[S,T,U][n](m).join()[s](",");var V=[];for(var W=0,X=m.length;W<X;W++)V[W]=W%2?p(m[W-1],m[W],l).y:p(m[W],m[W+1],l).x;return V},bP=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:A(j,3)*a+A(j,2)*3*i*c+j*3*i*i*e+A(i,3)*g,y:A(j,3)*b+A(j,2)*3*i*d+j*3*i*i*f+A(i,3)*h}},bQ=bv(function(a,b,c,d,e,f,g,h){var i=e-2*c+a-(g-2*e+c),j=2*(c-a)-2*(e-c),k=a-c,l=(-j+w.sqrt(j*j-4*i*k))/2/i,n=(-j-w.sqrt(j*j-4*i*k))/2/i,o=[b,h],p=[a,g],q;z(l)>"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y)),i=f-2*d+b-(h-2*f+d),j=2*(d-b)-2*(f-d),k=b-d,l=(-j+w.sqrt(j*j-4*i*k))/2/i,n=(-j-w.sqrt(j*j-4*i*k))/2/i,z(l)>"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y));return{min:{x:y[m](0,p),y:y[m](0,o)},max:{x:x[m](0,p),y:x[m](0,o)}}}),bR=a._path2curve=bv(function(a,b){var c=!b&&bz(a);if(!b&&c.curve)return bJ(c.curve);var d=bL(a),e=b&&bL(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=function(a,b){var c,d;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null);switch(a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][n](bO[m](0,[b.x,b.y][n](a.slice(1))));break;case"S":c=b.x+(b.x-(b.bx||b.x)),d=b.y+(b.y-(b.by||b.y)),a=["C",c,d][n](a.slice(1));break;case"T":b.qx=b.x+(b.x-(b.qx||b.x)),b.qy=b.y+(b.y-(b.qy||b.y)),a=["C"][n](bN(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][n](bN(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][n](bM(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][n](bM(b.x,b.y,a[1],b.y));break;case"V":a=["C"][n](bM(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][n](bM(b.x,b.y,b.X,b.Y))}return a},i=function(a,b){if(a[b].length>7){a[b].shift();var c=a[b];while(c.length)a.splice(b++,0,["C"][n](c.splice(0,6)));a.splice(b,1),l=x(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&a[g][0]=="M"&&b[g][0]!="M"&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=x(d.length,e&&e.length||0))};for(var k=0,l=x(d.length,e&&e.length||0);k<l;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var o=d[k],p=e&&e[k],q=o.length,r=e&&p.length;f.x=o[q-2],f.y=o[q-1],f.bx=Q(o[q-4])||f.x,f.by=Q(o[q-3])||f.y,g.bx=e&&(Q(p[r-4])||g.x),g.by=e&&(Q(p[r-3])||g.y),g.x=e&&p[r-2],g.y=e&&p[r-1]}e||(c.curve=bJ(d));return e?[d,e]:d},null,bJ),bS=a._parseDots=bv(function(b){var c=[];for(var d=0,e=b.length;d<e;d++){var f={},g=b[d].match(/^([^:]*):?([\d\.]*)/);f.color=a.getRGB(g[1]);if(f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),c.push(f)}for(d=1,e=c.length-1;d<e;d++)if(!c[d].offset){var h=Q(c[d-1].offset||0),i=0;for(var j=d+1;j<e;j++)if(c[j].offset){i=c[j].offset;break}i||(i=100,j=e),i=Q(i);var k=(i-h)/(j-d+1);for(;d<j;d++)h+=k,c[d].offset=h+"%"}return c}),bT=a._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)},bU=a._tofront=function(a,b){b.top!==a&&(bT(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},bV=a._toback=function(a,b){b.bottom!==a&&(bT(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},bW=a._insertafter=function(a,b,c){bT(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},bX=a._insertbefore=function(a,b,c){bT(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},bY=a.toMatrix=function(a,b){var c=bI(a),d={_:{transform:p},getBBox:function(){return c}};b$(d,b);return d.matrix},bZ=a.transformPath=function(a,b){return bj(a,bY(a,b))},b$=a._extractTransform=function(b,c){if(c==null)return b._.transform;c=r(c).replace(/\.{3}|\u2026/g,b._.transform||p);var d=a.parseTransformString(c),e=0,f=0,g=0,h=1,i=1,j=b._,k=new cb;j.transform=d||[];if(d)for(var l=0,m=d.length;l<m;l++){var n=d[l],o=n.length,q=r(n[0]).toLowerCase(),s=n[0]!=q,t=s?k.invert():0,u,v,w,x,y;q=="t"&&o==3?s?(u=t.x(0,0),v=t.y(0,0),w=t.x(n[1],n[2]),x=t.y(n[1],n[2]),k.translate(w-u,x-v)):k.translate(n[1],n[2]):q=="r"?o==2?(y=y||b.getBBox(1),k.rotate(n[1],y.x+y.width/2,y.y+y.height/2),e+=n[1]):o==4&&(s?(w=t.x(n[2],n[3]),x=t.y(n[2],n[3]),k.rotate(n[1],w,x)):k.rotate(n[1],n[2],n[3]),e+=n[1]):q=="s"?o==2||o==3?(y=y||b.getBBox(1),k.scale(n[1],n[o-1],y.x+y.width/2,y.y+y.height/2),h*=n[1],i*=n[o-1]):o==5&&(s?(w=t.x(n[3],n[4]),x=t.y(n[3],n[4]),k.scale(n[1],n[2],w,x)):k.scale(n[1],n[2],n[3],n[4]),h*=n[1],i*=n[2]):q=="m"&&o==7&&k.add(n[1],n[2],n[3],n[4],n[5],n[6]),j.dirtyT=1,b.matrix=k}b.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,h==1&&i==1&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1},b_=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return a.length==4?[b,0,a[2],a[3]]:[b,0];case"s":return a.length==5?[b,1,1,a[3],a[4]]:a.length==3?[b,1,1]:[b,1]}},ca=a._equaliseTransform=function(b,c){c=r(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];var d=x(b.length,c.length),e=[],f=[],g=0,h,i,j,k;for(;g<d;g++){j=b[g]||b_(c[g]),k=c[g]||b_(j);if(j[0]!=k[0]||j[0].toLowerCase()=="r"&&(j[2]!=k[2]||j[3]!=k[3])||j[0].toLowerCase()=="s"&&(j[3]!=k[3]||j[4]!=k[4]))return;e[g]=[],f[g]=[];for(h=0,i=x(j.length,k.length);h<i;h++)h in j&&(e[g][h]=j[h]),h in k&&(f[g][h]=k[h])}return{from:e,to:f}};a._getContainer=function(b,c,d,e){var f;f=e==null&&!a.is(b,"object")?h.doc.getElementById(b):b;if(f!=null){if(f.tagName)return c==null?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:c,height:d};return{container:1,x:b,y:c,width:d,height:e}}},a.pathToRelative=bK,a._engine={},a.path2curve=bR,a.matrix=function(a,b,c,d,e,f){return new cb(a,b,c,d,e,f)},function(b){function d(a){var b=w.sqrt(c(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}function c(a){return a[0]*a[0]+a[1]*a[1]}b.add=function(a,b,c,d,e,f){var g=[[],[],[]],h=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],i=[[a,c,e],[b,d,f],[0,0,1]],j,k,l,m;a&&a instanceof cb&&(i=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]);for(j=0;j<3;j++)for(k=0;k<3;k++){m=0;for(l=0;l<3;l++)m+=h[j][l]*i[l][k];g[j][k]=m}this.a=g[0][0],this.b=g[1][0],this.c=g[0][1],this.d=g[1][1],this.e=g[0][2],this.f=g[1][2]},b.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new cb(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},b.clone=function(){return new cb(this.a,this.b,this.c,this.d,this.e,this.f)},b.translate=function(a,b){this.add(1,0,0,1,a,b)},b.scale=function(a,b,c,d){b==null&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},b.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var e=+w.cos(b).toFixed(9),f=+w.sin(b).toFixed(9);this.add(e,f,-f,e,c,d),this.add(1,0,0,1,-c,-d)},b.x=function(a,b){return a*this.a+b*this.c+this.e},b.y=function(a,b){return a*this.b+b*this.d+this.f},b.get=function(a){return+this[r.fromCharCode(97+a)].toFixed(4)},b.toString=function(){return a.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},b.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},b.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},b.split=function(){var b={};b.dx=this.e,b.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];b.scalex=w.sqrt(c(e[0])),d(e[0]),b.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*b.shear,e[1][1]-e[0][1]*b.shear],b.scaley=w.sqrt(c(e[1])),d(e[1]),b.shear/=b.scaley;var f=-e[0][1],g=e[1][1];g<0?(b.rotate=a.deg(w.acos(g)),f<0&&(b.rotate=360-b.rotate)):b.rotate=a.deg(w.asin(f)),b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b},b.toTransformString=function(a){var b=a||this[s]();if(b.isSimple){b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4);return(b.dx||b.dy?"t"+[b.dx,b.dy]:p)+(b.scalex!=1||b.scaley!=1?"s"+[b.scalex,b.scaley,0,0]:p)+(b.rotate?"r"+[b.rotate,0,0]:p)}return"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(cb.prototype);var cc=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);navigator.vendor=="Apple Computer, Inc."&&(cc&&cc[1]<4||navigator.platform.slice(0,2)=="iP")||navigator.vendor=="Google Inc."&&cc&&cc[1]<8?k.safari=function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:k.safari=be;var cd=function(){this.returnValue=!1},ce=function(){return this.originalEvent.preventDefault()},cf=function(){this.cancelBubble=!0},cg=function(){return this.originalEvent.stopPropagation()},ch=function(){if(h.doc.addEventListener)return function(a,b,c,d){var e=o&&u[b]?u[b]:b,f=function(e){var f=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,i=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft,j=e.clientX+i,k=e.clientY+f;if(o&&u[g](b))for(var l=0,m=e.targetTouches&&e.targetTouches.length;l<m;l++)if(e.targetTouches[l].target==a){var n=e;e=e.targetTouches[l],e.originalEvent=n,e.preventDefault=ce,e.stopPropagation=cg;break}return c.call(d,e,j,k)};a.addEventListener(e,f,!1);return function(){a.removeEventListener(e,f,!1);return!0}};if(h.doc.attachEvent)return function(a,b,c,d){var e=function(a){a=a||h.win.event;var b=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,e=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;a.preventDefault=a.preventDefault||cd,a.stopPropagation=a.stopPropagation||cf;return c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){a.detachEvent("on"+b,e);return!0};return f}}(),ci=[],cj=function(a){var b=a.clientX,c=a.clientY,d=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,e=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft,f,g=ci.length;while(g--){f=ci[g];if(o){var i=a.touches.length,j;while(i--){j=a.touches[i];if(j.identifier==f.el._drag.id){b=j.clientX,c=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}}else a.preventDefault();var k=f.el.node,l,m=k.nextSibling,n=k.parentNode,p=k.style.display;h.win.opera&&n.removeChild(k),k.style.display="none",l=f.el.paper.getElementByPoint(b,c),k.style.display=p,h.win.opera&&(m?n.insertBefore(k,m):n.appendChild(k)),l&&eve("raphael.drag.over."+f.el.id,f.el,l),b+=e,c+=d,eve("raphael.drag.move."+f.el.id,f.move_scope||f.el,b-f.el._drag.x,c-f.el._drag.y,b,c,a)}},ck=function(b){a.unmousemove(cj).unmouseup(ck);var c=ci.length,d;while(c--)d=ci[c],d.el._drag={},eve("raphael.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,b);ci=[]},cl=a.el={};for(var cm=t.length;cm--;)(function(b){a[b]=cl[b]=function(c,d){a.is(c,"function")&&(this.events=this.events||[],this.events.push({name:b,f:c,unbind:ch(this.shape||this.node||h.doc,b,c,d||this)}));return this},a["un"+b]=cl["un"+b]=function(a){var c=this.events||[],d=c.length;while(d--)if(c[d].name==b&&c[d].f==a){c[d].unbind(),c.splice(d,1),!c.length&&delete this.events;return this}return this}})(t[cm]);cl.data=function(b,c){var d=bb[this.id]=bb[this.id]||{};if(arguments.length==1){if(a.is(b,"object")){for(var e in b)b[g](e)&&this.data(e,b[e]);return this}eve("raphael.data.get."+this.id,this,d[b],b);return d[b]}d[b]=c,eve("raphael.data.set."+this.id,this,c,b);return this},cl.removeData=function(a){a==null?bb[this.id]={}:bb[this.id]&&delete bb[this.id][a];return this},cl.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},cl.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var cn=[];cl.drag=function(b,c,d,e,f,g){function i(i){(i.originalEvent||i).preventDefault();var j=h.doc.documentElement.scrollTop||h.doc.body.scrollTop,k=h.doc.documentElement.scrollLeft||h.doc.body.scrollLeft;this._drag.x=i.clientX+k,this._drag.y=i.clientY+j,this._drag.id=i.identifier,!ci.length&&a.mousemove(cj).mouseup(ck),ci.push({el:this,move_scope:e,start_scope:f,end_scope:g}),c&&eve.on("raphael.drag.start."+this.id,c),b&&eve.on("raphael.drag.move."+this.id,b),d&&eve.on("raphael.drag.end."+this.id,d),eve("raphael.drag.start."+this.id,f||e||this,i.clientX+k,i.clientY+j,i)}this._drag={},cn.push({el:this,start:i}),this.mousedown(i);return this},cl.onDragOver=function(a){a?eve.on("raphael.drag.over."+this.id,a):eve.unbind("raphael.drag.over."+this.id)},cl.undrag=function(){var b=cn.length;while(b--)cn[b].el==this&&(this.unmousedown(cn[b].start),cn.splice(b,1),eve.unbind("raphael.drag.*."+this.id));!cn.length&&a.unmousemove(cj).unmouseup(ck)},k.circle=function(b,c,d){var e=a._engine.circle(this,b||0,c||0,d||0);this.__set__&&this.__set__.push(e);return e},k.rect=function(b,c,d,e,f){var g=a._engine.rect(this,b||0,c||0,d||0,e||0,f||0);this.__set__&&this.__set__.push(g);return g},k.ellipse=function(b,c,d,e){var f=a._engine.ellipse(this,b||0,c||0,d||0,e||0);this.__set__&&this.__set__.push(f);return f},k.path=function(b){b&&!a.is(b,D)&&!a.is(b[0],E)&&(b+=p);var c=a._engine.path(a.format[m](a,arguments),this);this.__set__&&this.__set__.push(c);return c},k.image=function(b,c,d,e,f){var g=a._engine.image(this,b||"about:blank",c||0,d||0,e||0,f||0);this.__set__&&this.__set__.push(g);return g},k.text=function(b,c,d){var e=a._engine.text(this,b||0,c||0,r(d));this.__set__&&this.__set__.push(e);return e},k.set=function(b){!a.is(b,"array")&&(b=Array.prototype.splice.call(arguments,0,arguments.length));var c=new cG(b);this.__set__&&this.__set__.push(c);return c},k.setStart=function(a){this.__set__=a||this.set()},k.setFinish=function(a){var b=this.__set__;delete this.__set__;return b},k.setSize=function(b,c){return a._engine.setSize.call(this,b,c)},k.setViewBox=function(b,c,d,e,f){return a._engine.setViewBox.call(this,b,c,d,e,f)},k.top=k.bottom=null,k.raphael=a;var co=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,i=b.top+(h.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(h.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:i,x:j}};k.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=h.doc.elementFromPoint(a,b);if(h.win.opera&&e.tagName=="svg"){var f=co(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var i=d.getIntersectionList(g,null);i.length&&(e=i[i.length-1])}if(!e)return null;while(e.parentNode&&e!=d.parentNode&&!e.raphael)e=e.parentNode;e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null;return e},k.getById=function(a){var b=this.bottom;while(b){if(b.id==a)return b;b=b.next}return null},k.forEach=function(a,b){var c=this.bottom;while(c){if(a.call(b,c)===!1)return this;c=c.next}return this},k.getElementsByPoint=function(a,b){var c=this.set();this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)});return c},cl.isPointInside=function(b,c){var d=this.realPath=this.realPath||bi[this.type](this);return a.isPointInsidePath(d,b,c)},cl.getBBox=function(a){if(this.removed)return{};var b=this._;if(a){if(b.dirty||!b.bboxwt)this.realPath=bi[this.type](this),b.bboxwt=bI(this.realPath),b.bboxwt.toString=cq,b.dirty=0;return b.bboxwt}if(b.dirty||b.dirtyT||!b.bbox){if(b.dirty||!this.realPath)b.bboxwt=0,this.realPath=bi[this.type](this);b.bbox=bI(bj(this.realPath,this.matrix)),b.bbox.toString=cq,b.dirty=b.dirtyT=0}return b.bbox},cl.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());this.__set__&&this.__set__.push(a);return a},cl.glow=function(a){if(this.type=="text")return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||bi[this.type](this);f=this.matrix?bj(f,this.matrix):f;for(var g=1;g<c+1;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cr={},cs=function(b,c,d,e,f,g,h,i,j){return j==null?bB(b,c,d,e,f,g,h,i):a.findDotsAtSegment(b,c,d,e,f,g,h,i,bC(b,c,d,e,f,g,h,i,j))},ct=function(b,c){return function(d,e,f){d=bR(d);var g,h,i,j,k="",l={},m,n=0;for(var o=0,p=d.length;o<p;o++){i=d[o];if(i[0]=="M")g=+i[1],h=+i[2];else{j=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6]);if(n+j>e){if(c&&!l.start){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),k+=["C"+m.start.x,m.start.y,m.m.x,m.m.y,m.x,m.y];if(f)return k;l.start=k,k=["M"+m.x,m.y+"C"+m.n.x,m.n.y,m.end.x,m.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!b&&!c){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n);return{x:m.x,y:m.y,alpha:m.alpha}}}n+=j,g=+i[5],h=+i[6]}k+=i.shift()+i}l.end=k,m=b?n:c?l:a.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),m.alpha&&(m={x:m.x,y:m.y,alpha:m.alpha});return m}},cu=ct(1),cv=ct(),cw=ct(0,1);a.getTotalLength=cu,a.getPointAtLength=cv,a.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return cw(a,b).end;var d=cw(a,c,1);return b?cw(d,b).end:d},cl.getTotalLength=function(){if(this.type=="path"){if(this.node.getTotalLength)return this.node.getTotalLength();return cu(this.attrs.path)}},cl.getPointAtLength=function(a){if(this.type=="path")return cv(this.attrs.path,a)},cl.getSubpath=function(b,c){if(this.type=="path")return a.getSubpath(this.attrs.path,b,c)};var cx=a.easing_formulas={linear:function(a){return a},"<":function(a){return A(a,1.7)},">":function(a){return A(a,.48)},"<>":function(a){var b=.48-a/1.04,c=w.sqrt(.1734+b*b),d=c-b,e=A(z(d),1/3)*(d<0?-1:1),f=-c-b,g=A(z(f),1/3)*(f<0?-1:1),h=e+g+.5;return(1-h)*3*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a=a-1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){if(a==!!a)return a;return A(2,-10*a)*w.sin((a-.075)*2*B/.3)+1},bounce:function(a){var b=7.5625,c=2.75,d;a<1/c?d=b*a*a:a<2/c?(a-=1.5/c,d=b*a*a+.75):a<2.5/c?(a-=2.25/c,d=b*a*a+.9375):(a-=2.625/c,d=b*a*a+.984375);return d}};cx.easeIn=cx["ease-in"]=cx["<"],cx.easeOut=cx["ease-out"]=cx[">"],cx.easeInOut=cx["ease-in-out"]=cx["<>"],cx["back-in"]=cx.backIn,cx["back-out"]=cx.backOut;var cy=[],cz=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,16)},cA=function(){var b=+(new Date),c=0;for(;c<cy.length;c++){var d=cy[c];if(d.el.removed||d.paused)continue;var e=b-d.start,f=d.ms,h=d.easing,i=d.from,j=d.diff,k=d.to,l=d.t,m=d.el,o={},p,r={},s;d.initstatus?(e=(d.initstatus*d.anim.top-d.prev)/(d.percent-d.prev)*f,d.status=d.initstatus,delete d.initstatus,d.stop&&cy.splice(c--,1)):d.status=(d.prev+(d.percent-d.prev)*(e/f))/d.anim.top;if(e<0)continue;if(e<f){var t=h(e/f);for(var u in i)if(i[g](u)){switch(U[u]){case C:p=+i[u]+t*f*j[u];break;case"colour":p="rgb("+[cB(O(i[u].r+t*f*j[u].r)),cB(O(i[u].g+t*f*j[u].g)),cB(O(i[u].b+t*f*j[u].b))].join(",")+")";break;case"path":p=[];for(var v=0,w=i[u].length;v<w;v++){p[v]=[i[u][v][0]];for(var x=1,y=i[u][v].length;x<y;x++)p[v][x]=+i[u][v][x]+t*f*j[u][v][x];p[v]=p[v].join(q)}p=p.join(q);break;case"transform":if(j[u].real){p=[];for(v=0,w=i[u].length;v<w;v++){p[v]=[i[u][v][0]];for(x=1,y=i[u][v].length;x<y;x++)p[v][x]=i[u][v][x]+t*f*j[u][v][x]}}else{var z=function(a){return+i[u][a]+t*f*j[u][a]};p=[["m",z(0),z(1),z(2),z(3),z(4),z(5)]]}break;case"csv":if(u=="clip-rect"){p=[],v=4;while(v--)p[v]=+i[u][v]+t*f*j[u][v]}break;default:var A=[][n](i[u]);p=[],v=m.paper.customAttributes[u].length;while(v--)p[v]=+A[v]+t*f*j[u][v]}o[u]=p}m.attr(o),function(a,b,c){setTimeout(function(){eve("raphael.anim.frame."+a,b,c)})}(m.id,m,d.anim)}else{(function(b,c,d){setTimeout(function(){eve("raphael.anim.frame."+c.id,c,d),eve("raphael.anim.finish."+c.id,c,d),a.is(b,"function")&&b.call(c)})})(d.callback,m,d.anim),m.attr(k),cy.splice(c--,1);if(d.repeat>1&&!d.next){for(s in k)k[g](s)&&(r[s]=d.totalOrigin[s]);d.el.attr(r),cE(d.anim,d.el,d.anim.percents[0],null,d.totalOrigin,d.repeat-1)}d.next&&!d.stop&&cE(d.anim,d.el,d.next,null,d.totalOrigin,d.repeat)}}a.svg&&m&&m.paper&&m.paper.safari(),cy.length&&cz(cA)},cB=function(a){return a>255?255:a<0?0:a};cl.animateWith=function(b,c,d,e,f,g){var h=this;if(h.removed){g&&g.call(h);return h}var i=d instanceof cD?d:a.animation(d,e,f,g),j,k;cE(i,h,i.percents[0],null,h.attr());for(var l=0,m=cy.length;l<m;l++)if(cy[l].anim==c&&cy[l].el==b){cy[m-1].start=cy[l].start;break}return h},cl.onAnimation=function(a){a?eve.on("raphael.anim.frame."+this.id,a):eve.unbind("raphael.anim.frame."+this.id);return this},cD.prototype.delay=function(a){var b=new cD(this.anim,this.ms);b.times=this.times,b.del=+a||0;return b},cD.prototype.repeat=function(a){var b=new cD(this.anim,this.ms);b.del=this.del,b.times=w.floor(x(a,0))||1;return b},a.animation=function(b,c,d,e){if(b instanceof cD)return b;if(a.is(d,"function")||!d)e=e||d||null,d=null;b=Object(b),c=+c||0;var f={},h,i;for(i in b)b[g](i)&&Q(i)!=i&&Q(i)+"%"!=i&&(h=!0,f[i]=b[i]);if(!h)return new cD(b,c);d&&(f.easing=d),e&&(f.callback=e);return new cD({100:f},c)},cl.animate=function(b,c,d,e){var f=this;if(f.removed){e&&e.call(f);return f}var g=b instanceof cD?b:a.animation(b,c,d,e);cE(g,f,g.percents[0],null,f.attr());return f},cl.setTime=function(a,b){a&&b!=null&&this.status(a,y(b,a.ms)/a.ms);return this},cl.status=function(a,b){var c=[],d=0,e,f;if(b!=null){cE(a,this,-1,y(b,1));return this}e=cy.length;for(;d<e;d++){f=cy[d];if(f.el.id==this.id&&(!a||f.anim==a)){if(a)return f.status;c.push({anim:f.anim,status:f.status})}}if(a)return 0;return c},cl.pause=function(a){for(var b=0;b<cy.length;b++)cy[b].el.id==this.id&&(!a||cy[b].anim==a)&&eve("raphael.anim.pause."+this.id,this,cy[b].anim)!==!1&&(cy[b].paused=!0);return this},cl.resume=function(a){for(var b=0;b<cy.length;b++)if(cy[b].el.id==this.id&&(!a||cy[b].anim==a)){var c=cy[b];eve("raphael.anim.resume."+this.id,this,c.anim)!==!1&&(delete c.paused,this.status(c.anim,c.status))}return this},cl.stop=function(a){for(var b=0;b<cy.length;b++)cy[b].el.id==this.id&&(!a||cy[b].anim==a)&&eve("raphael.anim.stop."+this.id,this,cy[b].anim)!==!1&&cy.splice(b--,1);return this},eve.on("raphael.remove",cF),eve.on("raphael.clear",cF),cl.toString=function(){return"Raphaël’s object"};var cG=function(a){this.items=[],this.length=0,this.type="set";if(a)for(var b=0,c=a.length;b<c;b++)a[b]&&(a[b].constructor==cl.constructor||a[b].constructor==cG)&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},cH=cG.prototype;cH.push=function(){var a,b;for(var c=0,d=arguments.length;c<d;c++)a=arguments[c],a&&(a.constructor==cl.constructor||a.constructor==cG)&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},cH.pop=function(){this.length&&delete this[this.length--];return this.items.pop()},cH.forEach=function(a,b){for(var c=0,d=this.items.length;c<d;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var cI in cl)cl[g](cI)&&(cH[cI]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][m](c,b)})}}(cI));cH.attr=function(b,c){if(b&&a.is(b,E)&&a.is(b[0],"object"))for(var d=0,e=b.length;d<e;d++)this.items[d].attr(b[d]);else for(var f=0,g=this.items.length;f<g;f++)this.items[f].attr(b,c);return this},cH.clear=function(){while(this.length)this.pop()},cH.splice=function(a,b,c){a=a<0?x(this.length+a,0):a,b=x(0,y(this.length-a,b));var d=[],e=[],f=[],g;for(g=2;g<arguments.length;g++)f.push(arguments[g]);for(g=0;g<b;g++)e.push(this[a+g]);for(;g<this.length-a;g++)d.push(this[a+g]);var h=f.length;for(g=0;g<h+d.length;g++)this.items[a+g]=this[a+g]=g<h?f[g]:d[g-h];g=this.items.length=this.length-=b-h;while(this[g])delete this[g++];return new cG(e)},cH.exclude=function(a){for(var b=0,c=this.length;b<c;b++)if(this[b]==a){this.splice(b,1);return!0}},cH.animate=function(b,c,d,e){(a.is(d,"function")||!d)&&(e=d||null);var f=this.items.length,g=f,h,i=this,j;if(!f)return this;e&&(j=function(){!--f&&e.call(i)}),d=a.is(d,D)?d:j;var k=a.animation(b,c,d,j);h=this.items[--g].animate(k);while(g--)this.items[g]&&!this.items[g].removed&&this.items[g].animateWith(h,k,k);return this},cH.insertAfter=function(a){var b=this.items.length;while(b--)this.items[b].insertAfter(a);return this},cH.getBBox=function(){var a=[],b=[],c=[],d=[];for(var e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}a=y[m](0,a),b=y[m](0,b),c=x[m](0,c),d=x[m](0,d);return{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},cH.clone=function(a){a=new cG;for(var b=0,c=this.items.length;b<c;b++)a.push(this.items[b].clone());return a},cH.toString=function(){return"Raphaël‘s set"},a.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[g](d)&&(b.face[d]=a.face[d]);this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b];if(!a.svg){b.face["units-per-em"]=R(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[g](e)){var f=a.glyphs[e];b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"};if(f.k)for(var h in f.k)f[g](h)&&(b.glyphs[e].k[h]=f.k[h])}}return a},k.getFont=function(b,c,d,e){e=e||"normal",d=d||"normal",c=+c||{normal:400,bold:700,lighter:300,bolder:800}[c]||400;if(!!a.fonts){var f=a.fonts[b];if(!f){var h=new RegExp("(^|\\s)"+b.replace(/[^\w\d\s+!~.:_-]/g,p)+"(\\s|$)","i");for(var i in a.fonts)if(a.fonts[g](i)&&h.test(i)){f=a.fonts[i];break}}var j;if(f)for(var k=0,l=f.length;k<l;k++){j=f[k];if(j.face["font-weight"]==c&&(j.face["font-style"]==d||!j.face["font-style"])&&j.face["font-stretch"]==e)break}return j}},k.print=function(b,d,e,f,g,h,i){h=h||"middle",i=x(y(i||0,1),-1);var j=r(e)[s](p),k=0,l=0,m=p,n;a.is(f,e)&&(f=this.getFont(f));if(f){n=(g||16)/f.face["units-per-em"];var o=f.face.bbox[s](c),q=+o[0],t=o[3]-o[1],u=0,v=+o[1]+(h=="baseline"?t+ +f.face.descent:t/2);for(var w=0,z=j.length;w<z;w++){if(j[w]=="\n")k=0,B=0,l=0,u+=t;else{var A=l&&f.glyphs[j[w-1]]||{},B=f.glyphs[j[w]];k+=l?(A.w||f.w)+(A.k&&A.k[j[w]]||0)+f.w*i:0,l=1}B&&B.d&&(m+=a.transformPath(B.d,["t",k*n,u*n,"s",n,n,q,v,"t",(b-q)/n,(d-v)/n]))}}return this.path(m).attr({fill:"#000",stroke:"none"})},k.add=function(b){if(a.is(b,"array")){var c=this.set(),e=0,f=b.length,h;for(;e<f;e++)h=b[e]||{},d[g](h.type)&&c.push(this[h.type]().attr(h))}return c},a.format=function(b,c){var d=a.is(c,E)?[0][n](c):arguments;b&&a.is(b,D)&&d.length-1&&(b=b.replace(e,function(a,b){return d[++b]==null?p:d[b]}));return b||p},a.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),typeof e=="function"&&f&&(e=e()))}),e=(e==null||e==d?a:e)+"";return e};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),a.ninja=function(){i.was?h.win.Raphael=i.is:delete Raphael;return a},a.st=cH,function(b,c,d){function e(){/in/.test(b.readyState)?setTimeout(e,9):a.eve("raphael.DOMload")}b.readyState==null&&b.addEventListener&&(b.addEventListener(c,d=function(){b.removeEventListener(c,d,!1),b.readyState="complete"},!1),b.readyState="loading"),e()}(document,"DOMContentLoaded"),i.was?h.win.Raphael=a:Raphael=a,eve.on("raphael.DOMload",function(){b=!0})}(),window.Raphael.svg&&function(a){var b="hasOwnProperty",c=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=a.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};a.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){typeof d=="string"&&(d=q(d));for(var f in e)e[b](f)&&(f.substring(0,6)=="xlink:"?d.setAttributeNS(n,f.substring(6),c(e[f])):d.setAttribute(f,c(e[f])))}else d=a._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(b,e){var j="linear",k=b.id+e,m=.5,n=.5,o=b.node,p=b.paper,r=o.style,s=a._g.doc.getElementById(k);if(!s){e=c(e).replace(a._radial_gradient,function(a,b,c){j="radial";if(b&&c){m=d(b),n=d(c);var e=(n>.5)*2-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&n!=.5&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/);if(j=="linear"){var t=e.shift();t=-d(t);if(isNaN(t))return null;var u=[0,0,f.cos(a.rad(t)),f.sin(a.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=a._parseDots(e);if(!w)return null;k=k.replace(/[\(\)\s,\xb0#]/g,"_"),b.gradient&&k!=b.gradient.id&&(p.defs.removeChild(b.gradient),delete b.gradient);if(!b.gradient){s=q(j+"Gradient",{id:k}),b.gradient=s,q(s,j=="radial"?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:b.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;x<y;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}q(o,{fill:"url(#"+k+")",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1;return 1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if(d.type=="path"){var g=c(e).toLowerCase().split("-"),h=d.paper,i=f?"end":"start",j=d.node,k=d.attrs,m=k["stroke-width"],n=g.length,r="classic",s,t,u,v,w,x=3,y=3,z=5;while(n--)switch(g[n]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":r=g[n];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}r=="open"?(x+=2,y+=2,z+=2,u=1,v=f?4:1,w={fill:"none",stroke:k.stroke}):(v=u=x/2,w={fill:k.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={};if(r!="none"){var A="raphael-marker-"+r,B="raphael-marker-"+i+r+x+y;a._g.doc.getElementById(A)?p[A]++:(h.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[r],id:A})),p[A]=1);var C=a._g.doc.getElementById(B),D;C?(p[B]++,D=C.getElementsByTagName("use")[0]):(C=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:v,refY:y/2}),D=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),C.appendChild(D),h.defs.appendChild(C),p[B]=1),q(D,w);var F=u*(r!="diamond"&&r!="oval");f?(s=d._.arrows.startdx*m||0,t=a.getTotalLength(k.path)-F*m):(s=F*m,t=a.getTotalLength(k.path)-(d._.arrows.enddx*m||0)),w={},w["marker-"+i]="url(#"+B+")";if(t||s)w.d=Raphael.getSubpath(k.path,s,t);q(j,w),d._.arrows[i+"Path"]=A,d._.arrows[i+"Marker"]=B,d._.arrows[i+"dx"]=F,d._.arrows[i+"Type"]=r,d._.arrows[i+"String"]=e}else f?(s=d._.arrows.startdx*m||0,t=a.getTotalLength(k.path)-s):(s=0,t=a.getTotalLength(k.path)-(d._.arrows.enddx*m||0)),d._.arrows[i+"Path"]&&q(j,{d:Raphael.getSubpath(k.path,s,t)}),delete d._.arrows[i+"Path"],delete d._.arrows[i+"Marker"],delete d._.arrows[i+"dx"],delete d._.arrows[i+"Type"],delete d._.arrows[i+"String"];for(w in p)if(p[b](w)&&!p[w]){var G=a._g.doc.getElementById(w);G&&G.parentNode.removeChild(G)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,b,d){b=u[c(b).toLowerCase()];if(b){var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=b.length;while(h--)g[h]=b[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[b](o)){if(!a._availableAttrs[b](o))continue;var p=f[o];k[o]=p;switch(o){case"blur":d.blur(p);break;case"href":case"title":case"target":var u=i.parentNode;if(u.tagName.toLowerCase()!="a"){var w=q("a");u.insertBefore(w,i),w.appendChild(i),u=w}o=="target"?u.setAttributeNS(n,"show",p=="blank"?"new":p):u.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var x=c(p).split(j);if(x.length==4){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var z=q("clipPath"),A=q("rect");z.id=a.createUUID(),q(A,{x:x[0],y:x[1],width:x[2],height:x[3]}),z.appendChild(A),d.paper.defs.appendChild(z),q(i,{"clip-path":"url(#"+z.id+")"}),d.clip=A}if(!p){var B=i.getAttribute("clip-path");if(B){var C=a._g.doc.getElementById(B.replace(/(^url\(#|\)$)/g,l));C&&C.parentNode.removeChild(C),q(i,{"clip-path":l}),delete d.clip}}break;case"path":d.type=="path"&&(q(i,{d:p?k.path=a._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":i.setAttribute(o,p),d._.dirty=1;if(k.fx)o="x",p=k.x;else break;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if(o=="rx"&&d.type=="rect")break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":i.setAttribute(o,p),d._.dirty=1;if(k.fy)o="y",p=k.y;else break;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if(o=="ry"&&d.type=="rect")break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":d.type=="rect"?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":d.type=="image"&&i.setAttributeNS(n,"href",p);break;case"stroke-width":if(d._.sx!=1||d._.sy!=1)p/=g(h(d._.sx),h(d._.sy))||1;d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var D=c(p).match(a._ISURL);if(D){z=q("pattern");var F=q("image");z.id=a.createUUID(),q(z,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(F,{x:0,y:0,"xlink:href":D[1]}),z.appendChild(F),function(b){a._preload(D[1],function(){var a=this.offsetWidth,c=this.offsetHeight;q(b,{width:a,height:c}),q(F,{width:a,height:c}),d.paper.safari()})}(z),d.paper.defs.appendChild(z),q(i,{fill:"url(#"+z.id+")"}),d.pattern=z,d.pattern&&s(d);break}var G=a.getRGB(p);if(!G.error)delete f.gradient,delete k.gradient,!a.is(k.opacity,"undefined")&&a.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!a.is(k["fill-opacity"],"undefined")&&a.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});else if((d.type=="circle"||d.type=="ellipse"||c(p).charAt()!="r")&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var H=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(H){var I=H.getElementsByTagName("stop");q(I[I.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}G[b]("opacity")&&q(i,{"fill-opacity":G.opacity>1?G.opacity/100:G.opacity});case"stroke":G=a.getRGB(p),i.setAttribute(o,G.hex),o=="stroke"&&G[b]("opacity")&&q(i,{"stroke-opacity":G.opacity>1?G.opacity/100:G.opacity}),o=="stroke"&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":(d.type=="circle"||d.type=="ellipse"||c(p).charAt()!="r")&&r(d,p);break;case"opacity":k.gradient&&!k[b]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){H=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),H&&(I=H.getElementsByTagName("stop"),q(I[I.length-1],{"stop-opacity":p}));break};default:o=="font-size"&&(p=e(p,10)+"px");var J=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[J]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(d.type=="text"&&!!(f[b]("text")||f[b]("font")||f[b]("font-size")||f[b]("x")||f[b]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(a._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[b]("text")){g.text=f.text;while(h.firstChild)h.removeChild(h.firstChild);var j=c(f.text).split("\n"),k=[],m;for(var n=0,o=j.length;n<o;n++)m=q("tspan"),n&&q(m,{dy:i*x,x:g.x}),m.appendChild(a._g.doc.createTextNode(j[n])),h.appendChild(m),k[n]=m}else{k=h.getElementsByTagName("tspan");for(n=0,o=k.length;n<o;n++)n?q(k[n],{dy:i*x,x:g.x}):q(k[0],{dy:0})}q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&a.is(r,"finite")&&q(k[0],{dy:r})}},z=function(b,c){var d=0,e=0;this[0]=this.node=b,b.raphael=!0,this.id=a._oid++,b.raphaelid=this.id,this.matrix=a.matrix(),this.realPath=null,this.paper=c,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null},A=a.el;z.prototype=A,A.constructor=z,a._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);d.type="path",w(d,{fill:"none",stroke:"#000",path:a});return d},A.rotate=function(a,b,e){if(this.removed)return this;a=c(a).split(j),a.length-1&&(b=d(a[1]),e=d(a[2])),a=d(a[0]),e==null&&(b=e);if(b==null||e==null){var f=this.getBBox(1);b=f.x+f.width/2,e=f.y+f.height/2}this.transform(this._.transform.concat([["r",a,b,e]]));return this},A.scale=function(a,b,e,f){if(this.removed)return this;a=c(a).split(j),a.length-1&&(b=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),b==null&&(b=a),f==null&&(e=f);if(e==null||f==null)var g=this.getBBox(1);e=e==null?g.x+g.width/2:e,f=f==null?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,b,e,f]]));return this},A.translate=function(a,b){if(this.removed)return this;a=c(a).split(j),a.length-1&&(b=d(a[1])),a=d(a[0])||0,b=+b||0,this.transform(this._.transform.concat([["t",a,b]]));return this},A.transform=function(c){var d=this._;if(c==null)return d.transform;a._extractTransform(this,c),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix});if(d.sx!=1||d.sy!=1){var e=this.attrs[b]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},A.hide=function(){!this.removed&&this.paper.safari(this.node.style.display="none");return this},A.show=function(){!this.removed&&this.paper.safari(this.node.style.display="");return this},A.remove=function(){if(!this.removed&&!!this.node.parentNode){var b=this.paper;b.__set__&&b.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&b.defs.removeChild(this.gradient),a._tear(this,b),this.node.parentNode.tagName.toLowerCase()=="a"?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var c in this)this[c]=typeof this[c]=="function"?a._removedFactory(c):null;this.removed=!0}},A._getBBox=function(){if(this.node.style.display=="none"){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}a&&this.hide();return b},A.attr=function(c,d){if(this.removed)return this;if(c==null){var e={};for(var f in this.attrs)this.attrs[b](f)&&(e[f]=this.attrs[f]);e.gradient&&e.fill=="none"&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform;return e}if(d==null&&a.is(c,"string")){if(c=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;if(c=="transform")return this._.transform;var g=c.split(j),h={};for(var i=0,l=g.length;i<l;i++)c=g[i],c in this.attrs?h[c]=this.attrs[c]:a.is(this.paper.customAttributes[c],"function")?h[c]=this.paper.customAttributes[c].def:h[c]=a._availableAttrs[c];return l-1?h:h[g[0]]}if(d==null&&a.is(c,"array")){h={};for(i=0,l=c.length;i<l;i++)h[c[i]]=this.attr(c[i]);return h}if(d!=null){var m={};m[c]=d}else c!=null&&a.is(c,"object")&&(m=c);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[b](n)&&m[b](n)&&a.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[b](p)&&(m[p]=o[p])}w(this,m);return this},A.toFront=function(){if(this.removed)return this;this.node.parentNode.tagName.toLowerCase()=="a"?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var b=this.paper;b.top!=this&&a._tofront(this,b);return this},A.toBack=function(){if(this.removed)return this;var b=this.node.parentNode;b.tagName.toLowerCase()=="a"?b.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):b.firstChild!=this.node&&b.insertBefore(this.node,this.node.parentNode.firstChild),a._toback(this,this.paper);var c=this.paper;return this},A.insertAfter=function(b){if(this.removed)return this;var c=b.node||b[b.length-1].node;c.nextSibling?c.parentNode.insertBefore(this.node,c.nextSibling):c.parentNode.appendChild(this.node),a._insertafter(this,b,this.paper);return this},A.insertBefore=function(b){if(this.removed)return this;var c=b.node||b[0].node;c.parentNode.insertBefore(this.node,c),a._insertbefore(this,b,this.paper);return this},A.blur=function(b){var c=this;if(+b!==0){var d=q("filter"),e=q("feGaussianBlur");c.attrs.blur=b,d.id=a.createUUID(),q(e,{stdDeviation:+b||1.5}),d.appendChild(e),c.paper.defs.appendChild(d),c._blur=d,q(c.node,{filter:"url(#"+d.id+")"})}else c._blur&&(c._blur.parentNode.removeChild(c._blur),delete c._blur,delete c.attrs.blur),c.node.removeAttribute("filter")},a._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs);return f},a._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs);return h},a._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs);return g},a._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image";return h},a._engine.text=function(b,c,d,e){var f=q("text");b.canvas&&b.canvas.appendChild(f);var g=new z(f,b);g.attrs={x:c,y:d,"text-anchor":"middle",text:e,font:a._availableAttrs.font,stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs);return g},a._engine.setSize=function(a,b){this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox);return this},a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b&&b.container,d=b.x,e=b.y,f=b.width,g=b.height;if(!c)throw new Error("SVG container not found.");var h=q("svg"),i="overflow:hidden;",j;d=d||0,e=e||0,f=f||512,g=g||342,q(h,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg"}),c==1?(h.style.cssText=i+"position:absolute;left:"+d+"px;top:"+e+"px",a._g.doc.body.appendChild(h),j=1):(h.style.cssText=i+"position:relative",c.firstChild?c.insertBefore(h,c.firstChild):c.appendChild(h)),c=new a._Paper,c.width=f,c.height=g,c.canvas=h,c.clear(),c._left=c._top=0,j&&(c.renderfix=function(){}),c.renderfix();return c},a._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f=g(c/this.width,d/this.height),h=this.top,i=e?"meet":"xMinYMin",j,l;a==null?(this._vbSize&&(f=1),delete this._vbSize,j="0 0 "+this.width+m+this.height):(this._vbSize=f,j=a+m+b+m+c+m+d),q(this.canvas,{viewBox:j,preserveAspectRatio:i});while(f&&h)l="stroke-width"in h.attrs?h.attrs["stroke-width"]:1,h.attr({"stroke-width":l}),h._.dirty=1,h._.dirtyT=1,h=h.prev;this._viewBox=[a,b,c,d,!!e];return this},a.prototype.renderfix=function(){var a=this.canvas,b=a.style,c;try{c=a.getScreenCTM()||a.createSVGMatrix()}catch(d){c=a.createSVGMatrix()}var e=-c.e%1,f=-c.f%1;if(e||f)e&&(this._left=(this._left+e)%1,b.left=this._left+"px"),f&&(this._top=(this._top+f)%1,b.top=this._top+"px")},a.prototype.clear=function(){a.eve("raphael.clear",this);var b=this.canvas;while(b.firstChild)b.removeChild(b.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(a._g.doc.createTextNode("Created with Raphaël "+a.version)),b.appendChild(this.desc),b.appendChild(this.defs=q("defs"))},a.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null};var B=a.st;for(var C in A)A[b](C)&&!B[b](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}(window.Raphael),window.Raphael.vml&&function(a){var b="hasOwnProperty",c=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=a.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(b){var d=/[ahqstv]/ig,e=a._pathToAbsolute;c(b).match(d)&&(e=a._path2curve),d=/[clmz]/g;if(e==a._pathToAbsolute&&!c(b).match(d)){var g=c(b).replace(q,function(a,b,c){var d=[],e=b.toLowerCase()=="m",g=p[b];c.replace(s,function(a){e&&d.length==2&&(g+=d+p[b=="m"?"l":"L"],d=[]),d.push(f(a*u))});return g+d});return g}var h=e(b),i,j;g=[];for(var k=0,l=h.length;k<l;k++){i=h[k],j=h[k][0].toLowerCase(),j=="z"&&(j="x");for(var m=1,r=i.length;m<r;m++)j+=f(i[m]*u)+(m!=r-1?",":o);g.push(j)}return g.join(n)},y=function(b,c,d){var e=a.matrix();e.rotate(-b,.5,.5);return{dx:e.x(c,d),dy:e.y(c,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q,r=u/b,s=u/c;m.visibility="hidden";if(!!b&&!!c){l.coordsize=i(r)+n+i(s),m.rotation=f*(b*c<0?-1:1);if(f){var t=y(f,d,e);d=t.dx,e=t.dy}b<0&&(p+="x"),c<0&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-r+n+e*-s;if(k||g.fillsize){var v=l.getElementsByTagName(j);v=v&&v[0],l.removeChild(v),k&&(t=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),v.position=t.dx*o+n+t.dy*o),g.fillsize&&(v.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(v)}m.visibility="visible"}};a.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,b,d){var e=c(b).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";while(g--)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q,r=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),s=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),t=e;for(var y in i)i[b](y)&&(m[y]=i[y]);r&&(m.path=a._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur);if(i.path&&e.type=="path"||r)l.path=x(~c(m.path).toLowerCase().indexOf("r")?a._pathToAbsolute(m.path):m.path),e.type=="image"&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0));"transform"in i&&e.transform(i.transform);if(s){var B=+m.cx,D=+m.cy,E=+m.rx||+m.r||0,G=+m.ry||+m.r||0;l.path=a.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((B-E)*u),f((D-G)*u),f((B+E)*u),f((D+G)*u),f(B*u))}if("clip-rect"in i){var H=c(i["clip-rect"]).split(k);if(H.length==4){H[2]=+H[2]+ +H[0],H[3]=+H[3]+ +H[1];var I=l.clipRect||a._g.doc.createElement("div"),J=I.style;J.clip=a.format("rect({1}px {2}px {3}px {0}px)",H),l.clipRect||(J.position="absolute",J.top=0,J.left=0,J.width=e.paper.width+"px",J.height=e.paper.height+"px",l.parentNode.insertBefore(I,l),I.appendChild(l),l.clipRect=I)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var K=e.textpath.style;i.font&&(K.font=i.font),i["font-family"]&&(K.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(K.fontSize=i["font-size"]),i["font-weight"]&&(K.fontWeight=i["font-weight"]),i["font-style"]&&(K.fontStyle=i["font-style"])}"arrow-start"in i&&A(t,i["arrow-start"]),"arrow-end"in i&&A(t,i["arrow-end"],1);if(i.opacity!=null||i["stroke-width"]!=null||i.fill!=null||i.src!=null||i.stroke!=null||i["stroke-width"]!=null||i["stroke-opacity"]!=null||i["fill-opacity"]!=null||i["stroke-dasharray"]!=null||i["stroke-miterlimit"]!=null||i["stroke-linejoin"]!=null||i["stroke-linecap"]!=null){var L=l.getElementsByTagName(j),M=!1;L=L&&L[0],!L&&(M=L=F(j)),e.type=="image"&&i.src&&(L.src=i.src),i.fill&&(L.on=!0);if(L.on==null||i.fill=="none"||i.fill===null)L.on=!1;if(L.on&&i.fill){var N=c(i.fill).match(a._ISURL);if(N){L.parentNode==l&&l.removeChild(L),L.rotate=!0,L.src=N[1],L.type="tile";var O=e.getBBox(1);L.position=O.x+n+O.y,e._.fillpos=[O.x,O.y],a._preload(N[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else L.color=a.getRGB(i.fill).hex,L.src=o,L.type="solid",a.getRGB(i.fill).error&&(t.type in{circle:1,ellipse:1}||c(i.fill).charAt()!="r")&&C(t,i.fill,L)&&(m.fill="none",m.gradient=i.fill,L.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var P=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+a.getRGB(i.fill).o+1||2)-1);P=h(g(P,0),1),L.opacity=P,L.src&&(L.color="none")}l.appendChild(L);var Q=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],T=!1;!Q&&(T=Q=F("stroke"));if(i.stroke&&i.stroke!="none"||i["stroke-width"]||i["stroke-opacity"]!=null||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])Q.on=!0;(i.stroke=="none"||i.stroke===null||Q.on==null||i.stroke==0||i["stroke-width"]==0)&&(Q.on=!1);var U=a.getRGB(i.stroke);Q.on&&i.stroke&&(Q.color=U.hex),P=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+U.o+1||2)-1);var V=(d(i["stroke-width"])||1)*.75;P=h(g(P,0),1),i["stroke-width"]==null&&(V=m["stroke-width"]),i["stroke-width"]&&(Q.weight=V),V&&V<1&&(P*=V)&&(Q.weight=1),Q.opacity=P,i["stroke-linejoin"]&&(Q.joinstyle=i["stroke-linejoin"]||"miter"),Q.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(Q.endcap=i["stroke-linecap"]=="butt"?"flat":i["stroke-linecap"]=="square"?"square":"round");if(i["stroke-dasharray"]){var W={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};Q.dashstyle=W[b](i["stroke-dasharray"])?W[i["stroke-dasharray"]]:o}T&&l.appendChild(Q)}if(t.type=="text"){t.paper.canvas.style.display=o;var X=t.paper.span,Y=100,Z=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=X.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),Z=d(m["font-size"]||Z&&Z[0])||10,p.fontSize=Z*Y+"px",t.textpath.string&&(X.innerHTML=c(t.textpath.string).replace(/</g,"&#60;").replace(/&/g,"&#38;").replace(/\n/g,"<br>"));var $=X.getBoundingClientRect();t.W=m.w=($.right-$.left)/Y,t.H=m.h=($.bottom-$.top)/Y,t.X=m.x,t.Y=m.y+t.H/2,("x"in i||"y"in i)&&(t.path.v=a.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));var _=["x","y","text","font","font-family","font-weight","font-style","font-size"];for(var ba=0,bb=_.length;ba<bb;ba++)if(_[ba]in i){t._.dirty=1;break}switch(m["text-anchor"]){case"start":t.textpath.style["v-text-align"]="left",t.bbx=t.W/2;break;case"end":t.textpath.style["v-text-align"]="right",t.bbx=-t.W/2;break;default:t.textpath.style["v-text-align"]="center",t.bbx=0}t.textpath.style["v-text-kern"]=!0}},C=function(b,f,g){b.attrs=b.attrs||{};var h=b.attrs,i=Math.pow,j,k,l="linear",m=".5 .5";b.attrs.gradient=f,f=c(f).replace(a._radial_gradient,function(a,b,c){l="radial",b&&c&&(b=d(b),c=d(c),i(b-.5,2)+i(c-.5,2)>.25&&(c=e.sqrt(.25-i(b-.5,2))*((c>.5)*2-1)+.5),m=b+n+c);return o}),f=f.split(/\s*\-\s*/);if(l=="linear"){var p=f.shift();p=-d(p);if(isNaN(p))return null}var q=a._parseDots(f);if(!q)return null;b=b.shape||b.node;if(q.length){b.removeChild(g),g.on=!0,g.method="none",g.color=q[0].color,g.color2=q[q.length-1].color;var r=[];for(var s=0,t=q.length;s<t;s++)q[s].offset&&r.push(q[s].offset+n+q[s].color);g.colors=r.length?r.join():"0% "+g.color,l=="radial"?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=m,g.angle=0):(g.type="gradient",g.angle=(270-p)%360),b.appendChild(g)}return 1},D=function(b,c){this[0]=this.node=b,b.raphael=!0,this.id=a._oid++,b.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=c,this.matrix=a.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null},E=a.el;D.prototype=E,E.constructor=D,E.transform=function(b){if(b==null)return this._.transform;var d=this.paper._viewBoxShift,e=d?"s"+[d.scale,d.scale]+"-1-1t"+[d.dx,d.dy]:o,f;d&&(f=b=c(b).replace(/\.{3}|\u2026/g,this._.transform||o)),a._extractTransform(this,e+b);var g=this.matrix.clone(),h=this.skew,i=this.node,j,k=~c(this.attrs.fill).indexOf("-"),l=!c(this.attrs.fill).indexOf("url(");g.translate(-0.5,-0.5);if(l||k||this.type=="image"){h.matrix="1 0 0 1",h.offset="0 0",j=g.split();if(k&&j.noRotation||!j.isSimple){i.style.filter=g.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;i.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else i.style.filter=o,z(this,j.scalex,j.scaley,j.dx,j.dy,j.rotate)}else i.style.filter=o,h.matrix=c(g),h.offset=g.offset();f&&(this._.transform=f);return this},E.rotate=function(a,b,e){if(this.removed)return this;if(a!=null){a=c(a).split(k),a.length-1&&(b=d(a[1]),e=d(a[2])),a=d(a[0]),e==null&&(b=e);if(b==null||e==null){var f=this.getBBox(1);b=f.x+f.width/2,e=f.y+f.height/2}this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,b,e]]));return this}},E.translate=function(a,b){if(this.removed)return this;a=c(a).split(k),a.length-1&&(b=d(a[1])),a=d(a[0])||0,b=+b||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=b),this.transform(this._.transform.concat([["t",a,b]]));return this},E.scale=function(a,b,e,f){if(this.removed)return this;a=c(a).split(k),a.length-1&&(b=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),b==null&&(b=a),f==null&&(e=f);if(e==null||f==null)var g=this.getBBox(1);e=e==null?g.x+g.width/2:e,f=f==null?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,b,e,f]])),this._.dirtyT=1;return this},E.hide=function(){!this.removed&&(this.node.style.display="none");return this},E.show=function(){!this.removed&&(this.node.style.display=o);return this},E._getBBox=function(){if(this.removed)return{};return{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&!!this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),a.eve.unbind("raphael.*.*."+this.id),a._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null;this.removed=!0}},E.attr=function(c,d){if(this.removed)return this;if(c==null){var e={};for(var f in this.attrs)this.attrs[b](f)&&(e[f]=this.attrs[f]);e.gradient&&e.fill=="none"&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform;return e}if(d==null&&a.is(c,"string")){if(c==j&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;var g=c.split(k),h={};for(var i=0,m=g.length;i<m;i++)c=g[i],c in this.attrs?h[c]=this.attrs[c]:a.is(this.paper.customAttributes[c],"function")?h[c]=this.paper.customAttributes[c].def:h[c]=a._availableAttrs[c];return m-1?h:h[g[0]]}if(this.attrs&&d==null&&a.is(c,"array")){h={};for(i=0,m=c.length;i<m;i++)h[c[i]]=this.attr(c[i]);return h}var n;d!=null&&(n={},n[c]=d),d==null&&a.is(c,"object")&&(n=c);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[b](o)&&n[b](o)&&a.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[b](q)&&(n[q]=p[q])}n.text&&this.type=="text"&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&a._tofront(this,this.paper);return this},E.toBack=function(){if(this.removed)return this;this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),a._toback(this,this.paper));return this},E.insertAfter=function(b){if(this.removed)return this;b.constructor==a.st.constructor&&(b=b[b.length-1]),b.node.nextSibling?b.node.parentNode.insertBefore(this.node,b.node.nextSibling):b.node.parentNode.appendChild(this.node),a._insertafter(this,b,this.paper);return this},E.insertBefore=function(b){if(this.removed)return this;b.constructor==a.st.constructor&&(b=b[0]),b.node.parentNode.insertBefore(this.node,b.node),a._insertbefore(this,b,this.paper);return this},E.blur=function(b){var c=this.node.runtimeStyle,d=c.filter;d=d.replace(r,o),+b!==0?(this.attrs.blur=b,c.filter=d+n+m+".Blur(pixelradius="+(+b||1.5)+")",c.margin=a.format("-{0}px 0 0 -{0}px",f(+b||1.5))):(c.filter=d,c.margin=0,delete this.attrs.blur)},a._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");f.on=!0,c.appendChild(f),d.skew=f,d.transform(o);return d},a._engine.rect=function(b,c,d,e,f,g){var h=a._rectPath(c,d,e,f,g),i=b.path(h),j=i.attrs;i.X=j.x=c,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect";return i},a._engine.ellipse=function(a,b,c,d,e){var f=a.path(),g=f.attrs;f.X=b-d,f.Y=c-e,f.W=d*2,f.H=e*2,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e});return f},a._engine.circle=function(a,b,c,d){var e=a.path(),f=e.attrs;e.X=b-d,e.Y=c-d,e.W=e.H=d*2,e.type="circle",B(e,{cx:b,cy:c,r:d});return e},a._engine.image=function(b,c,d,e,f,g){var h=a._rectPath(d,e,f,g),i=b.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];k.src=c,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=c,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0);return i},a._engine.text=function(b,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=a.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=c(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,b),l={fill:"#000",stroke:"none",font:a._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=c(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),b.canvas.appendChild(h);var m=F("skew");m.on=!0,h.appendChild(m),k.skew=m,k.transform(o);return k},a._engine.setSize=function(b,c){var d=this.canvas.style;this.width=b,this.height=c,b==+b&&(b+="px"),c==+c&&(c+="px"),d.width=b,d.height=c,d.clip="rect(0 "+b+" "+c+" 0)",this._viewBox&&a._engine.setViewBox.apply(this,this._viewBox);return this},a._engine.setViewBox=function(b,c,d,e,f){a.eve("raphael.setViewBox",this,this._viewBox,[b,c,d,e,f]);var h=this.width,i=this.height,j=1/g(d/h,e/i),k,l;f&&(k=i/e,l=h/d,d*k<h&&(b-=(h-d*k)/2/k),e*l<i&&(c-=(i-e*l)/2/l)),this._viewBox=[b,c,d,e,!!f],this._viewBoxShift={dx:-b,dy:-c,scale:j},this.forEach(function(a){a.transform("...")});return this};var F;a._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("<rvml:"+a+' class="rvml">')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},a._engine.initWin(a._g.win),a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b.container,d=b.height,e,f=b.width,g=b.x,h=b.y;if(!c)throw new Error("VML container not found.");var i=new a._Paper,j=i.canvas=a._g.doc.createElement("div"),k=j.style;g=g||0,h=h||0,f=f||512,d=d||342,i.width=f,i.height=d,f==+f&&(f+="px"),d==+d&&(d+="px"),i.coordsize=u*1e3+n+u*1e3,i.coordorigin="0 0",i.span=a._g.doc.createElement("span"),i.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",j.appendChild(i.span),k.cssText=a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",f,d),c==1?(a._g.doc.body.appendChild(j),k.left=g+"px",k.top=h+"px",k.position="absolute"):c.firstChild?c.insertBefore(j,c.firstChild):c.appendChild(j),i.renderfix=function(){};return i},a.prototype.clear=function(){a.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=a._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},a.prototype.remove=function(){a.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null;return!0};var G=a.st;for(var H in E)E[b](H)&&!G[b](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}(window.Raphael)
46\ No newline at end of file
47
48=== added directory 'debian/extras/jslibs/yui'
49=== added directory 'debian/extras/jslibs/yui/align-plugin'
50=== added file 'debian/extras/jslibs/yui/align-plugin/align-plugin-debug.js'
51--- debian/extras/jslibs/yui/align-plugin/align-plugin-debug.js 1970-01-01 00:00:00 +0000
52+++ debian/extras/jslibs/yui/align-plugin/align-plugin-debug.js 2013-02-02 01:30:27 +0000
53@@ -0,0 +1,199 @@
54+/*
55+YUI 3.5.1 (build 22)
56+Copyright 2012 Yahoo! Inc. All rights reserved.
57+Licensed under the BSD License.
58+http://yuilibrary.com/license/
59+*/
60+YUI.add('align-plugin', function(Y) {
61+
62+ /**
63+ * Provides advanced positioning support for Node via a Plugin
64+ * for centering and alignment.
65+ * @module align-plugin
66+ */
67+
68+ var OFFSET_WIDTH = 'offsetWidth',
69+ OFFSET_HEIGHT = 'offsetHeight',
70+ undefined = undefined;
71+
72+ /**
73+ * Node plugin which can be used to align a node with another node,
74+ * region, or the viewport.
75+ *
76+ * @class Plugin.Align
77+ * @param {Object} User configuration object
78+ */
79+ function Align(config) {
80+ if (config.host) {
81+ this._host = config.host;
82+ }
83+ }
84+
85+ Align.prototype = {
86+ /**
87+ * Aligns node with a point on another node or region.
88+ * Possible alignment points are:
89+ * <dl>
90+ * <dt>tl</dt>
91+ * <dd>top left</dd>
92+ * <dt>tr</dt>
93+ * <dd>top right</dd>
94+ * <dt>bl</dt>
95+ * <dd>bottom left</dd>
96+ * <dt>br</dt>
97+ * <dd>bottom right</dd>
98+ * <dt>tc</dt>
99+ * <dd>top center</dd>
100+ * <dt>bc</dt>
101+ * <dd>bottom center</dd>
102+ * <dt>rc</dt>
103+ * <dd>right center</dd>
104+ * <dt>lc</dt>
105+ * <dd>left center</dd>
106+ * <dt>cc</dt>
107+ * <dd>center center</dd>
108+ * </dl>
109+ * @method to
110+ * @param region {String || Node || HTMLElement || Object} The node or
111+ * region to align with. Defaults to the viewport region.
112+ * @param regionPoint {String} The point of the region to align with.
113+ * @param point {String} The point of the node aligned to the region.
114+ * @param resize {Boolean} Whether or not the node should re-align when
115+ * the window is resized. Defaults to false.
116+ */
117+ to: function(region, regionPoint, point, syncOnResize) {
118+ // cache original args for syncing
119+ this._syncArgs = Y.Array(arguments);
120+
121+ if (region.top === undefined) {
122+ region = Y.one(region).get('region');
123+ }
124+
125+ if (region) {
126+ var xy = [region.left, region.top],
127+ offxy = [region.width, region.height],
128+ points = Align.points,
129+ node = this._host,
130+ NULL = null,
131+ size = node.getAttrs([OFFSET_HEIGHT, OFFSET_WIDTH]),
132+ nodeoff = [0 - size[OFFSET_WIDTH], 0 - size[OFFSET_HEIGHT]], // reverse offsets
133+ regionFn0 = regionPoint ? points[regionPoint.charAt(0)]: NULL,
134+ regionFn1 = (regionPoint && regionPoint !== 'cc') ? points[regionPoint.charAt(1)] : NULL,
135+ nodeFn0 = point ? points[point.charAt(0)] : NULL,
136+ nodeFn1 = (point && point !== 'cc') ? points[point.charAt(1)] : NULL;
137+
138+ if (regionFn0) {
139+ xy = regionFn0(xy, offxy, regionPoint);
140+ }
141+ if (regionFn1) {
142+ xy = regionFn1(xy, offxy, regionPoint);
143+ }
144+
145+ if (nodeFn0) {
146+ xy = nodeFn0(xy, nodeoff, point);
147+ }
148+ if (nodeFn1) {
149+ xy = nodeFn1(xy, nodeoff, point);
150+ }
151+
152+ if (xy && node) {
153+ node.setXY(xy);
154+ }
155+
156+ this._resize(syncOnResize);
157+
158+ }
159+ return this;
160+ },
161+
162+ sync: function() {
163+ this.to.apply(this, this._syncArgs);
164+ return this;
165+ },
166+
167+ _resize: function(add) {
168+ var handle = this._handle;
169+ if (add && !handle) {
170+ this._handle = Y.on('resize', this._onresize, window, this);
171+ } else if (!add && handle) {
172+ handle.detach();
173+ }
174+
175+ },
176+
177+ _onresize: function() {
178+ var self = this;
179+ setTimeout(function() { // for performance
180+ self.sync();
181+ });
182+ },
183+
184+ /**
185+ * Aligns the center of a node to the center of another node or region.
186+ * @method center
187+ * @param region {Node || HTMLElement || Object} optional The node or
188+ * region to align with. Defaults to the viewport region.
189+ * the window is resized. If centering to viewport, this defaults
190+ * to true, otherwise default is false.
191+ */
192+ center: function(region, resize) {
193+ this.to(region, 'cc', 'cc', resize);
194+ return this;
195+ },
196+
197+ /**
198+ * Removes the resize handler, if any. This is called automatically
199+ * when unplugged from the host node.
200+ * @method destroy
201+ */
202+ destroy: function() {
203+ var handle = this._handle;
204+ if (handle) {
205+ handle.detach();
206+ }
207+ }
208+ };
209+
210+ Align.points = {
211+ 't': function(xy, off) {
212+ return xy;
213+ },
214+
215+ 'r': function(xy, off) {
216+ return [xy[0] + off[0], xy[1]];
217+ },
218+
219+ 'b': function(xy, off) {
220+ return [xy[0], xy[1] + off[1]];
221+ },
222+
223+ 'l': function(xy, off) {
224+ return xy;
225+ },
226+
227+ 'c': function(xy, off, point) {
228+ var axis = (point[0] === 't' || point[0] === 'b') ? 0 : 1,
229+ ret, val;
230+
231+ if (point === 'cc') {
232+ ret = [xy[0] + off[0] / 2, xy[1] + off[1] / 2];
233+ } else {
234+ val = xy[axis] + off[axis] / 2;
235+ ret = (axis) ? [xy[0], val] : [val, xy[1]];
236+ }
237+
238+ return ret;
239+ }
240+ };
241+
242+ Align.NAME = 'Align';
243+ Align.NS = 'align';
244+
245+ Align.prototype.constructor = Align;
246+
247+ Y.namespace('Plugin');
248+ Y.Plugin.Align = Align;
249+
250+
251+
252+}, '3.5.1' ,{requires:['node-pluginhost', 'node-screen']});
253
254=== added file 'debian/extras/jslibs/yui/align-plugin/align-plugin-min.js'
255--- debian/extras/jslibs/yui/align-plugin/align-plugin-min.js 1970-01-01 00:00:00 +0000
256+++ debian/extras/jslibs/yui/align-plugin/align-plugin-min.js 2013-02-02 01:30:27 +0000
257@@ -0,0 +1,7 @@
258+/*
259+YUI 3.5.1 (build 22)
260+Copyright 2012 Yahoo! Inc. All rights reserved.
261+Licensed under the BSD License.
262+http://yuilibrary.com/license/
263+*/
264+YUI.add("align-plugin",function(c){var e="offsetWidth",d="offsetHeight",b=b;function a(f){if(f.host){this._host=f.host;}}a.prototype={to:function(j,t,l,o){this._syncArgs=c.Array(arguments);if(j.top===b){j=c.one(j).get("region");}if(j){var s=[j.left,j.top],q=[j.width,j.height],n=a.points,f=this._host,h=null,r=f.getAttrs([d,e]),k=[0-r[e],0-r[d]],p=t?n[t.charAt(0)]:h,m=(t&&t!=="cc")?n[t.charAt(1)]:h,i=l?n[l.charAt(0)]:h,g=(l&&l!=="cc")?n[l.charAt(1)]:h;if(p){s=p(s,q,t);}if(m){s=m(s,q,t);}if(i){s=i(s,k,l);}if(g){s=g(s,k,l);}if(s&&f){f.setXY(s);}this._resize(o);}return this;},sync:function(){this.to.apply(this,this._syncArgs);return this;},_resize:function(g){var f=this._handle;if(g&&!f){this._handle=c.on("resize",this._onresize,window,this);}else{if(!g&&f){f.detach();}}},_onresize:function(){var f=this;setTimeout(function(){f.sync();});},center:function(g,f){this.to(g,"cc","cc",f);return this;},destroy:function(){var f=this._handle;if(f){f.detach();}}};a.points={"t":function(f,g){return f;},"r":function(f,g){return[f[0]+g[0],f[1]];},"b":function(f,g){return[f[0],f[1]+g[1]];},"l":function(f,g){return f;},"c":function(i,k,f){var h=(f[0]==="t"||f[0]==="b")?0:1,g,j;if(f==="cc"){g=[i[0]+k[0]/2,i[1]+k[1]/2];}else{j=i[h]+k[h]/2;g=(h)?[i[0],j]:[j,i[1]];}return g;}};a.NAME="Align";a.NS="align";a.prototype.constructor=a;c.namespace("Plugin");c.Plugin.Align=a;},"3.5.1",{requires:["node-pluginhost","node-screen"]});
265\ No newline at end of file
266
267=== added file 'debian/extras/jslibs/yui/align-plugin/align-plugin.js'
268--- debian/extras/jslibs/yui/align-plugin/align-plugin.js 1970-01-01 00:00:00 +0000
269+++ debian/extras/jslibs/yui/align-plugin/align-plugin.js 2013-02-02 01:30:27 +0000
270@@ -0,0 +1,199 @@
271+/*
272+YUI 3.5.1 (build 22)
273+Copyright 2012 Yahoo! Inc. All rights reserved.
274+Licensed under the BSD License.
275+http://yuilibrary.com/license/
276+*/
277+YUI.add('align-plugin', function(Y) {
278+
279+ /**
280+ * Provides advanced positioning support for Node via a Plugin
281+ * for centering and alignment.
282+ * @module align-plugin
283+ */
284+
285+ var OFFSET_WIDTH = 'offsetWidth',
286+ OFFSET_HEIGHT = 'offsetHeight',
287+ undefined = undefined;
288+
289+ /**
290+ * Node plugin which can be used to align a node with another node,
291+ * region, or the viewport.
292+ *
293+ * @class Plugin.Align
294+ * @param {Object} User configuration object
295+ */
296+ function Align(config) {
297+ if (config.host) {
298+ this._host = config.host;
299+ }
300+ }
301+
302+ Align.prototype = {
303+ /**
304+ * Aligns node with a point on another node or region.
305+ * Possible alignment points are:
306+ * <dl>
307+ * <dt>tl</dt>
308+ * <dd>top left</dd>
309+ * <dt>tr</dt>
310+ * <dd>top right</dd>
311+ * <dt>bl</dt>
312+ * <dd>bottom left</dd>
313+ * <dt>br</dt>
314+ * <dd>bottom right</dd>
315+ * <dt>tc</dt>
316+ * <dd>top center</dd>
317+ * <dt>bc</dt>
318+ * <dd>bottom center</dd>
319+ * <dt>rc</dt>
320+ * <dd>right center</dd>
321+ * <dt>lc</dt>
322+ * <dd>left center</dd>
323+ * <dt>cc</dt>
324+ * <dd>center center</dd>
325+ * </dl>
326+ * @method to
327+ * @param region {String || Node || HTMLElement || Object} The node or
328+ * region to align with. Defaults to the viewport region.
329+ * @param regionPoint {String} The point of the region to align with.
330+ * @param point {String} The point of the node aligned to the region.
331+ * @param resize {Boolean} Whether or not the node should re-align when
332+ * the window is resized. Defaults to false.
333+ */
334+ to: function(region, regionPoint, point, syncOnResize) {
335+ // cache original args for syncing
336+ this._syncArgs = Y.Array(arguments);
337+
338+ if (region.top === undefined) {
339+ region = Y.one(region).get('region');
340+ }
341+
342+ if (region) {
343+ var xy = [region.left, region.top],
344+ offxy = [region.width, region.height],
345+ points = Align.points,
346+ node = this._host,
347+ NULL = null,
348+ size = node.getAttrs([OFFSET_HEIGHT, OFFSET_WIDTH]),
349+ nodeoff = [0 - size[OFFSET_WIDTH], 0 - size[OFFSET_HEIGHT]], // reverse offsets
350+ regionFn0 = regionPoint ? points[regionPoint.charAt(0)]: NULL,
351+ regionFn1 = (regionPoint && regionPoint !== 'cc') ? points[regionPoint.charAt(1)] : NULL,
352+ nodeFn0 = point ? points[point.charAt(0)] : NULL,
353+ nodeFn1 = (point && point !== 'cc') ? points[point.charAt(1)] : NULL;
354+
355+ if (regionFn0) {
356+ xy = regionFn0(xy, offxy, regionPoint);
357+ }
358+ if (regionFn1) {
359+ xy = regionFn1(xy, offxy, regionPoint);
360+ }
361+
362+ if (nodeFn0) {
363+ xy = nodeFn0(xy, nodeoff, point);
364+ }
365+ if (nodeFn1) {
366+ xy = nodeFn1(xy, nodeoff, point);
367+ }
368+
369+ if (xy && node) {
370+ node.setXY(xy);
371+ }
372+
373+ this._resize(syncOnResize);
374+
375+ }
376+ return this;
377+ },
378+
379+ sync: function() {
380+ this.to.apply(this, this._syncArgs);
381+ return this;
382+ },
383+
384+ _resize: function(add) {
385+ var handle = this._handle;
386+ if (add && !handle) {
387+ this._handle = Y.on('resize', this._onresize, window, this);
388+ } else if (!add && handle) {
389+ handle.detach();
390+ }
391+
392+ },
393+
394+ _onresize: function() {
395+ var self = this;
396+ setTimeout(function() { // for performance
397+ self.sync();
398+ });
399+ },
400+
401+ /**
402+ * Aligns the center of a node to the center of another node or region.
403+ * @method center
404+ * @param region {Node || HTMLElement || Object} optional The node or
405+ * region to align with. Defaults to the viewport region.
406+ * the window is resized. If centering to viewport, this defaults
407+ * to true, otherwise default is false.
408+ */
409+ center: function(region, resize) {
410+ this.to(region, 'cc', 'cc', resize);
411+ return this;
412+ },
413+
414+ /**
415+ * Removes the resize handler, if any. This is called automatically
416+ * when unplugged from the host node.
417+ * @method destroy
418+ */
419+ destroy: function() {
420+ var handle = this._handle;
421+ if (handle) {
422+ handle.detach();
423+ }
424+ }
425+ };
426+
427+ Align.points = {
428+ 't': function(xy, off) {
429+ return xy;
430+ },
431+
432+ 'r': function(xy, off) {
433+ return [xy[0] + off[0], xy[1]];
434+ },
435+
436+ 'b': function(xy, off) {
437+ return [xy[0], xy[1] + off[1]];
438+ },
439+
440+ 'l': function(xy, off) {
441+ return xy;
442+ },
443+
444+ 'c': function(xy, off, point) {
445+ var axis = (point[0] === 't' || point[0] === 'b') ? 0 : 1,
446+ ret, val;
447+
448+ if (point === 'cc') {
449+ ret = [xy[0] + off[0] / 2, xy[1] + off[1] / 2];
450+ } else {
451+ val = xy[axis] + off[axis] / 2;
452+ ret = (axis) ? [xy[0], val] : [val, xy[1]];
453+ }
454+
455+ return ret;
456+ }
457+ };
458+
459+ Align.NAME = 'Align';
460+ Align.NS = 'align';
461+
462+ Align.prototype.constructor = Align;
463+
464+ Y.namespace('Plugin');
465+ Y.Plugin.Align = Align;
466+
467+
468+
469+}, '3.5.1' ,{requires:['node-pluginhost', 'node-screen']});
470
471=== added directory 'debian/extras/jslibs/yui/anim-base'
472=== added file 'debian/extras/jslibs/yui/anim-base/anim-base-debug.js'
473--- debian/extras/jslibs/yui/anim-base/anim-base-debug.js 1970-01-01 00:00:00 +0000
474+++ debian/extras/jslibs/yui/anim-base/anim-base-debug.js 2013-02-02 01:30:27 +0000
475@@ -0,0 +1,682 @@
476+/*
477+YUI 3.5.1 (build 22)
478+Copyright 2012 Yahoo! Inc. All rights reserved.
479+Licensed under the BSD License.
480+http://yuilibrary.com/license/
481+*/
482+YUI.add('anim-base', function(Y) {
483+
484+/**
485+* The Animation Utility provides an API for creating advanced transitions.
486+* @module anim
487+*/
488+
489+/**
490+* Provides the base Anim class, for animating numeric properties.
491+*
492+* @module anim
493+* @submodule anim-base
494+*/
495+
496+ /**
497+ * A class for constructing animation instances.
498+ * @class Anim
499+ * @for Anim
500+ * @constructor
501+ * @extends Base
502+ */
503+
504+ var RUNNING = 'running',
505+ START_TIME = 'startTime',
506+ ELAPSED_TIME = 'elapsedTime',
507+ /**
508+ * @for Anim
509+ * @event start
510+ * @description fires when an animation begins.
511+ * @param {Event} ev The start event.
512+ * @type Event.Custom
513+ */
514+ START = 'start',
515+
516+ /**
517+ * @event tween
518+ * @description fires every frame of the animation.
519+ * @param {Event} ev The tween event.
520+ * @type Event.Custom
521+ */
522+ TWEEN = 'tween',
523+
524+ /**
525+ * @event end
526+ * @description fires after the animation completes.
527+ * @param {Event} ev The end event.
528+ * @type Event.Custom
529+ */
530+ END = 'end',
531+ NODE = 'node',
532+ PAUSED = 'paused',
533+ REVERSE = 'reverse', // TODO: cleanup
534+ ITERATION_COUNT = 'iterationCount',
535+
536+ NUM = Number;
537+
538+ var _running = {},
539+ _timer;
540+
541+ Y.Anim = function() {
542+ Y.Anim.superclass.constructor.apply(this, arguments);
543+ Y.Anim._instances[Y.stamp(this)] = this;
544+ };
545+
546+ Y.Anim.NAME = 'anim';
547+
548+ Y.Anim._instances = {};
549+
550+ /**
551+ * Regex of properties that should use the default unit.
552+ *
553+ * @property RE_DEFAULT_UNIT
554+ * @static
555+ */
556+ Y.Anim.RE_DEFAULT_UNIT = /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i;
557+
558+ /**
559+ * The default unit to use with properties that pass the RE_DEFAULT_UNIT test.
560+ *
561+ * @property DEFAULT_UNIT
562+ * @static
563+ */
564+ Y.Anim.DEFAULT_UNIT = 'px';
565+
566+ Y.Anim.DEFAULT_EASING = function (t, b, c, d) {
567+ return c * t / d + b; // linear easing
568+ };
569+
570+ /**
571+ * Time in milliseconds passed to setInterval for frame processing
572+ *
573+ * @property intervalTime
574+ * @default 20
575+ * @static
576+ */
577+ Y.Anim._intervalTime = 20;
578+
579+ /**
580+ * Bucket for custom getters and setters
581+ *
582+ * @property behaviors
583+ * @static
584+ */
585+ Y.Anim.behaviors = {
586+ left: {
587+ get: function(anim, attr) {
588+ return anim._getOffset(attr);
589+ }
590+ }
591+ };
592+
593+ Y.Anim.behaviors.top = Y.Anim.behaviors.left;
594+
595+ /**
596+ * The default setter to use when setting object properties.
597+ *
598+ * @property DEFAULT_SETTER
599+ * @static
600+ */
601+ Y.Anim.DEFAULT_SETTER = function(anim, att, from, to, elapsed, duration, fn, unit) {
602+ var node = anim._node,
603+ domNode = node._node,
604+ val = fn(elapsed, NUM(from), NUM(to) - NUM(from), duration);
605+ //make sure node instance
606+ if (domNode && (domNode.style || domNode.attributes)) {
607+ if (att in domNode.style || att in Y.DOM.CUSTOM_STYLES) {
608+ unit = unit || '';
609+ node.setStyle(att, val + unit);
610+ } else if (domNode.attributes[att]) {
611+ node.setAttribute(att, val);
612+ }
613+ } else if (node.set) {
614+ node.set(att, val);
615+ }
616+ };
617+
618+ /**
619+ * The default getter to use when getting object properties.
620+ *
621+ * @property DEFAULT_GETTER
622+ * @static
623+ */
624+ Y.Anim.DEFAULT_GETTER = function(anim, att) {
625+ var node = anim._node,
626+ domNode = node._node,
627+ val = '';
628+ //make sure node instance
629+ if (domNode && (domNode.style || domNode.attributes)) {
630+ if (att in domNode.style || att in Y.DOM.CUSTOM_STYLES) {
631+ val = node.getComputedStyle(att);
632+ } else if (domNode.attributes[att]) {
633+ val = node.getAttribute(att);
634+ }
635+ } else if (node.get) {
636+ val = node.get(att);
637+ }
638+
639+ return val;
640+ };
641+
642+ Y.Anim.ATTRS = {
643+ /**
644+ * The object to be animated.
645+ * @attribute node
646+ * @type Node
647+ */
648+ node: {
649+ setter: function(node) {
650+ if (node) {
651+ if (typeof node == 'string' || node.nodeType) {
652+ node = Y.one(node);
653+ }
654+ }
655+
656+ this._node = node;
657+ if (!node) {
658+ Y.log(node + ' is not a valid node', 'warn', 'Anim');
659+ }
660+ return node;
661+ }
662+ },
663+
664+ /**
665+ * The length of the animation. Defaults to "1" (second).
666+ * @attribute duration
667+ * @type NUM
668+ */
669+ duration: {
670+ value: 1
671+ },
672+
673+ /**
674+ * The method that will provide values to the attribute(s) during the animation.
675+ * Defaults to "Easing.easeNone".
676+ * @attribute easing
677+ * @type Function
678+ */
679+ easing: {
680+ value: Y.Anim.DEFAULT_EASING,
681+
682+ setter: function(val) {
683+ if (typeof val === 'string' && Y.Easing) {
684+ return Y.Easing[val];
685+ }
686+ }
687+ },
688+
689+ /**
690+ * The starting values for the animated properties.
691+ *
692+ * Fields may be strings, numbers, or functions.
693+ * If a function is used, the return value becomes the from value.
694+ * If no from value is specified, the DEFAULT_GETTER will be used.
695+ * Supports any unit, provided it matches the "to" (or default)
696+ * unit (e.g. `{width: '10em', color: 'rgb(0, 0 0)', borderColor: '#ccc'}`).
697+ *
698+ * If using the default ('px' for length-based units), the unit may be omitted
699+ * (e.g. `{width: 100}, borderColor: 'ccc'}`, which defaults to pixels
700+ * and hex, respectively).
701+ *
702+ * @attribute from
703+ * @type Object
704+ */
705+ from: {},
706+
707+ /**
708+ * The ending values for the animated properties.
709+ *
710+ * Fields may be strings, numbers, or functions.
711+ * Supports any unit, provided it matches the "from" (or default)
712+ * unit (e.g. `{width: '50%', color: 'red', borderColor: '#ccc'}`).
713+ *
714+ * If using the default ('px' for length-based units), the unit may be omitted
715+ * (e.g. `{width: 100, borderColor: 'ccc'}`, which defaults to pixels
716+ * and hex, respectively).
717+ *
718+ * @attribute to
719+ * @type Object
720+ */
721+ to: {},
722+
723+ /**
724+ * Date stamp for the first frame of the animation.
725+ * @attribute startTime
726+ * @type Int
727+ * @default 0
728+ * @readOnly
729+ */
730+ startTime: {
731+ value: 0,
732+ readOnly: true
733+ },
734+
735+ /**
736+ * Current time the animation has been running.
737+ * @attribute elapsedTime
738+ * @type Int
739+ * @default 0
740+ * @readOnly
741+ */
742+ elapsedTime: {
743+ value: 0,
744+ readOnly: true
745+ },
746+
747+ /**
748+ * Whether or not the animation is currently running.
749+ * @attribute running
750+ * @type Boolean
751+ * @default false
752+ * @readOnly
753+ */
754+ running: {
755+ getter: function() {
756+ return !!_running[Y.stamp(this)];
757+ },
758+ value: false,
759+ readOnly: true
760+ },
761+
762+ /**
763+ * The number of times the animation should run
764+ * @attribute iterations
765+ * @type Int
766+ * @default 1
767+ */
768+ iterations: {
769+ value: 1
770+ },
771+
772+ /**
773+ * The number of iterations that have occurred.
774+ * Resets when an animation ends (reaches iteration count or stop() called).
775+ * @attribute iterationCount
776+ * @type Int
777+ * @default 0
778+ * @readOnly
779+ */
780+ iterationCount: {
781+ value: 0,
782+ readOnly: true
783+ },
784+
785+ /**
786+ * How iterations of the animation should behave.
787+ * Possible values are "normal" and "alternate".
788+ * Normal will repeat the animation, alternate will reverse on every other pass.
789+ *
790+ * @attribute direction
791+ * @type String
792+ * @default "normal"
793+ */
794+ direction: {
795+ value: 'normal' // | alternate (fwd on odd, rev on even per spec)
796+ },
797+
798+ /**
799+ * Whether or not the animation is currently paused.
800+ * @attribute paused
801+ * @type Boolean
802+ * @default false
803+ * @readOnly
804+ */
805+ paused: {
806+ readOnly: true,
807+ value: false
808+ },
809+
810+ /**
811+ * If true, animation begins from last frame
812+ * @attribute reverse
813+ * @type Boolean
814+ * @default false
815+ */
816+ reverse: {
817+ value: false
818+ }
819+
820+
821+ };
822+
823+ /**
824+ * Runs all animation instances.
825+ * @method run
826+ * @static
827+ */
828+ Y.Anim.run = function() {
829+ var instances = Y.Anim._instances;
830+ for (var i in instances) {
831+ if (instances[i].run) {
832+ instances[i].run();
833+ }
834+ }
835+ };
836+
837+ /**
838+ * Pauses all animation instances.
839+ * @method pause
840+ * @static
841+ */
842+ Y.Anim.pause = function() {
843+ for (var i in _running) { // stop timer if nothing running
844+ if (_running[i].pause) {
845+ _running[i].pause();
846+ }
847+ }
848+
849+ Y.Anim._stopTimer();
850+ };
851+
852+ /**
853+ * Stops all animation instances.
854+ * @method stop
855+ * @static
856+ */
857+ Y.Anim.stop = function() {
858+ for (var i in _running) { // stop timer if nothing running
859+ if (_running[i].stop) {
860+ _running[i].stop();
861+ }
862+ }
863+ Y.Anim._stopTimer();
864+ };
865+
866+ Y.Anim._startTimer = function() {
867+ if (!_timer) {
868+ _timer = setInterval(Y.Anim._runFrame, Y.Anim._intervalTime);
869+ }
870+ };
871+
872+ Y.Anim._stopTimer = function() {
873+ clearInterval(_timer);
874+ _timer = 0;
875+ };
876+
877+ /**
878+ * Called per Interval to handle each animation frame.
879+ * @method _runFrame
880+ * @private
881+ * @static
882+ */
883+ Y.Anim._runFrame = function() {
884+ var done = true;
885+ for (var anim in _running) {
886+ if (_running[anim]._runFrame) {
887+ done = false;
888+ _running[anim]._runFrame();
889+ }
890+ }
891+
892+ if (done) {
893+ Y.Anim._stopTimer();
894+ }
895+ };
896+
897+ Y.Anim.RE_UNITS = /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/;
898+
899+ var proto = {
900+ /**
901+ * Starts or resumes an animation.
902+ * @method run
903+ * @chainable
904+ */
905+ run: function() {
906+ if (this.get(PAUSED)) {
907+ this._resume();
908+ } else if (!this.get(RUNNING)) {
909+ this._start();
910+ }
911+ return this;
912+ },
913+
914+ /**
915+ * Pauses the animation and
916+ * freezes it in its current state and time.
917+ * Calling run() will continue where it left off.
918+ * @method pause
919+ * @chainable
920+ */
921+ pause: function() {
922+ if (this.get(RUNNING)) {
923+ this._pause();
924+ }
925+ return this;
926+ },
927+
928+ /**
929+ * Stops the animation and resets its time.
930+ * @method stop
931+ * @param {Boolean} finish If true, the animation will move to the last frame
932+ * @chainable
933+ */
934+ stop: function(finish) {
935+ if (this.get(RUNNING) || this.get(PAUSED)) {
936+ this._end(finish);
937+ }
938+ return this;
939+ },
940+
941+ _added: false,
942+
943+ _start: function() {
944+ this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));
945+ this._actualFrames = 0;
946+ if (!this.get(PAUSED)) {
947+ this._initAnimAttr();
948+ }
949+ _running[Y.stamp(this)] = this;
950+ Y.Anim._startTimer();
951+
952+ this.fire(START);
953+ },
954+
955+ _pause: function() {
956+ this._set(START_TIME, null);
957+ this._set(PAUSED, true);
958+ delete _running[Y.stamp(this)];
959+
960+ /**
961+ * @event pause
962+ * @description fires when an animation is paused.
963+ * @param {Event} ev The pause event.
964+ * @type Event.Custom
965+ */
966+ this.fire('pause');
967+ },
968+
969+ _resume: function() {
970+ this._set(PAUSED, false);
971+ _running[Y.stamp(this)] = this;
972+ this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));
973+ Y.Anim._startTimer();
974+
975+ /**
976+ * @event resume
977+ * @description fires when an animation is resumed (run from pause).
978+ * @param {Event} ev The pause event.
979+ * @type Event.Custom
980+ */
981+ this.fire('resume');
982+ },
983+
984+ _end: function(finish) {
985+ var duration = this.get('duration') * 1000;
986+ if (finish) { // jump to last frame
987+ this._runAttrs(duration, duration, this.get(REVERSE));
988+ }
989+
990+ this._set(START_TIME, null);
991+ this._set(ELAPSED_TIME, 0);
992+ this._set(PAUSED, false);
993+
994+ delete _running[Y.stamp(this)];
995+ this.fire(END, {elapsed: this.get(ELAPSED_TIME)});
996+ },
997+
998+ _runFrame: function() {
999+ var d = this._runtimeAttr.duration,
1000+ t = new Date() - this.get(START_TIME),
1001+ reverse = this.get(REVERSE),
1002+ done = (t >= d),
1003+ attribute,
1004+ setter;
1005+
1006+ this._runAttrs(t, d, reverse);
1007+ this._actualFrames += 1;
1008+ this._set(ELAPSED_TIME, t);
1009+
1010+ this.fire(TWEEN);
1011+ if (done) {
1012+ this._lastFrame();
1013+ }
1014+ },
1015+
1016+ _runAttrs: function(t, d, reverse) {
1017+ var attr = this._runtimeAttr,
1018+ customAttr = Y.Anim.behaviors,
1019+ easing = attr.easing,
1020+ lastFrame = d,
1021+ done = false,
1022+ attribute,
1023+ setter,
1024+ i;
1025+
1026+ if (t >= d) {
1027+ done = true;
1028+ }
1029+
1030+ if (reverse) {
1031+ t = d - t;
1032+ lastFrame = 0;
1033+ }
1034+
1035+ for (i in attr) {
1036+ if (attr[i].to) {
1037+ attribute = attr[i];
1038+ setter = (i in customAttr && 'set' in customAttr[i]) ?
1039+ customAttr[i].set : Y.Anim.DEFAULT_SETTER;
1040+
1041+ if (!done) {
1042+ setter(this, i, attribute.from, attribute.to, t, d, easing, attribute.unit);
1043+ } else {
1044+ setter(this, i, attribute.from, attribute.to, lastFrame, d, easing, attribute.unit);
1045+ }
1046+ }
1047+ }
1048+
1049+
1050+ },
1051+
1052+ _lastFrame: function() {
1053+ var iter = this.get('iterations'),
1054+ iterCount = this.get(ITERATION_COUNT);
1055+
1056+ iterCount += 1;
1057+ if (iter === 'infinite' || iterCount < iter) {
1058+ if (this.get('direction') === 'alternate') {
1059+ this.set(REVERSE, !this.get(REVERSE)); // flip it
1060+ }
1061+ /**
1062+ * @event iteration
1063+ * @description fires when an animation begins an iteration.
1064+ * @param {Event} ev The iteration event.
1065+ * @type Event.Custom
1066+ */
1067+ this.fire('iteration');
1068+ } else {
1069+ iterCount = 0;
1070+ this._end();
1071+ }
1072+
1073+ this._set(START_TIME, new Date());
1074+ this._set(ITERATION_COUNT, iterCount);
1075+ },
1076+
1077+ _initAnimAttr: function() {
1078+ var from = this.get('from') || {},
1079+ to = this.get('to') || {},
1080+ attr = {
1081+ duration: this.get('duration') * 1000,
1082+ easing: this.get('easing')
1083+ },
1084+ customAttr = Y.Anim.behaviors,
1085+ node = this.get(NODE), // implicit attr init
1086+ unit, begin, end;
1087+
1088+ Y.each(to, function(val, name) {
1089+ if (typeof val === 'function') {
1090+ val = val.call(this, node);
1091+ }
1092+
1093+ begin = from[name];
1094+ if (begin === undefined) {
1095+ begin = (name in customAttr && 'get' in customAttr[name]) ?
1096+ customAttr[name].get(this, name) : Y.Anim.DEFAULT_GETTER(this, name);
1097+ } else if (typeof begin === 'function') {
1098+ begin = begin.call(this, node);
1099+ }
1100+
1101+ var mFrom = Y.Anim.RE_UNITS.exec(begin);
1102+ var mTo = Y.Anim.RE_UNITS.exec(val);
1103+
1104+ begin = mFrom ? mFrom[1] : begin;
1105+ end = mTo ? mTo[1] : val;
1106+ unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units
1107+
1108+ if (!unit && Y.Anim.RE_DEFAULT_UNIT.test(name)) {
1109+ unit = Y.Anim.DEFAULT_UNIT;
1110+ }
1111+
1112+ if (!begin || !end) {
1113+ Y.error('invalid "from" or "to" for "' + name + '"', 'Anim');
1114+ return;
1115+ }
1116+
1117+ attr[name] = {
1118+ from: begin,
1119+ to: end,
1120+ unit: unit
1121+ };
1122+
1123+ }, this);
1124+
1125+ this._runtimeAttr = attr;
1126+ },
1127+
1128+
1129+ // TODO: move to computedStyle? (browsers dont agree on default computed offsets)
1130+ _getOffset: function(attr) {
1131+ var node = this._node,
1132+ val = node.getComputedStyle(attr),
1133+ get = (attr === 'left') ? 'getX': 'getY',
1134+ set = (attr === 'left') ? 'setX': 'setY';
1135+
1136+ if (val === 'auto') {
1137+ var position = node.getStyle('position');
1138+ if (position === 'absolute' || position === 'fixed') {
1139+ val = node[get]();
1140+ node[set](val);
1141+ } else {
1142+ val = 0;
1143+ }
1144+ }
1145+
1146+ return val;
1147+ },
1148+
1149+ destructor: function() {
1150+ delete Y.Anim._instances[Y.stamp(this)];
1151+ }
1152+ };
1153+
1154+ Y.extend(Y.Anim, Y.Base, proto);
1155+
1156+
1157+}, '3.5.1' ,{requires:['base-base', 'node-style']});
1158
1159=== added file 'debian/extras/jslibs/yui/anim-base/anim-base-min.js'
1160--- debian/extras/jslibs/yui/anim-base/anim-base-min.js 1970-01-01 00:00:00 +0000
1161+++ debian/extras/jslibs/yui/anim-base/anim-base-min.js 2013-02-02 01:30:27 +0000
1162@@ -0,0 +1,7 @@
1163+/*
1164+YUI 3.5.1 (build 22)
1165+Copyright 2012 Yahoo! Inc. All rights reserved.
1166+Licensed under the BSD License.
1167+http://yuilibrary.com/license/
1168+*/
1169+YUI.add("anim-base",function(b){var c="running",n="startTime",l="elapsedTime",j="start",i="tween",m="end",d="node",k="paused",o="reverse",h="iterationCount",a=Number;var f={},e;b.Anim=function(){b.Anim.superclass.constructor.apply(this,arguments);b.Anim._instances[b.stamp(this)]=this;};b.Anim.NAME="anim";b.Anim._instances={};b.Anim.RE_DEFAULT_UNIT=/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i;b.Anim.DEFAULT_UNIT="px";b.Anim.DEFAULT_EASING=function(q,p,s,r){return s*q/r+p;};b.Anim._intervalTime=20;b.Anim.behaviors={left:{get:function(q,p){return q._getOffset(p);}}};b.Anim.behaviors.top=b.Anim.behaviors.left;b.Anim.DEFAULT_SETTER=function(t,u,w,x,z,s,v,y){var q=t._node,r=q._node,p=v(z,a(w),a(x)-a(w),s);if(r&&(r.style||r.attributes)){if(u in r.style||u in b.DOM.CUSTOM_STYLES){y=y||"";q.setStyle(u,p+y);}else{if(r.attributes[u]){q.setAttribute(u,p);}}}else{if(q.set){q.set(u,p);}}};b.Anim.DEFAULT_GETTER=function(s,p){var r=s._node,q=r._node,t="";if(q&&(q.style||q.attributes)){if(p in q.style||p in b.DOM.CUSTOM_STYLES){t=r.getComputedStyle(p);}else{if(q.attributes[p]){t=r.getAttribute(p);}}}else{if(r.get){t=r.get(p);}}return t;};b.Anim.ATTRS={node:{setter:function(p){if(p){if(typeof p=="string"||p.nodeType){p=b.one(p);}}this._node=p;if(!p){}return p;}},duration:{value:1},easing:{value:b.Anim.DEFAULT_EASING,setter:function(p){if(typeof p==="string"&&b.Easing){return b.Easing[p];}}},from:{},to:{},startTime:{value:0,readOnly:true},elapsedTime:{value:0,readOnly:true},running:{getter:function(){return !!f[b.stamp(this)];},value:false,readOnly:true},iterations:{value:1},iterationCount:{value:0,readOnly:true},direction:{value:"normal"},paused:{readOnly:true,value:false},reverse:{value:false}};b.Anim.run=function(){var q=b.Anim._instances;for(var p in q){if(q[p].run){q[p].run();}}};b.Anim.pause=function(){for(var p in f){if(f[p].pause){f[p].pause();}}b.Anim._stopTimer();};b.Anim.stop=function(){for(var p in f){if(f[p].stop){f[p].stop();}}b.Anim._stopTimer();};b.Anim._startTimer=function(){if(!e){e=setInterval(b.Anim._runFrame,b.Anim._intervalTime);}};b.Anim._stopTimer=function(){clearInterval(e);e=0;};b.Anim._runFrame=function(){var p=true;for(var q in f){if(f[q]._runFrame){p=false;f[q]._runFrame();}}if(p){b.Anim._stopTimer();}};b.Anim.RE_UNITS=/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/;var g={run:function(){if(this.get(k)){this._resume();}else{if(!this.get(c)){this._start();}}return this;},pause:function(){if(this.get(c)){this._pause();}return this;},stop:function(p){if(this.get(c)||this.get(k)){this._end(p);}return this;},_added:false,_start:function(){this._set(n,new Date()-this.get(l));this._actualFrames=0;if(!this.get(k)){this._initAnimAttr();}f[b.stamp(this)]=this;b.Anim._startTimer();this.fire(j);},_pause:function(){this._set(n,null);this._set(k,true);delete f[b.stamp(this)];this.fire("pause");},_resume:function(){this._set(k,false);f[b.stamp(this)]=this;this._set(n,new Date()-this.get(l));b.Anim._startTimer();this.fire("resume");},_end:function(p){var q=this.get("duration")*1000;if(p){this._runAttrs(q,q,this.get(o));}this._set(n,null);this._set(l,0);this._set(k,false);delete f[b.stamp(this)];this.fire(m,{elapsed:this.get(l)});},_runFrame:function(){var u=this._runtimeAttr.duration,r=new Date()-this.get(n),q=this.get(o),p=(r>=u),s,v;this._runAttrs(r,u,q);this._actualFrames+=1;this._set(l,r);this.fire(i);if(p){this._lastFrame();}},_runAttrs:function(A,z,w){var x=this._runtimeAttr,r=b.Anim.behaviors,y=x.easing,p=z,u=false,q,s,v;if(A>=z){u=true;}if(w){A=z-A;p=0;}for(v in x){if(x[v].to){q=x[v];s=(v in r&&"set" in r[v])?r[v].set:b.Anim.DEFAULT_SETTER;if(!u){s(this,v,q.from,q.to,A,z,y,q.unit);}else{s(this,v,q.from,q.to,p,z,y,q.unit);}}}},_lastFrame:function(){var p=this.get("iterations"),q=this.get(h);q+=1;if(p==="infinite"||q<p){if(this.get("direction")==="alternate"){this.set(o,!this.get(o));}this.fire("iteration");}else{q=0;this._end();}this._set(n,new Date());this._set(h,q);},_initAnimAttr:function(){var w=this.get("from")||{},v=this.get("to")||{},p={duration:this.get("duration")*1000,easing:this.get("easing")},r=b.Anim.behaviors,u=this.get(d),t,s,q;b.each(v,function(A,y){if(typeof A==="function"){A=A.call(this,u);}s=w[y];if(s===undefined){s=(y in r&&"get" in r[y])?r[y].get(this,y):b.Anim.DEFAULT_GETTER(this,y);}else{if(typeof s==="function"){s=s.call(this,u);}}var x=b.Anim.RE_UNITS.exec(s);var z=b.Anim.RE_UNITS.exec(A);s=x?x[1]:s;q=z?z[1]:A;t=z?z[2]:x?x[2]:"";if(!t&&b.Anim.RE_DEFAULT_UNIT.test(y)){t=b.Anim.DEFAULT_UNIT;}if(!s||!q){b.error('invalid "from" or "to" for "'+y+'"',"Anim");return;}p[y]={from:s,to:q,unit:t};},this);this._runtimeAttr=p;},_getOffset:function(q){var s=this._node,t=s.getComputedStyle(q),r=(q==="left")?"getX":"getY",u=(q==="left")?"setX":"setY";if(t==="auto"){var p=s.getStyle("position");if(p==="absolute"||p==="fixed"){t=s[r]();s[u](t);}else{t=0;}}return t;},destructor:function(){delete b.Anim._instances[b.stamp(this)];}};b.extend(b.Anim,b.Base,g);},"3.5.1",{requires:["base-base","node-style"]});
1170\ No newline at end of file
1171
1172=== added file 'debian/extras/jslibs/yui/anim-base/anim-base.js'
1173--- debian/extras/jslibs/yui/anim-base/anim-base.js 1970-01-01 00:00:00 +0000
1174+++ debian/extras/jslibs/yui/anim-base/anim-base.js 2013-02-02 01:30:27 +0000
1175@@ -0,0 +1,681 @@
1176+/*
1177+YUI 3.5.1 (build 22)
1178+Copyright 2012 Yahoo! Inc. All rights reserved.
1179+Licensed under the BSD License.
1180+http://yuilibrary.com/license/
1181+*/
1182+YUI.add('anim-base', function(Y) {
1183+
1184+/**
1185+* The Animation Utility provides an API for creating advanced transitions.
1186+* @module anim
1187+*/
1188+
1189+/**
1190+* Provides the base Anim class, for animating numeric properties.
1191+*
1192+* @module anim
1193+* @submodule anim-base
1194+*/
1195+
1196+ /**
1197+ * A class for constructing animation instances.
1198+ * @class Anim
1199+ * @for Anim
1200+ * @constructor
1201+ * @extends Base
1202+ */
1203+
1204+ var RUNNING = 'running',
1205+ START_TIME = 'startTime',
1206+ ELAPSED_TIME = 'elapsedTime',
1207+ /**
1208+ * @for Anim
1209+ * @event start
1210+ * @description fires when an animation begins.
1211+ * @param {Event} ev The start event.
1212+ * @type Event.Custom
1213+ */
1214+ START = 'start',
1215+
1216+ /**
1217+ * @event tween
1218+ * @description fires every frame of the animation.
1219+ * @param {Event} ev The tween event.
1220+ * @type Event.Custom
1221+ */
1222+ TWEEN = 'tween',
1223+
1224+ /**
1225+ * @event end
1226+ * @description fires after the animation completes.
1227+ * @param {Event} ev The end event.
1228+ * @type Event.Custom
1229+ */
1230+ END = 'end',
1231+ NODE = 'node',
1232+ PAUSED = 'paused',
1233+ REVERSE = 'reverse', // TODO: cleanup
1234+ ITERATION_COUNT = 'iterationCount',
1235+
1236+ NUM = Number;
1237+
1238+ var _running = {},
1239+ _timer;
1240+
1241+ Y.Anim = function() {
1242+ Y.Anim.superclass.constructor.apply(this, arguments);
1243+ Y.Anim._instances[Y.stamp(this)] = this;
1244+ };
1245+
1246+ Y.Anim.NAME = 'anim';
1247+
1248+ Y.Anim._instances = {};
1249+
1250+ /**
1251+ * Regex of properties that should use the default unit.
1252+ *
1253+ * @property RE_DEFAULT_UNIT
1254+ * @static
1255+ */
1256+ Y.Anim.RE_DEFAULT_UNIT = /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i;
1257+
1258+ /**
1259+ * The default unit to use with properties that pass the RE_DEFAULT_UNIT test.
1260+ *
1261+ * @property DEFAULT_UNIT
1262+ * @static
1263+ */
1264+ Y.Anim.DEFAULT_UNIT = 'px';
1265+
1266+ Y.Anim.DEFAULT_EASING = function (t, b, c, d) {
1267+ return c * t / d + b; // linear easing
1268+ };
1269+
1270+ /**
1271+ * Time in milliseconds passed to setInterval for frame processing
1272+ *
1273+ * @property intervalTime
1274+ * @default 20
1275+ * @static
1276+ */
1277+ Y.Anim._intervalTime = 20;
1278+
1279+ /**
1280+ * Bucket for custom getters and setters
1281+ *
1282+ * @property behaviors
1283+ * @static
1284+ */
1285+ Y.Anim.behaviors = {
1286+ left: {
1287+ get: function(anim, attr) {
1288+ return anim._getOffset(attr);
1289+ }
1290+ }
1291+ };
1292+
1293+ Y.Anim.behaviors.top = Y.Anim.behaviors.left;
1294+
1295+ /**
1296+ * The default setter to use when setting object properties.
1297+ *
1298+ * @property DEFAULT_SETTER
1299+ * @static
1300+ */
1301+ Y.Anim.DEFAULT_SETTER = function(anim, att, from, to, elapsed, duration, fn, unit) {
1302+ var node = anim._node,
1303+ domNode = node._node,
1304+ val = fn(elapsed, NUM(from), NUM(to) - NUM(from), duration);
1305+ //make sure node instance
1306+ if (domNode && (domNode.style || domNode.attributes)) {
1307+ if (att in domNode.style || att in Y.DOM.CUSTOM_STYLES) {
1308+ unit = unit || '';
1309+ node.setStyle(att, val + unit);
1310+ } else if (domNode.attributes[att]) {
1311+ node.setAttribute(att, val);
1312+ }
1313+ } else if (node.set) {
1314+ node.set(att, val);
1315+ }
1316+ };
1317+
1318+ /**
1319+ * The default getter to use when getting object properties.
1320+ *
1321+ * @property DEFAULT_GETTER
1322+ * @static
1323+ */
1324+ Y.Anim.DEFAULT_GETTER = function(anim, att) {
1325+ var node = anim._node,
1326+ domNode = node._node,
1327+ val = '';
1328+ //make sure node instance
1329+ if (domNode && (domNode.style || domNode.attributes)) {
1330+ if (att in domNode.style || att in Y.DOM.CUSTOM_STYLES) {
1331+ val = node.getComputedStyle(att);
1332+ } else if (domNode.attributes[att]) {
1333+ val = node.getAttribute(att);
1334+ }
1335+ } else if (node.get) {
1336+ val = node.get(att);
1337+ }
1338+
1339+ return val;
1340+ };
1341+
1342+ Y.Anim.ATTRS = {
1343+ /**
1344+ * The object to be animated.
1345+ * @attribute node
1346+ * @type Node
1347+ */
1348+ node: {
1349+ setter: function(node) {
1350+ if (node) {
1351+ if (typeof node == 'string' || node.nodeType) {
1352+ node = Y.one(node);
1353+ }
1354+ }
1355+
1356+ this._node = node;
1357+ if (!node) {
1358+ }
1359+ return node;
1360+ }
1361+ },
1362+
1363+ /**
1364+ * The length of the animation. Defaults to "1" (second).
1365+ * @attribute duration
1366+ * @type NUM
1367+ */
1368+ duration: {
1369+ value: 1
1370+ },
1371+
1372+ /**
1373+ * The method that will provide values to the attribute(s) during the animation.
1374+ * Defaults to "Easing.easeNone".
1375+ * @attribute easing
1376+ * @type Function
1377+ */
1378+ easing: {
1379+ value: Y.Anim.DEFAULT_EASING,
1380+
1381+ setter: function(val) {
1382+ if (typeof val === 'string' && Y.Easing) {
1383+ return Y.Easing[val];
1384+ }
1385+ }
1386+ },
1387+
1388+ /**
1389+ * The starting values for the animated properties.
1390+ *
1391+ * Fields may be strings, numbers, or functions.
1392+ * If a function is used, the return value becomes the from value.
1393+ * If no from value is specified, the DEFAULT_GETTER will be used.
1394+ * Supports any unit, provided it matches the "to" (or default)
1395+ * unit (e.g. `{width: '10em', color: 'rgb(0, 0 0)', borderColor: '#ccc'}`).
1396+ *
1397+ * If using the default ('px' for length-based units), the unit may be omitted
1398+ * (e.g. `{width: 100}, borderColor: 'ccc'}`, which defaults to pixels
1399+ * and hex, respectively).
1400+ *
1401+ * @attribute from
1402+ * @type Object
1403+ */
1404+ from: {},
1405+
1406+ /**
1407+ * The ending values for the animated properties.
1408+ *
1409+ * Fields may be strings, numbers, or functions.
1410+ * Supports any unit, provided it matches the "from" (or default)
1411+ * unit (e.g. `{width: '50%', color: 'red', borderColor: '#ccc'}`).
1412+ *
1413+ * If using the default ('px' for length-based units), the unit may be omitted
1414+ * (e.g. `{width: 100, borderColor: 'ccc'}`, which defaults to pixels
1415+ * and hex, respectively).
1416+ *
1417+ * @attribute to
1418+ * @type Object
1419+ */
1420+ to: {},
1421+
1422+ /**
1423+ * Date stamp for the first frame of the animation.
1424+ * @attribute startTime
1425+ * @type Int
1426+ * @default 0
1427+ * @readOnly
1428+ */
1429+ startTime: {
1430+ value: 0,
1431+ readOnly: true
1432+ },
1433+
1434+ /**
1435+ * Current time the animation has been running.
1436+ * @attribute elapsedTime
1437+ * @type Int
1438+ * @default 0
1439+ * @readOnly
1440+ */
1441+ elapsedTime: {
1442+ value: 0,
1443+ readOnly: true
1444+ },
1445+
1446+ /**
1447+ * Whether or not the animation is currently running.
1448+ * @attribute running
1449+ * @type Boolean
1450+ * @default false
1451+ * @readOnly
1452+ */
1453+ running: {
1454+ getter: function() {
1455+ return !!_running[Y.stamp(this)];
1456+ },
1457+ value: false,
1458+ readOnly: true
1459+ },
1460+
1461+ /**
1462+ * The number of times the animation should run
1463+ * @attribute iterations
1464+ * @type Int
1465+ * @default 1
1466+ */
1467+ iterations: {
1468+ value: 1
1469+ },
1470+
1471+ /**
1472+ * The number of iterations that have occurred.
1473+ * Resets when an animation ends (reaches iteration count or stop() called).
1474+ * @attribute iterationCount
1475+ * @type Int
1476+ * @default 0
1477+ * @readOnly
1478+ */
1479+ iterationCount: {
1480+ value: 0,
1481+ readOnly: true
1482+ },
1483+
1484+ /**
1485+ * How iterations of the animation should behave.
1486+ * Possible values are "normal" and "alternate".
1487+ * Normal will repeat the animation, alternate will reverse on every other pass.
1488+ *
1489+ * @attribute direction
1490+ * @type String
1491+ * @default "normal"
1492+ */
1493+ direction: {
1494+ value: 'normal' // | alternate (fwd on odd, rev on even per spec)
1495+ },
1496+
1497+ /**
1498+ * Whether or not the animation is currently paused.
1499+ * @attribute paused
1500+ * @type Boolean
1501+ * @default false
1502+ * @readOnly
1503+ */
1504+ paused: {
1505+ readOnly: true,
1506+ value: false
1507+ },
1508+
1509+ /**
1510+ * If true, animation begins from last frame
1511+ * @attribute reverse
1512+ * @type Boolean
1513+ * @default false
1514+ */
1515+ reverse: {
1516+ value: false
1517+ }
1518+
1519+
1520+ };
1521+
1522+ /**
1523+ * Runs all animation instances.
1524+ * @method run
1525+ * @static
1526+ */
1527+ Y.Anim.run = function() {
1528+ var instances = Y.Anim._instances;
1529+ for (var i in instances) {
1530+ if (instances[i].run) {
1531+ instances[i].run();
1532+ }
1533+ }
1534+ };
1535+
1536+ /**
1537+ * Pauses all animation instances.
1538+ * @method pause
1539+ * @static
1540+ */
1541+ Y.Anim.pause = function() {
1542+ for (var i in _running) { // stop timer if nothing running
1543+ if (_running[i].pause) {
1544+ _running[i].pause();
1545+ }
1546+ }
1547+
1548+ Y.Anim._stopTimer();
1549+ };
1550+
1551+ /**
1552+ * Stops all animation instances.
1553+ * @method stop
1554+ * @static
1555+ */
1556+ Y.Anim.stop = function() {
1557+ for (var i in _running) { // stop timer if nothing running
1558+ if (_running[i].stop) {
1559+ _running[i].stop();
1560+ }
1561+ }
1562+ Y.Anim._stopTimer();
1563+ };
1564+
1565+ Y.Anim._startTimer = function() {
1566+ if (!_timer) {
1567+ _timer = setInterval(Y.Anim._runFrame, Y.Anim._intervalTime);
1568+ }
1569+ };
1570+
1571+ Y.Anim._stopTimer = function() {
1572+ clearInterval(_timer);
1573+ _timer = 0;
1574+ };
1575+
1576+ /**
1577+ * Called per Interval to handle each animation frame.
1578+ * @method _runFrame
1579+ * @private
1580+ * @static
1581+ */
1582+ Y.Anim._runFrame = function() {
1583+ var done = true;
1584+ for (var anim in _running) {
1585+ if (_running[anim]._runFrame) {
1586+ done = false;
1587+ _running[anim]._runFrame();
1588+ }
1589+ }
1590+
1591+ if (done) {
1592+ Y.Anim._stopTimer();
1593+ }
1594+ };
1595+
1596+ Y.Anim.RE_UNITS = /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/;
1597+
1598+ var proto = {
1599+ /**
1600+ * Starts or resumes an animation.
1601+ * @method run
1602+ * @chainable
1603+ */
1604+ run: function() {
1605+ if (this.get(PAUSED)) {
1606+ this._resume();
1607+ } else if (!this.get(RUNNING)) {
1608+ this._start();
1609+ }
1610+ return this;
1611+ },
1612+
1613+ /**
1614+ * Pauses the animation and
1615+ * freezes it in its current state and time.
1616+ * Calling run() will continue where it left off.
1617+ * @method pause
1618+ * @chainable
1619+ */
1620+ pause: function() {
1621+ if (this.get(RUNNING)) {
1622+ this._pause();
1623+ }
1624+ return this;
1625+ },
1626+
1627+ /**
1628+ * Stops the animation and resets its time.
1629+ * @method stop
1630+ * @param {Boolean} finish If true, the animation will move to the last frame
1631+ * @chainable
1632+ */
1633+ stop: function(finish) {
1634+ if (this.get(RUNNING) || this.get(PAUSED)) {
1635+ this._end(finish);
1636+ }
1637+ return this;
1638+ },
1639+
1640+ _added: false,
1641+
1642+ _start: function() {
1643+ this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));
1644+ this._actualFrames = 0;
1645+ if (!this.get(PAUSED)) {
1646+ this._initAnimAttr();
1647+ }
1648+ _running[Y.stamp(this)] = this;
1649+ Y.Anim._startTimer();
1650+
1651+ this.fire(START);
1652+ },
1653+
1654+ _pause: function() {
1655+ this._set(START_TIME, null);
1656+ this._set(PAUSED, true);
1657+ delete _running[Y.stamp(this)];
1658+
1659+ /**
1660+ * @event pause
1661+ * @description fires when an animation is paused.
1662+ * @param {Event} ev The pause event.
1663+ * @type Event.Custom
1664+ */
1665+ this.fire('pause');
1666+ },
1667+
1668+ _resume: function() {
1669+ this._set(PAUSED, false);
1670+ _running[Y.stamp(this)] = this;
1671+ this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));
1672+ Y.Anim._startTimer();
1673+
1674+ /**
1675+ * @event resume
1676+ * @description fires when an animation is resumed (run from pause).
1677+ * @param {Event} ev The pause event.
1678+ * @type Event.Custom
1679+ */
1680+ this.fire('resume');
1681+ },
1682+
1683+ _end: function(finish) {
1684+ var duration = this.get('duration') * 1000;
1685+ if (finish) { // jump to last frame
1686+ this._runAttrs(duration, duration, this.get(REVERSE));
1687+ }
1688+
1689+ this._set(START_TIME, null);
1690+ this._set(ELAPSED_TIME, 0);
1691+ this._set(PAUSED, false);
1692+
1693+ delete _running[Y.stamp(this)];
1694+ this.fire(END, {elapsed: this.get(ELAPSED_TIME)});
1695+ },
1696+
1697+ _runFrame: function() {
1698+ var d = this._runtimeAttr.duration,
1699+ t = new Date() - this.get(START_TIME),
1700+ reverse = this.get(REVERSE),
1701+ done = (t >= d),
1702+ attribute,
1703+ setter;
1704+
1705+ this._runAttrs(t, d, reverse);
1706+ this._actualFrames += 1;
1707+ this._set(ELAPSED_TIME, t);
1708+
1709+ this.fire(TWEEN);
1710+ if (done) {
1711+ this._lastFrame();
1712+ }
1713+ },
1714+
1715+ _runAttrs: function(t, d, reverse) {
1716+ var attr = this._runtimeAttr,
1717+ customAttr = Y.Anim.behaviors,
1718+ easing = attr.easing,
1719+ lastFrame = d,
1720+ done = false,
1721+ attribute,
1722+ setter,
1723+ i;
1724+
1725+ if (t >= d) {
1726+ done = true;
1727+ }
1728+
1729+ if (reverse) {
1730+ t = d - t;
1731+ lastFrame = 0;
1732+ }
1733+
1734+ for (i in attr) {
1735+ if (attr[i].to) {
1736+ attribute = attr[i];
1737+ setter = (i in customAttr && 'set' in customAttr[i]) ?
1738+ customAttr[i].set : Y.Anim.DEFAULT_SETTER;
1739+
1740+ if (!done) {
1741+ setter(this, i, attribute.from, attribute.to, t, d, easing, attribute.unit);
1742+ } else {
1743+ setter(this, i, attribute.from, attribute.to, lastFrame, d, easing, attribute.unit);
1744+ }
1745+ }
1746+ }
1747+
1748+
1749+ },
1750+
1751+ _lastFrame: function() {
1752+ var iter = this.get('iterations'),
1753+ iterCount = this.get(ITERATION_COUNT);
1754+
1755+ iterCount += 1;
1756+ if (iter === 'infinite' || iterCount < iter) {
1757+ if (this.get('direction') === 'alternate') {
1758+ this.set(REVERSE, !this.get(REVERSE)); // flip it
1759+ }
1760+ /**
1761+ * @event iteration
1762+ * @description fires when an animation begins an iteration.
1763+ * @param {Event} ev The iteration event.
1764+ * @type Event.Custom
1765+ */
1766+ this.fire('iteration');
1767+ } else {
1768+ iterCount = 0;
1769+ this._end();
1770+ }
1771+
1772+ this._set(START_TIME, new Date());
1773+ this._set(ITERATION_COUNT, iterCount);
1774+ },
1775+
1776+ _initAnimAttr: function() {
1777+ var from = this.get('from') || {},
1778+ to = this.get('to') || {},
1779+ attr = {
1780+ duration: this.get('duration') * 1000,
1781+ easing: this.get('easing')
1782+ },
1783+ customAttr = Y.Anim.behaviors,
1784+ node = this.get(NODE), // implicit attr init
1785+ unit, begin, end;
1786+
1787+ Y.each(to, function(val, name) {
1788+ if (typeof val === 'function') {
1789+ val = val.call(this, node);
1790+ }
1791+
1792+ begin = from[name];
1793+ if (begin === undefined) {
1794+ begin = (name in customAttr && 'get' in customAttr[name]) ?
1795+ customAttr[name].get(this, name) : Y.Anim.DEFAULT_GETTER(this, name);
1796+ } else if (typeof begin === 'function') {
1797+ begin = begin.call(this, node);
1798+ }
1799+
1800+ var mFrom = Y.Anim.RE_UNITS.exec(begin);
1801+ var mTo = Y.Anim.RE_UNITS.exec(val);
1802+
1803+ begin = mFrom ? mFrom[1] : begin;
1804+ end = mTo ? mTo[1] : val;
1805+ unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units
1806+
1807+ if (!unit && Y.Anim.RE_DEFAULT_UNIT.test(name)) {
1808+ unit = Y.Anim.DEFAULT_UNIT;
1809+ }
1810+
1811+ if (!begin || !end) {
1812+ Y.error('invalid "from" or "to" for "' + name + '"', 'Anim');
1813+ return;
1814+ }
1815+
1816+ attr[name] = {
1817+ from: begin,
1818+ to: end,
1819+ unit: unit
1820+ };
1821+
1822+ }, this);
1823+
1824+ this._runtimeAttr = attr;
1825+ },
1826+
1827+
1828+ // TODO: move to computedStyle? (browsers dont agree on default computed offsets)
1829+ _getOffset: function(attr) {
1830+ var node = this._node,
1831+ val = node.getComputedStyle(attr),
1832+ get = (attr === 'left') ? 'getX': 'getY',
1833+ set = (attr === 'left') ? 'setX': 'setY';
1834+
1835+ if (val === 'auto') {
1836+ var position = node.getStyle('position');
1837+ if (position === 'absolute' || position === 'fixed') {
1838+ val = node[get]();
1839+ node[set](val);
1840+ } else {
1841+ val = 0;
1842+ }
1843+ }
1844+
1845+ return val;
1846+ },
1847+
1848+ destructor: function() {
1849+ delete Y.Anim._instances[Y.stamp(this)];
1850+ }
1851+ };
1852+
1853+ Y.extend(Y.Anim, Y.Base, proto);
1854+
1855+
1856+}, '3.5.1' ,{requires:['base-base', 'node-style']});
1857
1858=== added directory 'debian/extras/jslibs/yui/anim-color'
1859=== added file 'debian/extras/jslibs/yui/anim-color/anim-color-debug.js'
1860--- debian/extras/jslibs/yui/anim-color/anim-color-debug.js 1970-01-01 00:00:00 +0000
1861+++ debian/extras/jslibs/yui/anim-color/anim-color-debug.js 2013-02-02 01:30:27 +0000
1862@@ -0,0 +1,54 @@
1863+/*
1864+YUI 3.5.1 (build 22)
1865+Copyright 2012 Yahoo! Inc. All rights reserved.
1866+Licensed under the BSD License.
1867+http://yuilibrary.com/license/
1868+*/
1869+YUI.add('anim-color', function(Y) {
1870+
1871+/**
1872+ * Adds support for color properties in <code>to</code>
1873+ * and <code>from</code> attributes.
1874+ * @module anim
1875+ * @submodule anim-color
1876+ */
1877+
1878+var NUM = Number;
1879+
1880+Y.Anim.behaviors.color = {
1881+ set: function(anim, att, from, to, elapsed, duration, fn) {
1882+ from = Y.Color.re_RGB.exec(Y.Color.toRGB(from));
1883+ to = Y.Color.re_RGB.exec(Y.Color.toRGB(to));
1884+
1885+ if (!from || from.length < 3 || !to || to.length < 3) {
1886+ Y.error('invalid from or to passed to color behavior');
1887+ }
1888+
1889+ anim._node.setStyle(att, 'rgb(' + [
1890+ Math.floor(fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)),
1891+ Math.floor(fn(elapsed, NUM(from[2]), NUM(to[2]) - NUM(from[2]), duration)),
1892+ Math.floor(fn(elapsed, NUM(from[3]), NUM(to[3]) - NUM(from[3]), duration))
1893+ ].join(', ') + ')');
1894+ },
1895+
1896+ // TODO: default bgcolor const
1897+ get: function(anim, att) {
1898+ var val = anim._node.getComputedStyle(att);
1899+ val = (val === 'transparent') ? 'rgb(255, 255, 255)' : val;
1900+ return val;
1901+ }
1902+};
1903+
1904+Y.each(['backgroundColor',
1905+ 'borderColor',
1906+ 'borderTopColor',
1907+ 'borderRightColor',
1908+ 'borderBottomColor',
1909+ 'borderLeftColor'],
1910+ function(v, i) {
1911+ Y.Anim.behaviors[v] = Y.Anim.behaviors.color;
1912+ }
1913+);
1914+
1915+
1916+}, '3.5.1' ,{requires:['anim-base']});
1917
1918=== added file 'debian/extras/jslibs/yui/anim-color/anim-color-min.js'
1919--- debian/extras/jslibs/yui/anim-color/anim-color-min.js 1970-01-01 00:00:00 +0000
1920+++ debian/extras/jslibs/yui/anim-color/anim-color-min.js 2013-02-02 01:30:27 +0000
1921@@ -0,0 +1,7 @@
1922+/*
1923+YUI 3.5.1 (build 22)
1924+Copyright 2012 Yahoo! Inc. All rights reserved.
1925+Licensed under the BSD License.
1926+http://yuilibrary.com/license/
1927+*/
1928+YUI.add("anim-color",function(b){var a=Number;b.Anim.behaviors.color={set:function(f,d,i,h,c,g,e){i=b.Color.re_RGB.exec(b.Color.toRGB(i));h=b.Color.re_RGB.exec(b.Color.toRGB(h));if(!i||i.length<3||!h||h.length<3){b.error("invalid from or to passed to color behavior");}f._node.setStyle(d,"rgb("+[Math.floor(e(c,a(i[1]),a(h[1])-a(i[1]),g)),Math.floor(e(c,a(i[2]),a(h[2])-a(i[2]),g)),Math.floor(e(c,a(i[3]),a(h[3])-a(i[3]),g))].join(", ")+")");},get:function(d,c){var e=d._node.getComputedStyle(c);e=(e==="transparent")?"rgb(255, 255, 255)":e;return e;}};b.each(["backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],function(c,d){b.Anim.behaviors[c]=b.Anim.behaviors.color;});},"3.5.1",{requires:["anim-base"]});
1929\ No newline at end of file
1930
1931=== added file 'debian/extras/jslibs/yui/anim-color/anim-color.js'
1932--- debian/extras/jslibs/yui/anim-color/anim-color.js 1970-01-01 00:00:00 +0000
1933+++ debian/extras/jslibs/yui/anim-color/anim-color.js 2013-02-02 01:30:27 +0000
1934@@ -0,0 +1,54 @@
1935+/*
1936+YUI 3.5.1 (build 22)
1937+Copyright 2012 Yahoo! Inc. All rights reserved.
1938+Licensed under the BSD License.
1939+http://yuilibrary.com/license/
1940+*/
1941+YUI.add('anim-color', function(Y) {
1942+
1943+/**
1944+ * Adds support for color properties in <code>to</code>
1945+ * and <code>from</code> attributes.
1946+ * @module anim
1947+ * @submodule anim-color
1948+ */
1949+
1950+var NUM = Number;
1951+
1952+Y.Anim.behaviors.color = {
1953+ set: function(anim, att, from, to, elapsed, duration, fn) {
1954+ from = Y.Color.re_RGB.exec(Y.Color.toRGB(from));
1955+ to = Y.Color.re_RGB.exec(Y.Color.toRGB(to));
1956+
1957+ if (!from || from.length < 3 || !to || to.length < 3) {
1958+ Y.error('invalid from or to passed to color behavior');
1959+ }
1960+
1961+ anim._node.setStyle(att, 'rgb(' + [
1962+ Math.floor(fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)),
1963+ Math.floor(fn(elapsed, NUM(from[2]), NUM(to[2]) - NUM(from[2]), duration)),
1964+ Math.floor(fn(elapsed, NUM(from[3]), NUM(to[3]) - NUM(from[3]), duration))
1965+ ].join(', ') + ')');
1966+ },
1967+
1968+ // TODO: default bgcolor const
1969+ get: function(anim, att) {
1970+ var val = anim._node.getComputedStyle(att);
1971+ val = (val === 'transparent') ? 'rgb(255, 255, 255)' : val;
1972+ return val;
1973+ }
1974+};
1975+
1976+Y.each(['backgroundColor',
1977+ 'borderColor',
1978+ 'borderTopColor',
1979+ 'borderRightColor',
1980+ 'borderBottomColor',
1981+ 'borderLeftColor'],
1982+ function(v, i) {
1983+ Y.Anim.behaviors[v] = Y.Anim.behaviors.color;
1984+ }
1985+);
1986+
1987+
1988+}, '3.5.1' ,{requires:['anim-base']});
1989
1990=== added directory 'debian/extras/jslibs/yui/anim-curve'
1991=== added file 'debian/extras/jslibs/yui/anim-curve/anim-curve-debug.js'
1992--- debian/extras/jslibs/yui/anim-curve/anim-curve-debug.js 1970-01-01 00:00:00 +0000
1993+++ debian/extras/jslibs/yui/anim-curve/anim-curve-debug.js 2013-02-02 01:30:27 +0000
1994@@ -0,0 +1,63 @@
1995+/*
1996+YUI 3.5.1 (build 22)
1997+Copyright 2012 Yahoo! Inc. All rights reserved.
1998+Licensed under the BSD License.
1999+http://yuilibrary.com/license/
2000+*/
2001+YUI.add('anim-curve', function(Y) {
2002+
2003+/**
2004+ * Adds support for the <code>curve</code> property for the <code>to</code>
2005+ * attribute. A curve is zero or more control points and an end point.
2006+ * @module anim
2007+ * @submodule anim-curve
2008+ */
2009+
2010+Y.Anim.behaviors.curve = {
2011+ set: function(anim, att, from, to, elapsed, duration, fn) {
2012+ from = from.slice.call(from);
2013+ to = to.slice.call(to);
2014+ var t = fn(elapsed, 0, 100, duration) / 100;
2015+ to.unshift(from);
2016+ anim._node.setXY(Y.Anim.getBezier(to, t));
2017+ },
2018+
2019+ get: function(anim, att) {
2020+ return anim._node.getXY();
2021+ }
2022+};
2023+
2024+/**
2025+ * Get the current position of the animated element based on t.
2026+ * Each point is an array of "x" and "y" values (0 = x, 1 = y)
2027+ * At least 2 points are required (start and end).
2028+ * First point is start. Last point is end.
2029+ * Additional control points are optional.
2030+ * @for Anim
2031+ * @method getBezier
2032+ * @static
2033+ * @param {Array} points An array containing Bezier points
2034+ * @param {Number} t A number between 0 and 1 which is the basis for determining current position
2035+ * @return {Array} An array containing int x and y member data
2036+ */
2037+Y.Anim.getBezier = function(points, t) {
2038+ var n = points.length;
2039+ var tmp = [];
2040+
2041+ for (var i = 0; i < n; ++i){
2042+ tmp[i] = [points[i][0], points[i][1]]; // save input
2043+ }
2044+
2045+ for (var j = 1; j < n; ++j) {
2046+ for (i = 0; i < n - j; ++i) {
2047+ tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];
2048+ tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];
2049+ }
2050+ }
2051+
2052+ return [ tmp[0][0], tmp[0][1] ];
2053+
2054+};
2055+
2056+
2057+}, '3.5.1' ,{requires:['anim-xy']});
2058
2059=== added file 'debian/extras/jslibs/yui/anim-curve/anim-curve-min.js'
2060--- debian/extras/jslibs/yui/anim-curve/anim-curve-min.js 1970-01-01 00:00:00 +0000
2061+++ debian/extras/jslibs/yui/anim-curve/anim-curve-min.js 2013-02-02 01:30:27 +0000
2062@@ -0,0 +1,7 @@
2063+/*
2064+YUI 3.5.1 (build 22)
2065+Copyright 2012 Yahoo! Inc. All rights reserved.
2066+Licensed under the BSD License.
2067+http://yuilibrary.com/license/
2068+*/
2069+YUI.add("anim-curve",function(a){a.Anim.behaviors.curve={set:function(f,c,i,h,b,g,e){i=i.slice.call(i);h=h.slice.call(h);var d=e(b,0,100,g)/100;h.unshift(i);f._node.setXY(a.Anim.getBezier(h,d));},get:function(c,b){return c._node.getXY();}};a.Anim.getBezier=function(f,e){var g=f.length;var d=[];for(var c=0;c<g;++c){d[c]=[f[c][0],f[c][1]];}for(var b=1;b<g;++b){for(c=0;c<g-b;++c){d[c][0]=(1-e)*d[c][0]+e*d[parseInt(c+1,10)][0];d[c][1]=(1-e)*d[c][1]+e*d[parseInt(c+1,10)][1];}}return[d[0][0],d[0][1]];};},"3.5.1",{requires:["anim-xy"]});
2070\ No newline at end of file
2071
2072=== added file 'debian/extras/jslibs/yui/anim-curve/anim-curve.js'
2073--- debian/extras/jslibs/yui/anim-curve/anim-curve.js 1970-01-01 00:00:00 +0000
2074+++ debian/extras/jslibs/yui/anim-curve/anim-curve.js 2013-02-02 01:30:27 +0000
2075@@ -0,0 +1,63 @@
2076+/*
2077+YUI 3.5.1 (build 22)
2078+Copyright 2012 Yahoo! Inc. All rights reserved.
2079+Licensed under the BSD License.
2080+http://yuilibrary.com/license/
2081+*/
2082+YUI.add('anim-curve', function(Y) {
2083+
2084+/**
2085+ * Adds support for the <code>curve</code> property for the <code>to</code>
2086+ * attribute. A curve is zero or more control points and an end point.
2087+ * @module anim
2088+ * @submodule anim-curve
2089+ */
2090+
2091+Y.Anim.behaviors.curve = {
2092+ set: function(anim, att, from, to, elapsed, duration, fn) {
2093+ from = from.slice.call(from);
2094+ to = to.slice.call(to);
2095+ var t = fn(elapsed, 0, 100, duration) / 100;
2096+ to.unshift(from);
2097+ anim._node.setXY(Y.Anim.getBezier(to, t));
2098+ },
2099+
2100+ get: function(anim, att) {
2101+ return anim._node.getXY();
2102+ }
2103+};
2104+
2105+/**
2106+ * Get the current position of the animated element based on t.
2107+ * Each point is an array of "x" and "y" values (0 = x, 1 = y)
2108+ * At least 2 points are required (start and end).
2109+ * First point is start. Last point is end.
2110+ * Additional control points are optional.
2111+ * @for Anim
2112+ * @method getBezier
2113+ * @static
2114+ * @param {Array} points An array containing Bezier points
2115+ * @param {Number} t A number between 0 and 1 which is the basis for determining current position
2116+ * @return {Array} An array containing int x and y member data
2117+ */
2118+Y.Anim.getBezier = function(points, t) {
2119+ var n = points.length;
2120+ var tmp = [];
2121+
2122+ for (var i = 0; i < n; ++i){
2123+ tmp[i] = [points[i][0], points[i][1]]; // save input
2124+ }
2125+
2126+ for (var j = 1; j < n; ++j) {
2127+ for (i = 0; i < n - j; ++i) {
2128+ tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];
2129+ tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];
2130+ }
2131+ }
2132+
2133+ return [ tmp[0][0], tmp[0][1] ];
2134+
2135+};
2136+
2137+
2138+}, '3.5.1' ,{requires:['anim-xy']});
2139
2140=== added directory 'debian/extras/jslibs/yui/anim-easing'
2141=== added file 'debian/extras/jslibs/yui/anim-easing/anim-easing-debug.js'
2142--- debian/extras/jslibs/yui/anim-easing/anim-easing-debug.js 1970-01-01 00:00:00 +0000
2143+++ debian/extras/jslibs/yui/anim-easing/anim-easing-debug.js 2013-02-02 01:30:27 +0000
2144@@ -0,0 +1,356 @@
2145+/*
2146+YUI 3.5.1 (build 22)
2147+Copyright 2012 Yahoo! Inc. All rights reserved.
2148+Licensed under the BSD License.
2149+http://yuilibrary.com/license/
2150+*/
2151+YUI.add('anim-easing', function(Y) {
2152+
2153+/*
2154+TERMS OF USE - EASING EQUATIONS
2155+Open source under the BSD License.
2156+Copyright 2001 Robert Penner All rights reserved.
2157+
2158+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
2159+
2160+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2161+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
2162+ * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
2163+
2164+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2165+*/
2166+
2167+/**
2168+ * The easing module provides methods for customizing
2169+ * how an animation behaves during each run.
2170+ * @class Easing
2171+ * @module anim
2172+ * @submodule anim-easing
2173+ */
2174+
2175+var Easing = {
2176+
2177+ /**
2178+ * Uniform speed between points.
2179+ * @for Easing
2180+ * @method easeNone
2181+ * @param {Number} t Time value used to compute current value
2182+ * @param {Number} b Starting value
2183+ * @param {Number} c Delta between start and end values
2184+ * @param {Number} d Total length of animation
2185+ * @return {Number} The computed value for the current animation frame
2186+ */
2187+ easeNone: function (t, b, c, d) {
2188+ return c*t/d + b;
2189+ },
2190+
2191+ /**
2192+ * Begins slowly and accelerates towards end. (quadratic)
2193+ * @method easeIn
2194+ * @param {Number} t Time value used to compute current value
2195+ * @param {Number} b Starting value
2196+ * @param {Number} c Delta between start and end values
2197+ * @param {Number} d Total length of animation
2198+ * @return {Number} The computed value for the current animation frame
2199+ */
2200+ easeIn: function (t, b, c, d) {
2201+ return c*(t/=d)*t + b;
2202+ },
2203+
2204+ /**
2205+ * Begins quickly and decelerates towards end. (quadratic)
2206+ * @method easeOut
2207+ * @param {Number} t Time value used to compute current value
2208+ * @param {Number} b Starting value
2209+ * @param {Number} c Delta between start and end values
2210+ * @param {Number} d Total length of animation
2211+ * @return {Number} The computed value for the current animation frame
2212+ */
2213+ easeOut: function (t, b, c, d) {
2214+ return -c *(t/=d)*(t-2) + b;
2215+ },
2216+
2217+ /**
2218+ * Begins slowly and decelerates towards end. (quadratic)
2219+ * @method easeBoth
2220+ * @param {Number} t Time value used to compute current value
2221+ * @param {Number} b Starting value
2222+ * @param {Number} c Delta between start and end values
2223+ * @param {Number} d Total length of animation
2224+ * @return {Number} The computed value for the current animation frame
2225+ */
2226+ easeBoth: function (t, b, c, d) {
2227+ if ((t/=d/2) < 1) {
2228+ return c/2*t*t + b;
2229+ }
2230+
2231+ return -c/2 * ((--t)*(t-2) - 1) + b;
2232+ },
2233+
2234+ /**
2235+ * Begins slowly and accelerates towards end. (quartic)
2236+ * @method easeInStrong
2237+ * @param {Number} t Time value used to compute current value
2238+ * @param {Number} b Starting value
2239+ * @param {Number} c Delta between start and end values
2240+ * @param {Number} d Total length of animation
2241+ * @return {Number} The computed value for the current animation frame
2242+ */
2243+ easeInStrong: function (t, b, c, d) {
2244+ return c*(t/=d)*t*t*t + b;
2245+ },
2246+
2247+ /**
2248+ * Begins quickly and decelerates towards end. (quartic)
2249+ * @method easeOutStrong
2250+ * @param {Number} t Time value used to compute current value
2251+ * @param {Number} b Starting value
2252+ * @param {Number} c Delta between start and end values
2253+ * @param {Number} d Total length of animation
2254+ * @return {Number} The computed value for the current animation frame
2255+ */
2256+ easeOutStrong: function (t, b, c, d) {
2257+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
2258+ },
2259+
2260+ /**
2261+ * Begins slowly and decelerates towards end. (quartic)
2262+ * @method easeBothStrong
2263+ * @param {Number} t Time value used to compute current value
2264+ * @param {Number} b Starting value
2265+ * @param {Number} c Delta between start and end values
2266+ * @param {Number} d Total length of animation
2267+ * @return {Number} The computed value for the current animation frame
2268+ */
2269+ easeBothStrong: function (t, b, c, d) {
2270+ if ((t/=d/2) < 1) {
2271+ return c/2*t*t*t*t + b;
2272+ }
2273+
2274+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
2275+ },
2276+
2277+ /**
2278+ * Snap in elastic effect.
2279+ * @method elasticIn
2280+ * @param {Number} t Time value used to compute current value
2281+ * @param {Number} b Starting value
2282+ * @param {Number} c Delta between start and end values
2283+ * @param {Number} d Total length of animation
2284+ * @param {Number} a Amplitude (optional)
2285+ * @param {Number} p Period (optional)
2286+ * @return {Number} The computed value for the current animation frame
2287+ */
2288+
2289+ elasticIn: function (t, b, c, d, a, p) {
2290+ var s;
2291+ if (t === 0) {
2292+ return b;
2293+ }
2294+ if ( (t /= d) === 1 ) {
2295+ return b+c;
2296+ }
2297+ if (!p) {
2298+ p = d* 0.3;
2299+ }
2300+
2301+ if (!a || a < Math.abs(c)) {
2302+ a = c;
2303+ s = p/4;
2304+ }
2305+ else {
2306+ s = p/(2*Math.PI) * Math.asin (c/a);
2307+ }
2308+
2309+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
2310+ },
2311+
2312+ /**
2313+ * Snap out elastic effect.
2314+ * @method elasticOut
2315+ * @param {Number} t Time value used to compute current value
2316+ * @param {Number} b Starting value
2317+ * @param {Number} c Delta between start and end values
2318+ * @param {Number} d Total length of animation
2319+ * @param {Number} a Amplitude (optional)
2320+ * @param {Number} p Period (optional)
2321+ * @return {Number} The computed value for the current animation frame
2322+ */
2323+ elasticOut: function (t, b, c, d, a, p) {
2324+ var s;
2325+ if (t === 0) {
2326+ return b;
2327+ }
2328+ if ( (t /= d) === 1 ) {
2329+ return b+c;
2330+ }
2331+ if (!p) {
2332+ p=d * 0.3;
2333+ }
2334+
2335+ if (!a || a < Math.abs(c)) {
2336+ a = c;
2337+ s = p / 4;
2338+ }
2339+ else {
2340+ s = p/(2*Math.PI) * Math.asin (c/a);
2341+ }
2342+
2343+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
2344+ },
2345+
2346+ /**
2347+ * Snap both elastic effect.
2348+ * @method elasticBoth
2349+ * @param {Number} t Time value used to compute current value
2350+ * @param {Number} b Starting value
2351+ * @param {Number} c Delta between start and end values
2352+ * @param {Number} d Total length of animation
2353+ * @param {Number} a Amplitude (optional)
2354+ * @param {Number} p Period (optional)
2355+ * @return {Number} The computed value for the current animation frame
2356+ */
2357+ elasticBoth: function (t, b, c, d, a, p) {
2358+ var s;
2359+ if (t === 0) {
2360+ return b;
2361+ }
2362+
2363+ if ( (t /= d/2) === 2 ) {
2364+ return b+c;
2365+ }
2366+
2367+ if (!p) {
2368+ p = d*(0.3*1.5);
2369+ }
2370+
2371+ if ( !a || a < Math.abs(c) ) {
2372+ a = c;
2373+ s = p/4;
2374+ }
2375+ else {
2376+ s = p/(2*Math.PI) * Math.asin (c/a);
2377+ }
2378+
2379+ if (t < 1) {
2380+ return -0.5*(a*Math.pow(2,10*(t-=1)) *
2381+ Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
2382+ }
2383+ return a*Math.pow(2,-10*(t-=1)) *
2384+ Math.sin( (t*d-s)*(2*Math.PI)/p )*0.5 + c + b;
2385+ },
2386+
2387+
2388+ /**
2389+ * Backtracks slightly, then reverses direction and moves to end.
2390+ * @method backIn
2391+ * @param {Number} t Time value used to compute current value
2392+ * @param {Number} b Starting value
2393+ * @param {Number} c Delta between start and end values
2394+ * @param {Number} d Total length of animation
2395+ * @param {Number} s Overshoot (optional)
2396+ * @return {Number} The computed value for the current animation frame
2397+ */
2398+ backIn: function (t, b, c, d, s) {
2399+ if (s === undefined) {
2400+ s = 1.70158;
2401+ }
2402+ if (t === d) {
2403+ t -= 0.001;
2404+ }
2405+ return c*(t/=d)*t*((s+1)*t - s) + b;
2406+ },
2407+
2408+ /**
2409+ * Overshoots end, then reverses and comes back to end.
2410+ * @method backOut
2411+ * @param {Number} t Time value used to compute current value
2412+ * @param {Number} b Starting value
2413+ * @param {Number} c Delta between start and end values
2414+ * @param {Number} d Total length of animation
2415+ * @param {Number} s Overshoot (optional)
2416+ * @return {Number} The computed value for the current animation frame
2417+ */
2418+ backOut: function (t, b, c, d, s) {
2419+ if (typeof s === 'undefined') {
2420+ s = 1.70158;
2421+ }
2422+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
2423+ },
2424+
2425+ /**
2426+ * Backtracks slightly, then reverses direction, overshoots end,
2427+ * then reverses and comes back to end.
2428+ * @method backBoth
2429+ * @param {Number} t Time value used to compute current value
2430+ * @param {Number} b Starting value
2431+ * @param {Number} c Delta between start and end values
2432+ * @param {Number} d Total length of animation
2433+ * @param {Number} s Overshoot (optional)
2434+ * @return {Number} The computed value for the current animation frame
2435+ */
2436+ backBoth: function (t, b, c, d, s) {
2437+ if (typeof s === 'undefined') {
2438+ s = 1.70158;
2439+ }
2440+
2441+ if ((t /= d/2 ) < 1) {
2442+ return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
2443+ }
2444+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
2445+ },
2446+
2447+ /**
2448+ * Bounce off of start.
2449+ * @method bounceIn
2450+ * @param {Number} t Time value used to compute current value
2451+ * @param {Number} b Starting value
2452+ * @param {Number} c Delta between start and end values
2453+ * @param {Number} d Total length of animation
2454+ * @return {Number} The computed value for the current animation frame
2455+ */
2456+ bounceIn: function (t, b, c, d) {
2457+ return c - Y.Easing.bounceOut(d-t, 0, c, d) + b;
2458+ },
2459+
2460+ /**
2461+ * Bounces off end.
2462+ * @method bounceOut
2463+ * @param {Number} t Time value used to compute current value
2464+ * @param {Number} b Starting value
2465+ * @param {Number} c Delta between start and end values
2466+ * @param {Number} d Total length of animation
2467+ * @return {Number} The computed value for the current animation frame
2468+ */
2469+ bounceOut: function (t, b, c, d) {
2470+ if ((t/=d) < (1/2.75)) {
2471+ return c*(7.5625*t*t) + b;
2472+ } else if (t < (2/2.75)) {
2473+ return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b;
2474+ } else if (t < (2.5/2.75)) {
2475+ return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b;
2476+ }
2477+ return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;
2478+ },
2479+
2480+ /**
2481+ * Bounces off start and end.
2482+ * @method bounceBoth
2483+ * @param {Number} t Time value used to compute current value
2484+ * @param {Number} b Starting value
2485+ * @param {Number} c Delta between start and end values
2486+ * @param {Number} d Total length of animation
2487+ * @return {Number} The computed value for the current animation frame
2488+ */
2489+ bounceBoth: function (t, b, c, d) {
2490+ if (t < d/2) {
2491+ return Y.Easing.bounceIn(t * 2, 0, c, d) * 0.5 + b;
2492+ }
2493+ return Y.Easing.bounceOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
2494+ }
2495+};
2496+
2497+Y.Easing = Easing;
2498+
2499+
2500+}, '3.5.1' ,{requires:['anim-base']});
2501
2502=== added file 'debian/extras/jslibs/yui/anim-easing/anim-easing-min.js'
2503--- debian/extras/jslibs/yui/anim-easing/anim-easing-min.js 1970-01-01 00:00:00 +0000
2504+++ debian/extras/jslibs/yui/anim-easing/anim-easing-min.js 2013-02-02 01:30:27 +0000
2505@@ -0,0 +1,7 @@
2506+/*
2507+YUI 3.5.1 (build 22)
2508+Copyright 2012 Yahoo! Inc. All rights reserved.
2509+Licensed under the BSD License.
2510+http://yuilibrary.com/license/
2511+*/
2512+YUI.add("anim-easing",function(b){var a={easeNone:function(f,e,h,g){return h*f/g+e;},easeIn:function(f,e,h,g){return h*(f/=g)*f+e;},easeOut:function(f,e,h,g){return -h*(f/=g)*(f-2)+e;},easeBoth:function(f,e,h,g){if((f/=g/2)<1){return h/2*f*f+e;}return -h/2*((--f)*(f-2)-1)+e;},easeInStrong:function(f,e,h,g){return h*(f/=g)*f*f*f+e;},easeOutStrong:function(f,e,h,g){return -h*((f=f/g-1)*f*f*f-1)+e;},easeBothStrong:function(f,e,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+e;}return -h/2*((f-=2)*f*f*f-2)+e;},elasticIn:function(g,e,k,j,f,i){var h;if(g===0){return e;}if((g/=j)===1){return e+k;}if(!i){i=j*0.3;}if(!f||f<Math.abs(k)){f=k;h=i/4;}else{h=i/(2*Math.PI)*Math.asin(k/f);}return -(f*Math.pow(2,10*(g-=1))*Math.sin((g*j-h)*(2*Math.PI)/i))+e;},elasticOut:function(g,e,k,j,f,i){var h;if(g===0){return e;}if((g/=j)===1){return e+k;}if(!i){i=j*0.3;}if(!f||f<Math.abs(k)){f=k;h=i/4;}else{h=i/(2*Math.PI)*Math.asin(k/f);}return f*Math.pow(2,-10*g)*Math.sin((g*j-h)*(2*Math.PI)/i)+k+e;},elasticBoth:function(g,e,k,j,f,i){var h;if(g===0){return e;}if((g/=j/2)===2){return e+k;}if(!i){i=j*(0.3*1.5);}if(!f||f<Math.abs(k)){f=k;h=i/4;}else{h=i/(2*Math.PI)*Math.asin(k/f);}if(g<1){return -0.5*(f*Math.pow(2,10*(g-=1))*Math.sin((g*j-h)*(2*Math.PI)/i))+e;}return f*Math.pow(2,-10*(g-=1))*Math.sin((g*j-h)*(2*Math.PI)/i)*0.5+k+e;},backIn:function(f,e,i,h,g){if(g===undefined){g=1.70158;}if(f===h){f-=0.001;}return i*(f/=h)*f*((g+1)*f-g)+e;},backOut:function(f,e,i,h,g){if(typeof g==="undefined"){g=1.70158;}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+e;},backBoth:function(f,e,i,h,g){if(typeof g==="undefined"){g=1.70158;}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+e;}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+e;},bounceIn:function(f,e,h,g){return h-b.Easing.bounceOut(g-f,0,h,g)+e;},bounceOut:function(f,e,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+e;}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+e;}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+e;}}}return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+e;},bounceBoth:function(f,e,h,g){if(f<g/2){return b.Easing.bounceIn(f*2,0,h,g)*0.5+e;}return b.Easing.bounceOut(f*2-g,0,h,g)*0.5+h*0.5+e;}};b.Easing=a;},"3.5.1",{requires:["anim-base"]});
2513\ No newline at end of file
2514
2515=== added file 'debian/extras/jslibs/yui/anim-easing/anim-easing.js'
2516--- debian/extras/jslibs/yui/anim-easing/anim-easing.js 1970-01-01 00:00:00 +0000
2517+++ debian/extras/jslibs/yui/anim-easing/anim-easing.js 2013-02-02 01:30:27 +0000
2518@@ -0,0 +1,356 @@
2519+/*
2520+YUI 3.5.1 (build 22)
2521+Copyright 2012 Yahoo! Inc. All rights reserved.
2522+Licensed under the BSD License.
2523+http://yuilibrary.com/license/
2524+*/
2525+YUI.add('anim-easing', function(Y) {
2526+
2527+/*
2528+TERMS OF USE - EASING EQUATIONS
2529+Open source under the BSD License.
2530+Copyright 2001 Robert Penner All rights reserved.
2531+
2532+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
2533+
2534+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2535+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
2536+ * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
2537+
2538+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2539+*/
2540+
2541+/**
2542+ * The easing module provides methods for customizing
2543+ * how an animation behaves during each run.
2544+ * @class Easing
2545+ * @module anim
2546+ * @submodule anim-easing
2547+ */
2548+
2549+var Easing = {
2550+
2551+ /**
2552+ * Uniform speed between points.
2553+ * @for Easing
2554+ * @method easeNone
2555+ * @param {Number} t Time value used to compute current value
2556+ * @param {Number} b Starting value
2557+ * @param {Number} c Delta between start and end values
2558+ * @param {Number} d Total length of animation
2559+ * @return {Number} The computed value for the current animation frame
2560+ */
2561+ easeNone: function (t, b, c, d) {
2562+ return c*t/d + b;
2563+ },
2564+
2565+ /**
2566+ * Begins slowly and accelerates towards end. (quadratic)
2567+ * @method easeIn
2568+ * @param {Number} t Time value used to compute current value
2569+ * @param {Number} b Starting value
2570+ * @param {Number} c Delta between start and end values
2571+ * @param {Number} d Total length of animation
2572+ * @return {Number} The computed value for the current animation frame
2573+ */
2574+ easeIn: function (t, b, c, d) {
2575+ return c*(t/=d)*t + b;
2576+ },
2577+
2578+ /**
2579+ * Begins quickly and decelerates towards end. (quadratic)
2580+ * @method easeOut
2581+ * @param {Number} t Time value used to compute current value
2582+ * @param {Number} b Starting value
2583+ * @param {Number} c Delta between start and end values
2584+ * @param {Number} d Total length of animation
2585+ * @return {Number} The computed value for the current animation frame
2586+ */
2587+ easeOut: function (t, b, c, d) {
2588+ return -c *(t/=d)*(t-2) + b;
2589+ },
2590+
2591+ /**
2592+ * Begins slowly and decelerates towards end. (quadratic)
2593+ * @method easeBoth
2594+ * @param {Number} t Time value used to compute current value
2595+ * @param {Number} b Starting value
2596+ * @param {Number} c Delta between start and end values
2597+ * @param {Number} d Total length of animation
2598+ * @return {Number} The computed value for the current animation frame
2599+ */
2600+ easeBoth: function (t, b, c, d) {
2601+ if ((t/=d/2) < 1) {
2602+ return c/2*t*t + b;
2603+ }
2604+
2605+ return -c/2 * ((--t)*(t-2) - 1) + b;
2606+ },
2607+
2608+ /**
2609+ * Begins slowly and accelerates towards end. (quartic)
2610+ * @method easeInStrong
2611+ * @param {Number} t Time value used to compute current value
2612+ * @param {Number} b Starting value
2613+ * @param {Number} c Delta between start and end values
2614+ * @param {Number} d Total length of animation
2615+ * @return {Number} The computed value for the current animation frame
2616+ */
2617+ easeInStrong: function (t, b, c, d) {
2618+ return c*(t/=d)*t*t*t + b;
2619+ },
2620+
2621+ /**
2622+ * Begins quickly and decelerates towards end. (quartic)
2623+ * @method easeOutStrong
2624+ * @param {Number} t Time value used to compute current value
2625+ * @param {Number} b Starting value
2626+ * @param {Number} c Delta between start and end values
2627+ * @param {Number} d Total length of animation
2628+ * @return {Number} The computed value for the current animation frame
2629+ */
2630+ easeOutStrong: function (t, b, c, d) {
2631+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
2632+ },
2633+
2634+ /**
2635+ * Begins slowly and decelerates towards end. (quartic)
2636+ * @method easeBothStrong
2637+ * @param {Number} t Time value used to compute current value
2638+ * @param {Number} b Starting value
2639+ * @param {Number} c Delta between start and end values
2640+ * @param {Number} d Total length of animation
2641+ * @return {Number} The computed value for the current animation frame
2642+ */
2643+ easeBothStrong: function (t, b, c, d) {
2644+ if ((t/=d/2) < 1) {
2645+ return c/2*t*t*t*t + b;
2646+ }
2647+
2648+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
2649+ },
2650+
2651+ /**
2652+ * Snap in elastic effect.
2653+ * @method elasticIn
2654+ * @param {Number} t Time value used to compute current value
2655+ * @param {Number} b Starting value
2656+ * @param {Number} c Delta between start and end values
2657+ * @param {Number} d Total length of animation
2658+ * @param {Number} a Amplitude (optional)
2659+ * @param {Number} p Period (optional)
2660+ * @return {Number} The computed value for the current animation frame
2661+ */
2662+
2663+ elasticIn: function (t, b, c, d, a, p) {
2664+ var s;
2665+ if (t === 0) {
2666+ return b;
2667+ }
2668+ if ( (t /= d) === 1 ) {
2669+ return b+c;
2670+ }
2671+ if (!p) {
2672+ p = d* 0.3;
2673+ }
2674+
2675+ if (!a || a < Math.abs(c)) {
2676+ a = c;
2677+ s = p/4;
2678+ }
2679+ else {
2680+ s = p/(2*Math.PI) * Math.asin (c/a);
2681+ }
2682+
2683+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
2684+ },
2685+
2686+ /**
2687+ * Snap out elastic effect.
2688+ * @method elasticOut
2689+ * @param {Number} t Time value used to compute current value
2690+ * @param {Number} b Starting value
2691+ * @param {Number} c Delta between start and end values
2692+ * @param {Number} d Total length of animation
2693+ * @param {Number} a Amplitude (optional)
2694+ * @param {Number} p Period (optional)
2695+ * @return {Number} The computed value for the current animation frame
2696+ */
2697+ elasticOut: function (t, b, c, d, a, p) {
2698+ var s;
2699+ if (t === 0) {
2700+ return b;
2701+ }
2702+ if ( (t /= d) === 1 ) {
2703+ return b+c;
2704+ }
2705+ if (!p) {
2706+ p=d * 0.3;
2707+ }
2708+
2709+ if (!a || a < Math.abs(c)) {
2710+ a = c;
2711+ s = p / 4;
2712+ }
2713+ else {
2714+ s = p/(2*Math.PI) * Math.asin (c/a);
2715+ }
2716+
2717+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
2718+ },
2719+
2720+ /**
2721+ * Snap both elastic effect.
2722+ * @method elasticBoth
2723+ * @param {Number} t Time value used to compute current value
2724+ * @param {Number} b Starting value
2725+ * @param {Number} c Delta between start and end values
2726+ * @param {Number} d Total length of animation
2727+ * @param {Number} a Amplitude (optional)
2728+ * @param {Number} p Period (optional)
2729+ * @return {Number} The computed value for the current animation frame
2730+ */
2731+ elasticBoth: function (t, b, c, d, a, p) {
2732+ var s;
2733+ if (t === 0) {
2734+ return b;
2735+ }
2736+
2737+ if ( (t /= d/2) === 2 ) {
2738+ return b+c;
2739+ }
2740+
2741+ if (!p) {
2742+ p = d*(0.3*1.5);
2743+ }
2744+
2745+ if ( !a || a < Math.abs(c) ) {
2746+ a = c;
2747+ s = p/4;
2748+ }
2749+ else {
2750+ s = p/(2*Math.PI) * Math.asin (c/a);
2751+ }
2752+
2753+ if (t < 1) {
2754+ return -0.5*(a*Math.pow(2,10*(t-=1)) *
2755+ Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
2756+ }
2757+ return a*Math.pow(2,-10*(t-=1)) *
2758+ Math.sin( (t*d-s)*(2*Math.PI)/p )*0.5 + c + b;
2759+ },
2760+
2761+
2762+ /**
2763+ * Backtracks slightly, then reverses direction and moves to end.
2764+ * @method backIn
2765+ * @param {Number} t Time value used to compute current value
2766+ * @param {Number} b Starting value
2767+ * @param {Number} c Delta between start and end values
2768+ * @param {Number} d Total length of animation
2769+ * @param {Number} s Overshoot (optional)
2770+ * @return {Number} The computed value for the current animation frame
2771+ */
2772+ backIn: function (t, b, c, d, s) {
2773+ if (s === undefined) {
2774+ s = 1.70158;
2775+ }
2776+ if (t === d) {
2777+ t -= 0.001;
2778+ }
2779+ return c*(t/=d)*t*((s+1)*t - s) + b;
2780+ },
2781+
2782+ /**
2783+ * Overshoots end, then reverses and comes back to end.
2784+ * @method backOut
2785+ * @param {Number} t Time value used to compute current value
2786+ * @param {Number} b Starting value
2787+ * @param {Number} c Delta between start and end values
2788+ * @param {Number} d Total length of animation
2789+ * @param {Number} s Overshoot (optional)
2790+ * @return {Number} The computed value for the current animation frame
2791+ */
2792+ backOut: function (t, b, c, d, s) {
2793+ if (typeof s === 'undefined') {
2794+ s = 1.70158;
2795+ }
2796+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
2797+ },
2798+
2799+ /**
2800+ * Backtracks slightly, then reverses direction, overshoots end,
2801+ * then reverses and comes back to end.
2802+ * @method backBoth
2803+ * @param {Number} t Time value used to compute current value
2804+ * @param {Number} b Starting value
2805+ * @param {Number} c Delta between start and end values
2806+ * @param {Number} d Total length of animation
2807+ * @param {Number} s Overshoot (optional)
2808+ * @return {Number} The computed value for the current animation frame
2809+ */
2810+ backBoth: function (t, b, c, d, s) {
2811+ if (typeof s === 'undefined') {
2812+ s = 1.70158;
2813+ }
2814+
2815+ if ((t /= d/2 ) < 1) {
2816+ return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
2817+ }
2818+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
2819+ },
2820+
2821+ /**
2822+ * Bounce off of start.
2823+ * @method bounceIn
2824+ * @param {Number} t Time value used to compute current value
2825+ * @param {Number} b Starting value
2826+ * @param {Number} c Delta between start and end values
2827+ * @param {Number} d Total length of animation
2828+ * @return {Number} The computed value for the current animation frame
2829+ */
2830+ bounceIn: function (t, b, c, d) {
2831+ return c - Y.Easing.bounceOut(d-t, 0, c, d) + b;
2832+ },
2833+
2834+ /**
2835+ * Bounces off end.
2836+ * @method bounceOut
2837+ * @param {Number} t Time value used to compute current value
2838+ * @param {Number} b Starting value
2839+ * @param {Number} c Delta between start and end values
2840+ * @param {Number} d Total length of animation
2841+ * @return {Number} The computed value for the current animation frame
2842+ */
2843+ bounceOut: function (t, b, c, d) {
2844+ if ((t/=d) < (1/2.75)) {
2845+ return c*(7.5625*t*t) + b;
2846+ } else if (t < (2/2.75)) {
2847+ return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b;
2848+ } else if (t < (2.5/2.75)) {
2849+ return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b;
2850+ }
2851+ return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;
2852+ },
2853+
2854+ /**
2855+ * Bounces off start and end.
2856+ * @method bounceBoth
2857+ * @param {Number} t Time value used to compute current value
2858+ * @param {Number} b Starting value
2859+ * @param {Number} c Delta between start and end values
2860+ * @param {Number} d Total length of animation
2861+ * @return {Number} The computed value for the current animation frame
2862+ */
2863+ bounceBoth: function (t, b, c, d) {
2864+ if (t < d/2) {
2865+ return Y.Easing.bounceIn(t * 2, 0, c, d) * 0.5 + b;
2866+ }
2867+ return Y.Easing.bounceOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
2868+ }
2869+};
2870+
2871+Y.Easing = Easing;
2872+
2873+
2874+}, '3.5.1' ,{requires:['anim-base']});
2875
2876=== added directory 'debian/extras/jslibs/yui/anim-node-plugin'
2877=== added file 'debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-debug.js'
2878--- debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-debug.js 1970-01-01 00:00:00 +0000
2879+++ debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-debug.js 2013-02-02 01:30:27 +0000
2880@@ -0,0 +1,32 @@
2881+/*
2882+YUI 3.5.1 (build 22)
2883+Copyright 2012 Yahoo! Inc. All rights reserved.
2884+Licensed under the BSD License.
2885+http://yuilibrary.com/license/
2886+*/
2887+YUI.add('anim-node-plugin', function(Y) {
2888+
2889+/**
2890+ * Binds an Anim instance to a Node instance
2891+ * @module anim
2892+ * @class Plugin.NodeFX
2893+ * @extends Base
2894+ * @submodule anim-node-plugin
2895+ */
2896+
2897+var NodeFX = function(config) {
2898+ config = (config) ? Y.merge(config) : {};
2899+ config.node = config.host;
2900+ NodeFX.superclass.constructor.apply(this, arguments);
2901+};
2902+
2903+NodeFX.NAME = "nodefx";
2904+NodeFX.NS = "fx";
2905+
2906+Y.extend(NodeFX, Y.Anim);
2907+
2908+Y.namespace('Plugin');
2909+Y.Plugin.NodeFX = NodeFX;
2910+
2911+
2912+}, '3.5.1' ,{requires:['node-pluginhost', 'anim-base']});
2913
2914=== added file 'debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-min.js'
2915--- debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-min.js 1970-01-01 00:00:00 +0000
2916+++ debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin-min.js 2013-02-02 01:30:27 +0000
2917@@ -0,0 +1,7 @@
2918+/*
2919+YUI 3.5.1 (build 22)
2920+Copyright 2012 Yahoo! Inc. All rights reserved.
2921+Licensed under the BSD License.
2922+http://yuilibrary.com/license/
2923+*/
2924+YUI.add("anim-node-plugin",function(b){var a=function(c){c=(c)?b.merge(c):{};c.node=c.host;a.superclass.constructor.apply(this,arguments);};a.NAME="nodefx";a.NS="fx";b.extend(a,b.Anim);b.namespace("Plugin");b.Plugin.NodeFX=a;},"3.5.1",{requires:["node-pluginhost","anim-base"]});
2925\ No newline at end of file
2926
2927=== added file 'debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin.js'
2928--- debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin.js 1970-01-01 00:00:00 +0000
2929+++ debian/extras/jslibs/yui/anim-node-plugin/anim-node-plugin.js 2013-02-02 01:30:27 +0000
2930@@ -0,0 +1,32 @@
2931+/*
2932+YUI 3.5.1 (build 22)
2933+Copyright 2012 Yahoo! Inc. All rights reserved.
2934+Licensed under the BSD License.
2935+http://yuilibrary.com/license/
2936+*/
2937+YUI.add('anim-node-plugin', function(Y) {
2938+
2939+/**
2940+ * Binds an Anim instance to a Node instance
2941+ * @module anim
2942+ * @class Plugin.NodeFX
2943+ * @extends Base
2944+ * @submodule anim-node-plugin
2945+ */
2946+
2947+var NodeFX = function(config) {
2948+ config = (config) ? Y.merge(config) : {};
2949+ config.node = config.host;
2950+ NodeFX.superclass.constructor.apply(this, arguments);
2951+};
2952+
2953+NodeFX.NAME = "nodefx";
2954+NodeFX.NS = "fx";
2955+
2956+Y.extend(NodeFX, Y.Anim);
2957+
2958+Y.namespace('Plugin');
2959+Y.Plugin.NodeFX = NodeFX;
2960+
2961+
2962+}, '3.5.1' ,{requires:['node-pluginhost', 'anim-base']});
2963
2964=== added directory 'debian/extras/jslibs/yui/anim-scroll'
2965=== added file 'debian/extras/jslibs/yui/anim-scroll/anim-scroll-debug.js'
2966--- debian/extras/jslibs/yui/anim-scroll/anim-scroll-debug.js 1970-01-01 00:00:00 +0000
2967+++ debian/extras/jslibs/yui/anim-scroll/anim-scroll-debug.js 2013-02-02 01:30:27 +0000
2968@@ -0,0 +1,44 @@
2969+/*
2970+YUI 3.5.1 (build 22)
2971+Copyright 2012 Yahoo! Inc. All rights reserved.
2972+Licensed under the BSD License.
2973+http://yuilibrary.com/license/
2974+*/
2975+YUI.add('anim-scroll', function(Y) {
2976+
2977+/**
2978+ * Adds support for the <code>scroll</code> property in <code>to</code>
2979+ * and <code>from</code> attributes.
2980+ * @module anim
2981+ * @submodule anim-scroll
2982+ */
2983+
2984+var NUM = Number;
2985+
2986+//TODO: deprecate for scrollTop/Left properties?
2987+Y.Anim.behaviors.scroll = {
2988+ set: function(anim, att, from, to, elapsed, duration, fn) {
2989+ var
2990+ node = anim._node,
2991+ val = ([
2992+ fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),
2993+ fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)
2994+ ]);
2995+
2996+ if (val[0]) {
2997+ node.set('scrollLeft', val[0]);
2998+ }
2999+
3000+ if (val[1]) {
3001+ node.set('scrollTop', val[1]);
3002+ }
3003+ },
3004+ get: function(anim) {
3005+ var node = anim._node;
3006+ return [node.get('scrollLeft'), node.get('scrollTop')];
3007+ }
3008+};
3009+
3010+
3011+
3012+}, '3.5.1' ,{requires:['anim-base']});
3013
3014=== added file 'debian/extras/jslibs/yui/anim-scroll/anim-scroll-min.js'
3015--- debian/extras/jslibs/yui/anim-scroll/anim-scroll-min.js 1970-01-01 00:00:00 +0000
3016+++ debian/extras/jslibs/yui/anim-scroll/anim-scroll-min.js 2013-02-02 01:30:27 +0000
3017@@ -0,0 +1,7 @@
3018+/*
3019+YUI 3.5.1 (build 22)
3020+Copyright 2012 Yahoo! Inc. All rights reserved.
3021+Licensed under the BSD License.
3022+http://yuilibrary.com/license/
3023+*/
3024+YUI.add("anim-scroll",function(b){var a=Number;b.Anim.behaviors.scroll={set:function(f,g,i,j,k,e,h){var d=f._node,c=([h(k,a(i[0]),a(j[0])-a(i[0]),e),h(k,a(i[1]),a(j[1])-a(i[1]),e)]);if(c[0]){d.set("scrollLeft",c[0]);}if(c[1]){d.set("scrollTop",c[1]);}},get:function(d){var c=d._node;return[c.get("scrollLeft"),c.get("scrollTop")];}};},"3.5.1",{requires:["anim-base"]});
3025\ No newline at end of file
3026
3027=== added file 'debian/extras/jslibs/yui/anim-scroll/anim-scroll.js'
3028--- debian/extras/jslibs/yui/anim-scroll/anim-scroll.js 1970-01-01 00:00:00 +0000
3029+++ debian/extras/jslibs/yui/anim-scroll/anim-scroll.js 2013-02-02 01:30:27 +0000
3030@@ -0,0 +1,44 @@
3031+/*
3032+YUI 3.5.1 (build 22)
3033+Copyright 2012 Yahoo! Inc. All rights reserved.
3034+Licensed under the BSD License.
3035+http://yuilibrary.com/license/
3036+*/
3037+YUI.add('anim-scroll', function(Y) {
3038+
3039+/**
3040+ * Adds support for the <code>scroll</code> property in <code>to</code>
3041+ * and <code>from</code> attributes.
3042+ * @module anim
3043+ * @submodule anim-scroll
3044+ */
3045+
3046+var NUM = Number;
3047+
3048+//TODO: deprecate for scrollTop/Left properties?
3049+Y.Anim.behaviors.scroll = {
3050+ set: function(anim, att, from, to, elapsed, duration, fn) {
3051+ var
3052+ node = anim._node,
3053+ val = ([
3054+ fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),
3055+ fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)
3056+ ]);
3057+
3058+ if (val[0]) {
3059+ node.set('scrollLeft', val[0]);
3060+ }
3061+
3062+ if (val[1]) {
3063+ node.set('scrollTop', val[1]);
3064+ }
3065+ },
3066+ get: function(anim) {
3067+ var node = anim._node;
3068+ return [node.get('scrollLeft'), node.get('scrollTop')];
3069+ }
3070+};
3071+
3072+
3073+
3074+}, '3.5.1' ,{requires:['anim-base']});
3075
3076=== added directory 'debian/extras/jslibs/yui/anim-shape-transform'
3077=== added file 'debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-debug.js'
3078--- debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-debug.js 1970-01-01 00:00:00 +0000
3079+++ debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-debug.js 2013-02-02 01:30:27 +0000
3080@@ -0,0 +1,112 @@
3081+/*
3082+YUI 3.5.1 (build 22)
3083+Copyright 2012 Yahoo! Inc. All rights reserved.
3084+Licensed under the BSD License.
3085+http://yuilibrary.com/license/
3086+*/
3087+YUI.add('anim-shape-transform', function(Y) {
3088+
3089+/**
3090+ * Adds support for the <code>transform</code> attribute of <code>Graphic</code>
3091+ * <code>Shape</code> instances.
3092+ * @module anim
3093+ * @submodule anim-shape-transform
3094+ */
3095+ var NUM = Number,
3096+ TO,
3097+ TOSTRING;
3098+
3099+ Y.Anim.behaviors.transform = {
3100+ set: function(anim, att, from, to, elapsed, duration, fn) {
3101+ var node = anim._node,
3102+ transform = "",
3103+ transformTo,
3104+ transformFrom,
3105+ toArgs,
3106+ fromArgs,
3107+ i = 0,
3108+ j,
3109+ argLen,
3110+ len;
3111+ to = TO;
3112+ len = TO.length;
3113+ for(; i < len; ++i)
3114+ {
3115+ toArgs = to[i].concat();
3116+ fromArgs = from[i].concat();
3117+ transformTo = toArgs.shift();
3118+ transformFrom = fromArgs.shift();
3119+ argLen = toArgs.length;
3120+ transform += transformTo + "(";
3121+ for(j = 0; j < argLen; ++j)
3122+ {
3123+ transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);
3124+ if(j < argLen - 1)
3125+ {
3126+ transform += ", ";
3127+ }
3128+ }
3129+ transform += ");";
3130+ }
3131+ if(transform)
3132+ {
3133+ node.set('transform', transform);
3134+ }
3135+ node._transform = TOSTRING;
3136+ },
3137+
3138+ get: function(anim) {
3139+ var node = anim._node,
3140+ fromMatrix = node.matrix,
3141+ toAttr = anim.get("to") || {},
3142+ toString = anim.get("to").transform,
3143+ fromString = node.get("transform"),
3144+ toArray = Y.MatrixUtil.getTransformArray(toString),
3145+ fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,
3146+ toMatrix,
3147+ i,
3148+ len,
3149+ transformFunction,
3150+ from;
3151+ if(toArray)
3152+ {
3153+ if(!fromArray || fromArray.length < 1)
3154+ {
3155+ fromArray = [];
3156+ len = toArray.length;
3157+ for(i = 0; i < len; ++i)
3158+ {
3159+ transformFunction = toArray[i][0];
3160+ fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);
3161+ }
3162+ TO = toArray;
3163+ from = fromArray;
3164+ }
3165+ else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))
3166+ {
3167+ TO = toArray;
3168+ from = fromArray;
3169+ }
3170+ else
3171+ {
3172+ toMatrix = new Y.Matrix();
3173+ len = toArray.length;
3174+ for(i = 0; i < len; ++i)
3175+ {
3176+ transformFunction = toArray[i].shift();
3177+ transformFunction = transformFunction == "matrix" ? "multiply" : transformFunction;
3178+ toMatrix[transformFunction].apply(toMatrix, toArray[i]);
3179+ }
3180+
3181+ TO = toMatrix.decompose();
3182+ from = fromMatrix.decompose();
3183+ }
3184+ }
3185+ TOSTRING = toString;
3186+ return from;
3187+ }
3188+ };
3189+
3190+
3191+
3192+}, '3.5.1' ,{requires:['anim-base','matrix']});
3193
3194=== added file 'debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-min.js'
3195--- debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-min.js 1970-01-01 00:00:00 +0000
3196+++ debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform-min.js 2013-02-02 01:30:27 +0000
3197@@ -0,0 +1,7 @@
3198+/*
3199+YUI 3.5.1 (build 22)
3200+Copyright 2012 Yahoo! Inc. All rights reserved.
3201+Licensed under the BSD License.
3202+http://yuilibrary.com/license/
3203+*/
3204+YUI.add("anim-shape-transform",function(d){var b=Number,a,c;d.Anim.behaviors.transform={set:function(k,q,t,u,v,h,s){var g=k._node,f="",r,n,w,e,m=0,l,p,o;u=a;o=a.length;for(;m<o;++m){w=u[m].concat();e=t[m].concat();r=w.shift();n=e.shift();p=w.length;f+=r+"(";for(l=0;l<p;++l){f+=s(v,b(e[l]),b(w[l])-b(e[l]),h);if(l<p-1){f+=", ";}}f+=");";}if(f){g.set("transform",f);}g._transform=c;},get:function(k){var j=k._node,h=j.matrix,r=k.get("to")||{},e=k.get("to").transform,g=j.get("transform"),l=d.MatrixUtil.getTransformArray(e),q=g?d.MatrixUtil.getTransformArray(g):null,n,m,o,f,p;if(l){if(!q||q.length<1){q=[];o=l.length;for(m=0;m<o;++m){f=l[m][0];q[m]=d.MatrixUtil.getTransformFunctionArray(f);}a=l;p=q;}else{if(d.MatrixUtil.compareTransformSequence(l,q)){a=l;p=q;}else{n=new d.Matrix();o=l.length;for(m=0;m<o;++m){f=l[m].shift();f=f=="matrix"?"multiply":f;n[f].apply(n,l[m]);}a=n.decompose();p=h.decompose();}}}c=e;return p;}};},"3.5.1",{requires:["anim-base","matrix"]});
3205\ No newline at end of file
3206
3207=== added file 'debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform.js'
3208--- debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform.js 1970-01-01 00:00:00 +0000
3209+++ debian/extras/jslibs/yui/anim-shape-transform/anim-shape-transform.js 2013-02-02 01:30:27 +0000
3210@@ -0,0 +1,112 @@
3211+/*
3212+YUI 3.5.1 (build 22)
3213+Copyright 2012 Yahoo! Inc. All rights reserved.
3214+Licensed under the BSD License.
3215+http://yuilibrary.com/license/
3216+*/
3217+YUI.add('anim-shape-transform', function(Y) {
3218+
3219+/**
3220+ * Adds support for the <code>transform</code> attribute of <code>Graphic</code>
3221+ * <code>Shape</code> instances.
3222+ * @module anim
3223+ * @submodule anim-shape-transform
3224+ */
3225+ var NUM = Number,
3226+ TO,
3227+ TOSTRING;
3228+
3229+ Y.Anim.behaviors.transform = {
3230+ set: function(anim, att, from, to, elapsed, duration, fn) {
3231+ var node = anim._node,
3232+ transform = "",
3233+ transformTo,
3234+ transformFrom,
3235+ toArgs,
3236+ fromArgs,
3237+ i = 0,
3238+ j,
3239+ argLen,
3240+ len;
3241+ to = TO;
3242+ len = TO.length;
3243+ for(; i < len; ++i)
3244+ {
3245+ toArgs = to[i].concat();
3246+ fromArgs = from[i].concat();
3247+ transformTo = toArgs.shift();
3248+ transformFrom = fromArgs.shift();
3249+ argLen = toArgs.length;
3250+ transform += transformTo + "(";
3251+ for(j = 0; j < argLen; ++j)
3252+ {
3253+ transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);
3254+ if(j < argLen - 1)
3255+ {
3256+ transform += ", ";
3257+ }
3258+ }
3259+ transform += ");";
3260+ }
3261+ if(transform)
3262+ {
3263+ node.set('transform', transform);
3264+ }
3265+ node._transform = TOSTRING;
3266+ },
3267+
3268+ get: function(anim) {
3269+ var node = anim._node,
3270+ fromMatrix = node.matrix,
3271+ toAttr = anim.get("to") || {},
3272+ toString = anim.get("to").transform,
3273+ fromString = node.get("transform"),
3274+ toArray = Y.MatrixUtil.getTransformArray(toString),
3275+ fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,
3276+ toMatrix,
3277+ i,
3278+ len,
3279+ transformFunction,
3280+ from;
3281+ if(toArray)
3282+ {
3283+ if(!fromArray || fromArray.length < 1)
3284+ {
3285+ fromArray = [];
3286+ len = toArray.length;
3287+ for(i = 0; i < len; ++i)
3288+ {
3289+ transformFunction = toArray[i][0];
3290+ fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);
3291+ }
3292+ TO = toArray;
3293+ from = fromArray;
3294+ }
3295+ else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))
3296+ {
3297+ TO = toArray;
3298+ from = fromArray;
3299+ }
3300+ else
3301+ {
3302+ toMatrix = new Y.Matrix();
3303+ len = toArray.length;
3304+ for(i = 0; i < len; ++i)
3305+ {
3306+ transformFunction = toArray[i].shift();
3307+ transformFunction = transformFunction == "matrix" ? "multiply" : transformFunction;
3308+ toMatrix[transformFunction].apply(toMatrix, toArray[i]);
3309+ }
3310+
3311+ TO = toMatrix.decompose();
3312+ from = fromMatrix.decompose();
3313+ }
3314+ }
3315+ TOSTRING = toString;
3316+ return from;
3317+ }
3318+ };
3319+
3320+
3321+
3322+}, '3.5.1' ,{requires:['anim-base','matrix']});
3323
3324=== added directory 'debian/extras/jslibs/yui/anim-xy'
3325=== added file 'debian/extras/jslibs/yui/anim-xy/anim-xy-debug.js'
3326--- debian/extras/jslibs/yui/anim-xy/anim-xy-debug.js 1970-01-01 00:00:00 +0000
3327+++ debian/extras/jslibs/yui/anim-xy/anim-xy-debug.js 2013-02-02 01:30:27 +0000
3328@@ -0,0 +1,32 @@
3329+/*
3330+YUI 3.5.1 (build 22)
3331+Copyright 2012 Yahoo! Inc. All rights reserved.
3332+Licensed under the BSD License.
3333+http://yuilibrary.com/license/
3334+*/
3335+YUI.add('anim-xy', function(Y) {
3336+
3337+/**
3338+ * Adds support for the <code>xy</code> property in <code>from</code> and
3339+ * <code>to</code> attributes.
3340+ * @module anim
3341+ * @submodule anim-xy
3342+ */
3343+
3344+var NUM = Number;
3345+
3346+Y.Anim.behaviors.xy = {
3347+ set: function(anim, att, from, to, elapsed, duration, fn) {
3348+ anim._node.setXY([
3349+ fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),
3350+ fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)
3351+ ]);
3352+ },
3353+ get: function(anim) {
3354+ return anim._node.getXY();
3355+ }
3356+};
3357+
3358+
3359+
3360+}, '3.5.1' ,{requires:['anim-base', 'node-screen']});
3361
3362=== added file 'debian/extras/jslibs/yui/anim-xy/anim-xy-min.js'
3363--- debian/extras/jslibs/yui/anim-xy/anim-xy-min.js 1970-01-01 00:00:00 +0000
3364+++ debian/extras/jslibs/yui/anim-xy/anim-xy-min.js 2013-02-02 01:30:27 +0000
3365@@ -0,0 +1,7 @@
3366+/*
3367+YUI 3.5.1 (build 22)
3368+Copyright 2012 Yahoo! Inc. All rights reserved.
3369+Licensed under the BSD License.
3370+http://yuilibrary.com/license/
3371+*/
3372+YUI.add("anim-xy",function(b){var a=Number;b.Anim.behaviors.xy={set:function(f,d,i,h,c,g,e){f._node.setXY([e(c,a(i[0]),a(h[0])-a(i[0]),g),e(c,a(i[1]),a(h[1])-a(i[1]),g)]);},get:function(c){return c._node.getXY();}};},"3.5.1",{requires:["anim-base","node-screen"]});
3373\ No newline at end of file
3374
3375=== added file 'debian/extras/jslibs/yui/anim-xy/anim-xy.js'
3376--- debian/extras/jslibs/yui/anim-xy/anim-xy.js 1970-01-01 00:00:00 +0000
3377+++ debian/extras/jslibs/yui/anim-xy/anim-xy.js 2013-02-02 01:30:27 +0000
3378@@ -0,0 +1,32 @@
3379+/*
3380+YUI 3.5.1 (build 22)
3381+Copyright 2012 Yahoo! Inc. All rights reserved.
3382+Licensed under the BSD License.
3383+http://yuilibrary.com/license/
3384+*/
3385+YUI.add('anim-xy', function(Y) {
3386+
3387+/**
3388+ * Adds support for the <code>xy</code> property in <code>from</code> and
3389+ * <code>to</code> attributes.
3390+ * @module anim
3391+ * @submodule anim-xy
3392+ */
3393+
3394+var NUM = Number;
3395+
3396+Y.Anim.behaviors.xy = {
3397+ set: function(anim, att, from, to, elapsed, duration, fn) {
3398+ anim._node.setXY([
3399+ fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),
3400+ fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)
3401+ ]);
3402+ },
3403+ get: function(anim) {
3404+ return anim._node.getXY();
3405+ }
3406+};
3407+
3408+
3409+
3410+}, '3.5.1' ,{requires:['anim-base', 'node-screen']});
3411
3412=== added directory 'debian/extras/jslibs/yui/app-base'
3413=== added file 'debian/extras/jslibs/yui/app-base/app-base-debug.js'
3414--- debian/extras/jslibs/yui/app-base/app-base-debug.js 1970-01-01 00:00:00 +0000
3415+++ debian/extras/jslibs/yui/app-base/app-base-debug.js 2013-02-02 01:30:27 +0000
3416@@ -0,0 +1,1142 @@
3417+/*
3418+YUI 3.5.1 (build 22)
3419+Copyright 2012 Yahoo! Inc. All rights reserved.
3420+Licensed under the BSD License.
3421+http://yuilibrary.com/license/
3422+*/
3423+YUI.add('app-base', function(Y) {
3424+
3425+/**
3426+The App Framework provides simple MVC-like building blocks (models, model lists,
3427+views, and URL-based routing) for writing single-page JavaScript applications.
3428+
3429+@main app
3430+@module app
3431+@since 3.4.0
3432+**/
3433+
3434+/**
3435+Provides a top-level application component which manages navigation and views.
3436+
3437+@module app
3438+@submodule app-base
3439+@since 3.5.0
3440+**/
3441+
3442+// TODO: Better handling of lifecycle for registered views:
3443+//
3444+// * [!] Just redo basically everything with view management so there are no
3445+// pre-`activeViewChange` side effects and handle the rest of these things:
3446+//
3447+// * Seems like any view created via `createView` should listen for the view's
3448+// `destroy` event and use that to remove it from the `_viewsInfoMap`. I
3449+// should look at what ModelList does for Models as a reference.
3450+//
3451+// * Should we have a companion `destroyView()` method? Maybe this wouldn't be
3452+// needed if we have a `getView(name, create)` method, and already doing the
3453+// above? We could do `app.getView('foo').destroy()` and it would be removed
3454+// from the `_viewsInfoMap` as well.
3455+//
3456+// * Should we wait to call a view's `render()` method inside of the
3457+// `_attachView()` method?
3458+//
3459+// * Should named views support a collection of instances instead of just one?
3460+//
3461+
3462+var Lang = Y.Lang,
3463+ YObject = Y.Object,
3464+
3465+ PjaxBase = Y.PjaxBase,
3466+ Router = Y.Router,
3467+ View = Y.View,
3468+
3469+ getClassName = Y.ClassNameManager.getClassName,
3470+
3471+ win = Y.config.win,
3472+
3473+ App;
3474+
3475+/**
3476+Provides a top-level application component which manages navigation and views.
3477+
3478+This gives you a foundation and structure on which to build your application; it
3479+combines robust URL navigation with powerful routing and flexible view
3480+management.
3481+
3482+@class App.Base
3483+@param {Object} [config] The following are configuration properties that can be
3484+ specified _in addition_ to default attribute values and the non-attribute
3485+ properties provided by `Y.Base`:
3486+ @param {Object} [config.views] Hash of view-name to metadata used to
3487+ declaratively describe an application's views and their relationship with
3488+ the app and other views. The views specified here will override any defaults
3489+ provided by the `views` object on the `prototype`.
3490+@constructor
3491+@extends Base
3492+@uses View
3493+@uses Router
3494+@uses PjaxBase
3495+@since 3.5.0
3496+**/
3497+App = Y.Base.create('app', Y.Base, [View, Router, PjaxBase], {
3498+ // -- Public Properties ----------------------------------------------------
3499+
3500+ /**
3501+ Hash of view-name to metadata used to declaratively describe an
3502+ application's views and their relationship with the app and its other views.
3503+
3504+ The view metadata is composed of Objects keyed to a view-name that can have
3505+ any or all of the following properties:
3506+
3507+ * `type`: Function or a string representing the view constructor to use to
3508+ create view instances. If a string is used, the constructor function is
3509+ assumed to be on the `Y` object; e.g. `"SomeView"` -> `Y.SomeView`.
3510+
3511+ * `preserve`: Boolean for whether the view instance should be retained. By
3512+ default, the view instance will be destroyed when it is no longer the
3513+ `activeView`. If `true` the view instance will simply be `removed()`
3514+ from the DOM when it is no longer active. This is useful when the view
3515+ is frequently used and may be expensive to re-create.
3516+
3517+ * `parent`: String to another named view in this hash that represents the
3518+ parent view within the application's view hierarchy; e.g. a `"photo"`
3519+ view could have `"album"` has its `parent` view. This parent/child
3520+ relationship is a useful cue for things like transitions.
3521+
3522+ * `instance`: Used internally to manage the current instance of this named
3523+ view. This can be used if your view instance is created up-front, or if
3524+ you would rather manage the View lifecycle, but you probably should just
3525+ let this be handled for you.
3526+
3527+ If `views` are specified at instantiation time, the metadata in the `views`
3528+ Object here will be used as defaults when creating the instance's `views`.
3529+
3530+ Every `Y.App` instance gets its own copy of a `views` object so this Object
3531+ on the prototype will not be polluted.
3532+
3533+ @example
3534+ // Imagine that `Y.UsersView` and `Y.UserView` have been defined.
3535+ var app = new Y.App({
3536+ views: {
3537+ users: {
3538+ type : Y.UsersView,
3539+ preserve: true
3540+ },
3541+
3542+ user: {
3543+ type : Y.UserView,
3544+ parent: 'users'
3545+ }
3546+ }
3547+ });
3548+
3549+ @property views
3550+ @type Object
3551+ @default {}
3552+ @since 3.5.0
3553+ **/
3554+ views: {},
3555+
3556+ // -- Protected Properties -------------------------------------------------
3557+
3558+ /**
3559+ Map of view instance id (via `Y.stamp()`) to view-info object in `views`.
3560+
3561+ This mapping is used to tie a specific view instance back to its metadata by
3562+ adding a reference to the the related view info on the `views` object.
3563+
3564+ @property _viewInfoMap
3565+ @type Object
3566+ @default {}
3567+ @protected
3568+ @since 3.5.0
3569+ **/
3570+
3571+ // -- Lifecycle Methods ----------------------------------------------------
3572+ initializer: function (config) {
3573+ config || (config = {});
3574+
3575+ var views = {};
3576+
3577+ // Merges-in specified view metadata into local `views` object.
3578+ function mergeViewConfig(view, name) {
3579+ views[name] = Y.merge(views[name], view);
3580+ }
3581+
3582+ // First, each view in the `views` prototype object gets its metadata
3583+ // merged-in, providing the defaults.
3584+ YObject.each(this.views, mergeViewConfig);
3585+
3586+ // Then, each view in the specified `config.views` object gets its
3587+ // metadata merged-in.
3588+ YObject.each(config.views, mergeViewConfig);
3589+
3590+ // The resulting hodgepodge of metadata is then stored as the instance's
3591+ // `views` object, and no one's objects were harmed in the making.
3592+ this.views = views;
3593+ this._viewInfoMap = {};
3594+
3595+ // Using `bind()` to aid extensibility.
3596+ this.after('activeViewChange', Y.bind('_afterActiveViewChange', this));
3597+
3598+ // PjaxBase will bind click events when `html5` is `true`, so this just
3599+ // forces the binding when `serverRouting` and `html5` are both falsy.
3600+ if (!this.get('serverRouting')) {
3601+ this._pjaxBindUI();
3602+ }
3603+ },
3604+
3605+ // TODO: `destructor` to destroy the `activeView`?
3606+
3607+ // -- Public Methods -------------------------------------------------------
3608+
3609+ /**
3610+ Creates and returns a new view instance using the provided `name` to look up
3611+ the view info metadata defined in the `views` object. The passed-in `config`
3612+ object is passed to the view constructor function.
3613+
3614+ This function also maps a view instance back to its view info metadata.
3615+
3616+ @method createView
3617+ @param {String} name The name of a view defined on the `views` object.
3618+ @param {Object} [config] The configuration object passed to the view
3619+ constructor function when creating the new view instance.
3620+ @return {View} The new view instance.
3621+ @since 3.5.0
3622+ **/
3623+ createView: function (name, config) {
3624+ var viewInfo = this.getViewInfo(name),
3625+ type = (viewInfo && viewInfo.type) || View,
3626+ ViewConstructor, view;
3627+
3628+ // Looks for a namespaced constructor function on `Y`.
3629+ ViewConstructor = Lang.isString(type) ?
3630+ YObject.getValue(Y, type.split('.')) : type;
3631+
3632+ // Create the view instance and map it with its metadata.
3633+ view = new ViewConstructor(config);
3634+ this._viewInfoMap[Y.stamp(view, true)] = viewInfo;
3635+
3636+ return view;
3637+ },
3638+
3639+ /**
3640+ Returns the metadata associated with a view instance or view name defined on
3641+ the `views` object.
3642+
3643+ @method getViewInfo
3644+ @param {View|String} view View instance, or name of a view defined on the
3645+ `views` object.
3646+ @return {Object} The metadata for the view, or `undefined` if the view is
3647+ not registered.
3648+ @since 3.5.0
3649+ **/
3650+ getViewInfo: function (view) {
3651+ if (Lang.isString(view)) {
3652+ return this.views[view];
3653+ }
3654+
3655+ return view && this._viewInfoMap[Y.stamp(view, true)];
3656+ },
3657+
3658+ /**
3659+ Navigates to the specified URL if there is a route handler that matches. In
3660+ browsers capable of using HTML5 history or when `serverRouting` is falsy,
3661+ the navigation will be enhanced by firing the `navigate` event and having
3662+ the app handle the "request". When `serverRouting` is `true`, non-HTML5
3663+ browsers will navigate to the new URL via a full page reload.
3664+
3665+ When there is a route handler for the specified URL and it is being
3666+ navigated to, this method will return `true`, otherwise it will return
3667+ `false`.
3668+
3669+ **Note:** The specified URL _must_ be of the same origin as the current URL,
3670+ otherwise an error will be logged and navigation will not occur. This is
3671+ intended as both a security constraint and a purposely imposed limitation as
3672+ it does not make sense to tell the app to navigate to a URL on a
3673+ different scheme, host, or port.
3674+
3675+ @method navigate
3676+ @param {String} url The URL to navigate to. This must be of the same origin
3677+ as the current URL.
3678+ @param {Object} [options] Additional options to configure the navigation.
3679+ These are mixed into the `navigate` event facade.
3680+ @param {Boolean} [options.replace] Whether or not the current history
3681+ entry will be replaced, or a new entry will be created. Will default
3682+ to `true` if the specified `url` is the same as the current URL.
3683+ @param {Boolean} [options.force] Whether the enhanced navigation
3684+ should occur even in browsers without HTML5 history. Will default to
3685+ `true` when `serverRouting` is falsy.
3686+ @see PjaxBase.navigate()
3687+ **/
3688+ // Does not override `navigate()` but does use extra `options`.
3689+
3690+ /**
3691+ Renders this application by appending the `viewContainer` node to the
3692+ `container` node if it isn't already a child of the container, and the
3693+ `activeView` will be appended the view container, if it isn't already.
3694+
3695+ You should call this method at least once, usually after the initialization
3696+ of your app instance so the proper DOM structure is setup and optionally
3697+ append the container to the DOM if it's not there already.
3698+
3699+ You may override this method to customize the app's rendering, but you
3700+ should expect that the `viewContainer`'s contents will be modified by the
3701+ app for the purpose of rendering the `activeView` when it changes.
3702+
3703+ @method render
3704+ @chainable
3705+ @see View.render()
3706+ **/
3707+ render: function () {
3708+ var container = this.get('container'),
3709+ viewContainer = this.get('viewContainer'),
3710+ activeView = this.get('activeView'),
3711+ activeViewContainer = activeView && activeView.get('container'),
3712+ areSame = container.compareTo(viewContainer);
3713+
3714+ container.addClass(App.CSS_CLASS);
3715+ viewContainer.addClass(App.VIEWS_CSS_CLASS);
3716+
3717+ // Prevents needless shuffling around of nodes and maintains DOM order.
3718+ if (activeView && !viewContainer.contains(activeViewContainer)) {
3719+ viewContainer.appendChild(activeViewContainer);
3720+ }
3721+
3722+ // Prevents needless shuffling around of nodes and maintains DOM order.
3723+ if (!container.contains(viewContainer) && !areSame) {
3724+ container.appendChild(viewContainer);
3725+ }
3726+
3727+ return this;
3728+ },
3729+
3730+ /**
3731+ Sets which view is active/visible for the application. This will set the
3732+ app's `activeView` attribute to the specified `view`.
3733+
3734+ The `view` will be "attached" to this app, meaning it will be both rendered
3735+ into this app's `viewContainer` node and all of its events will bubble to
3736+ the app. The previous `activeView` will be "detached" from this app.
3737+
3738+ When a string-name is provided for a view which has been registered on this
3739+ app's `views` object, the referenced metadata will be used and the
3740+ `activeView` will be set to either a preserved view instance, or a new
3741+ instance of the registered view will be created using the specified `config`
3742+ object passed-into this method.
3743+
3744+ A callback function can be specified as either the third or fourth argument,
3745+ and this function will be called after the new `view` becomes the
3746+ `activeView`, is rendered to the `viewContainer`, and is ready to use.
3747+
3748+ @example
3749+ var app = new Y.App({
3750+ views: {
3751+ usersView: {
3752+ // Imagine that `Y.UsersView` has been defined.
3753+ type: Y.UsersView
3754+ }
3755+ },
3756+
3757+ users: new Y.ModelList()
3758+ });
3759+
3760+ app.route('/users/', function () {
3761+ this.showView('usersView', {users: this.get('users')});
3762+ });
3763+
3764+ app.render();
3765+ app.navigate('/uses/'); // => Creates a new `Y.UsersView` and shows it.
3766+
3767+ @method showView
3768+ @param {String|View} view The name of a view defined in the `views` object,
3769+ or a view instance which should become this app's `activeView`.
3770+ @param {Object} [config] Optional configuration to use when creating a new
3771+ view instance. This config object can also be used to update an existing
3772+ or preserved view's attributes when `options.update` is `true`.
3773+ @param {Object} [options] Optional object containing any of the following
3774+ properties:
3775+ @param {Function} [options.callback] Optional callback function to call
3776+ after new `activeView` is ready to use, the function will be passed:
3777+ @param {View} options.callback.view A reference to the new
3778+ `activeView`.
3779+ @param {Boolean} [options.prepend=false] Whether the `view` should be
3780+ prepended instead of appended to the `viewContainer`.
3781+ @param {Boolean} [options.render] Whether the `view` should be rendered.
3782+ **Note:** If no value is specified, a view instance will only be
3783+ rendered if it's newly created by this method.
3784+ @param {Boolean} [options.update=false] Whether an existing view should
3785+ have its attributes updated by passing the `config` object to its
3786+ `setAttrs()` method. **Note:** This option does not have an effect if
3787+ the `view` instance is created as a result of calling this method.
3788+ @param {Function} [callback] Optional callback Function to call after the
3789+ new `activeView` is ready to use. **Note:** this will override
3790+ `options.callback` and it can be specified as either the third or fourth
3791+ argument. The function will be passed the following:
3792+ @param {View} callback.view A reference to the new `activeView`.
3793+ @chainable
3794+ @since 3.5.0
3795+ **/
3796+ showView: function (view, config, options, callback) {
3797+ var viewInfo, created;
3798+
3799+ options || (options = {});
3800+
3801+ // Support the callback function being either the third or fourth arg.
3802+ if (callback) {
3803+ options.callback = callback;
3804+ } else if (Lang.isFunction(options)) {
3805+ options = {callback: options};
3806+ }
3807+
3808+ if (Lang.isString(view)) {
3809+ viewInfo = this.getViewInfo(view);
3810+
3811+ // Use the preserved view instance, or create a new view.
3812+ // TODO: Maybe we can remove the strict check for `preserve` and
3813+ // assume we'll use a View instance if it is there, and just check
3814+ // `preserve` when detaching?
3815+ if (viewInfo && viewInfo.preserve && viewInfo.instance) {
3816+ view = viewInfo.instance;
3817+
3818+ // Make sure there's a mapping back to the view metadata.
3819+ this._viewInfoMap[Y.stamp(view, true)] = viewInfo;
3820+ } else {
3821+ // TODO: Add the app as a bubble target during construction, but
3822+ // make sure to check that it isn't already in `bubbleTargets`!
3823+ // This will allow the app to be notified for about _all_ of the
3824+ // view's events. **Note:** This should _only_ happen if the
3825+ // view is created _after_ `activeViewChange`.
3826+
3827+ view = this.createView(view, config);
3828+ created = true;
3829+ }
3830+ }
3831+
3832+ // Update the specified or preserved `view` when signaled to do so.
3833+ // There's no need to updated a view if it was _just_ created.
3834+ if (options.update && !created) {
3835+ view.setAttrs(config);
3836+ }
3837+
3838+ // TODO: Hold off on rendering the view until after it has been
3839+ // "attached", and move the call to render into `_attachView()`.
3840+
3841+ // When a value is specified for `options.render`, prefer it because it
3842+ // represents the developer's intent. When no value is specified, the
3843+ // `view` will only be rendered if it was just created.
3844+ if ('render' in options) {
3845+ options.render && view.render();
3846+ } else if (created) {
3847+ view.render();
3848+ }
3849+
3850+ return this._set('activeView', view, {options: options});
3851+ },
3852+
3853+ // -- Protected Methods ----------------------------------------------------
3854+
3855+ /**
3856+ Helper method to attach the view instance to the application by making the
3857+ app a bubble target of the view, append the view to the `viewContainer`, and
3858+ assign it to the `instance` property of the associated view info metadata.
3859+
3860+ @method _attachView
3861+ @param {View} view View to attach.
3862+ @param {Boolean} prepend=false Whether the view should be prepended instead
3863+ of appended to the `viewContainer`.
3864+ @protected
3865+ @since 3.5.0
3866+ **/
3867+ _attachView: function (view, prepend) {
3868+ if (!view) {
3869+ return;
3870+ }
3871+
3872+ var viewInfo = this.getViewInfo(view),
3873+ viewContainer = this.get('viewContainer');
3874+
3875+ view.addTarget(this);
3876+ viewInfo && (viewInfo.instance = view);
3877+
3878+ // TODO: Attach events here for persevered Views?
3879+ // See related TODO in `_detachView`.
3880+
3881+ // TODO: Actually render the view here so that it gets "attached" before
3882+ // it gets rendered?
3883+
3884+ // Insert view into the DOM.
3885+ viewContainer[prepend ? 'prepend' : 'append'](view.get('container'));
3886+ },
3887+
3888+ /**
3889+ Overrides View's container destruction to deal with the `viewContainer` and
3890+ checks to make sure not to remove and purge the `<body>`.
3891+
3892+ @method _destroyContainer
3893+ @protected
3894+ @see View._destroyContainer()
3895+ **/
3896+ _destroyContainer: function () {
3897+ var container = this.get('container'),
3898+ viewContainer = this.get('viewContainer'),
3899+ areSame = container.compareTo(viewContainer);
3900+
3901+ // We do not want to remove or destroy the `<body>`.
3902+ if (Y.one('body').compareTo(container)) {
3903+ // Just clean-up our events listeners.
3904+ this.detachEvents();
3905+
3906+ // Clean-up `yui3-app` CSS class on the `container`.
3907+ container && container.removeClass(App.CSS_CLASS);
3908+
3909+ if (areSame) {
3910+ // Clean-up `yui3-app-views` CSS class on the `container`.
3911+ container && container.removeClass(App.VIEWS_CSS_CLASS);
3912+ } else {
3913+ // Destroy and purge the `viewContainer`.
3914+ viewContainer && viewContainer.remove(true);
3915+ }
3916+
3917+ return;
3918+ }
3919+
3920+ // Remove and purge events from both containers.
3921+ viewContainer && viewContainer.remove(true);
3922+ !areSame && container && container.remove(true);
3923+ },
3924+
3925+ /**
3926+ Helper method to detach the view instance from the application by removing
3927+ the application as a bubble target of the view, and either just removing the
3928+ view if it is intended to be preserved, or destroying the instance
3929+ completely.
3930+
3931+ @method _detachView
3932+ @param {View} view View to detach.
3933+ @protected
3934+ @since 3.5.0
3935+ **/
3936+ _detachView: function (view) {
3937+ if (!view) {
3938+ return;
3939+ }
3940+
3941+ var viewInfo = this.getViewInfo(view) || {};
3942+
3943+ if (viewInfo.preserve) {
3944+ view.remove();
3945+ // TODO: Detach events here for preserved Views? It is possible that
3946+ // some event subscriptions are made on elements other than the
3947+ // View's `container`.
3948+ } else {
3949+ view.destroy({remove: true});
3950+
3951+ // TODO: The following should probably happen automagically from
3952+ // `destroy()` being called! Possibly `removeTarget()` as well.
3953+
3954+ // Remove from view to view-info map.
3955+ delete this._viewInfoMap[Y.stamp(view, true)];
3956+
3957+ // Remove from view-info instance property.
3958+ if (view === viewInfo.instance) {
3959+ delete viewInfo.instance;
3960+ }
3961+ }
3962+
3963+ view.removeTarget(this);
3964+ },
3965+
3966+ /**
3967+ Getter for the `viewContainer` attribute.
3968+
3969+ @method _getViewContainer
3970+ @param {Node|null} value Current attribute value.
3971+ @return {Node} View container node.
3972+ @protected
3973+ @since 3.5.0
3974+ **/
3975+ _getViewContainer: function (value) {
3976+ // This wackiness is necessary to enable fully lazy creation of the
3977+ // container node both when no container is specified and when one is
3978+ // specified via a valueFn.
3979+
3980+ if (!value && !this._viewContainer) {
3981+ // Create a default container and set that as the new attribute
3982+ // value. The `this._viewContainer` property prevents infinite
3983+ // recursion.
3984+ value = this._viewContainer = this.create();
3985+ this._set('viewContainer', value);
3986+ }
3987+
3988+ return value;
3989+ },
3990+
3991+ /**
3992+ Gets the current full URL. When `html5` is false, the URL will first be
3993+ upgraded before it's returned.
3994+
3995+ @method _getURL
3996+ @return {String} URL.
3997+ @protected
3998+ @see Router._getURL()
3999+ **/
4000+ _getURL: function () {
4001+ var url = Y.getLocation().toString();
4002+ return this._html5 ? url : this._upgradeURL(url);
4003+ },
4004+
4005+ /**
4006+ Provides the default value for the `html5` attribute.
4007+
4008+ The value returned is dependent on the value of the `serverRouting`
4009+ attribute. When `serverRouting` is explicit set to `false` (not just falsy),
4010+ the default value for `html5` will be set to `false` for *all* browsers.
4011+
4012+ When `serverRouting` is `true` or `undefined` the returned value will be
4013+ dependent on the browser's capability of using HTML5 history.
4014+
4015+ @method _initHtml5
4016+ @return {Boolean} Whether or not HTML5 history should be used.
4017+ @protected
4018+ @since 3.5.0
4019+ **/
4020+ _initHtml5: function () {
4021+ // When `serverRouting` is explicitly set to `false` (not just falsy),
4022+ // forcing hash-based URLs in all browsers.
4023+ if (this.get('serverRouting') === false) {
4024+ return false;
4025+ } else {
4026+ return Router.html5;
4027+ }
4028+ },
4029+
4030+ /**
4031+ Determines if the specified `view` is configured as a child of the specified
4032+ `parent` view. This requires both views to be either named-views, or view
4033+ instances created using configuration data that exists in the `views`
4034+ object, e.g. created by the `createView()` or `showView()` method.
4035+
4036+ @method _isChildView
4037+ @param {View|String} view The name of a view defined in the `views` object,
4038+ or a view instance.
4039+ @param {View|String} parent The name of a view defined in the `views`
4040+ object, or a view instance.
4041+ @return {Boolean} Whether the view is configured as a child of the parent.
4042+ @protected
4043+ @since 3.5.0
4044+ **/
4045+ _isChildView: function (view, parent) {
4046+ var viewInfo = this.getViewInfo(view),
4047+ parentInfo = this.getViewInfo(parent);
4048+
4049+ if (viewInfo && parentInfo) {
4050+ return this.getViewInfo(viewInfo.parent) === parentInfo;
4051+ }
4052+
4053+ return false;
4054+ },
4055+
4056+ /**
4057+ Determines if the specified `view` is configured as the parent of the
4058+ specified `child` view. This requires both views to be either named-views,
4059+ or view instances created using configuration data that exists in the
4060+ `views` object, e.g. created by the `createView()` or `showView()` method.
4061+
4062+ @method _isParentView
4063+ @param {View|String} view The name of a view defined in the `views` object,
4064+ or a view instance.
4065+ @param {View|String} parent The name of a view defined in the `views`
4066+ object, or a view instance.
4067+ @return {Boolean} Whether the view is configured as the parent of the child.
4068+ @protected
4069+ @since 3.5.0
4070+ **/
4071+ _isParentView: function (view, child) {
4072+ var viewInfo = this.getViewInfo(view),
4073+ childInfo = this.getViewInfo(child);
4074+
4075+ if (viewInfo && childInfo) {
4076+ return this.getViewInfo(childInfo.parent) === viewInfo;
4077+ }
4078+
4079+ return false;
4080+ },
4081+
4082+ /**
4083+ Underlying implementation for `navigate()`.
4084+
4085+ @method _navigate
4086+ @param {String} url The fully-resolved URL that the app should dispatch to
4087+ its route handlers to fulfill the enhanced navigation "request", or use to
4088+ update `window.location` in non-HTML5 history capable browsers when
4089+ `serverRouting` is `true`.
4090+ @param {Object} [options] Additional options to configure the navigation.
4091+ These are mixed into the `navigate` event facade.
4092+ @param {Boolean} [options.replace] Whether or not the current history
4093+ entry will be replaced, or a new entry will be created. Will default
4094+ to `true` if the specified `url` is the same as the current URL.
4095+ @param {Boolean} [options.force] Whether the enhanced navigation
4096+ should occur even in browsers without HTML5 history. Will default to
4097+ `true` when `serverRouting` is falsy.
4098+ @protected
4099+ @see PjaxBase._navigate()
4100+ **/
4101+ _navigate: function (url, options) {
4102+ url = this._upgradeURL(url);
4103+
4104+ options || (options = {});
4105+
4106+ if (!this.get('serverRouting')) {
4107+ // Force navigation to be enhanced and handled by the app when
4108+ // `serverRouting` is falsy because the server might not be able to
4109+ // properly handle the request.
4110+ 'force' in options || (options.force = true);
4111+ }
4112+
4113+ return PjaxBase.prototype._navigate.call(this, url, options);
4114+ },
4115+
4116+ /**
4117+ Will either save a history entry using `pushState()` or the location hash,
4118+ or gracefully-degrade to sending a request to the server causing a full-page
4119+ reload.
4120+
4121+ Overrides Router's `_save()` method to preform graceful-degradation when the
4122+ app's `serverRouting` is `true` and `html5` is `false` by updating the full
4123+ URL via standard assignment to `window.location` or by calling
4124+ `window.location.replace()`; both of which will cause a request to the
4125+ server resulting in a full-page reload.
4126+
4127+ Otherwise this will just delegate off to Router's `_save()` method allowing
4128+ the client-side enhanced routing to occur.
4129+
4130+ @method _save
4131+ @param {String} [url] URL for the history entry.
4132+ @param {Boolean} [replace=false] If `true`, the current history entry will
4133+ be replaced instead of a new one being added.
4134+ @chainable
4135+ @protected
4136+ @see Router._save()
4137+ **/
4138+ _save: function (url, replace) {
4139+ // Forces full-path URLs to always be used by modifying
4140+ // `window.location` in non-HTML5 history capable browsers.
4141+ if (this.get('serverRouting') && !this.get('html5')) {
4142+ // Perform same-origin check on the specified URL.
4143+ if (!this._hasSameOrigin(url)) {
4144+ Y.error('Security error: The new URL must be of the same origin as the current URL.');
4145+ return this;
4146+ }
4147+
4148+ // Results in the URL's full path starting with '/'.
4149+ url = this._joinURL(url || '');
4150+
4151+ // Either replace the current history entry or create a new one
4152+ // while navigating to the `url`.
4153+ if (replace) {
4154+ win && win.location.replace(url);
4155+ } else {
4156+ win && (win.location = url);
4157+ }
4158+
4159+ return this;
4160+ }
4161+
4162+ return Router.prototype._save.apply(this, arguments);
4163+ },
4164+
4165+ /**
4166+ Performs the actual change of this app's `activeView` by attaching the
4167+ `newView` to this app, and detaching the `oldView` from this app using any
4168+ specified `options`.
4169+
4170+ The `newView` is attached to the app by rendering it to the `viewContainer`,
4171+ and making this app a bubble target of its events.
4172+
4173+ The `oldView` is detached from the app by removing it from the
4174+ `viewContainer`, and removing this app as a bubble target for its events.
4175+ The `oldView` will either be preserved or properly destroyed.
4176+
4177+ **Note:** The `activeView` attribute is read-only and can be changed by
4178+ calling the `showView()` method.
4179+
4180+ @method _uiSetActiveView
4181+ @param {View} newView The View which is now this app's `activeView`.
4182+ @param {View} [oldView] The View which was this app's `activeView`.
4183+ @param {Object} [options] Optional object containing any of the following
4184+ properties:
4185+ @param {Function} [options.callback] Optional callback function to call
4186+ after new `activeView` is ready to use, the function will be passed:
4187+ @param {View} options.callback.view A reference to the new
4188+ `activeView`.
4189+ @param {Boolean} [options.prepend=false] Whether the `view` should be
4190+ prepended instead of appended to the `viewContainer`.
4191+ @param {Boolean} [options.render] Whether the `view` should be rendered.
4192+ **Note:** If no value is specified, a view instance will only be
4193+ rendered if it's newly created by this method.
4194+ @param {Boolean} [options.update=false] Whether an existing view should
4195+ have its attributes updated by passing the `config` object to its
4196+ `setAttrs()` method. **Note:** This option does not have an effect if
4197+ the `view` instance is created as a result of calling this method.
4198+ @protected
4199+ @since 3.5.0
4200+ **/
4201+ _uiSetActiveView: function (newView, oldView, options) {
4202+ options || (options = {});
4203+
4204+ var callback = options.callback,
4205+ isChild = this._isChildView(newView, oldView),
4206+ isParent = !isChild && this._isParentView(newView, oldView),
4207+ prepend = !!options.prepend || isParent;
4208+
4209+ // Prevent detaching (thus removing) the view we want to show. Also hard
4210+ // to animate out and in, the same view.
4211+ if (newView === oldView) {
4212+ return callback && callback.call(this, newView);
4213+ }
4214+
4215+ this._attachView(newView, prepend);
4216+ this._detachView(oldView);
4217+
4218+ callback && callback.call(this, newView);
4219+ },
4220+
4221+ /**
4222+ Upgrades a hash-based URL to a full-path URL, if necessary.
4223+
4224+ The specified `url` will be upgraded if its of the same origin as the
4225+ current URL and has a path-like hash. URLs that don't need upgrading will be
4226+ returned as-is.
4227+
4228+ @example
4229+ app._upgradeURL('http://example.com/#/foo/'); // => 'http://example.com/foo/';
4230+
4231+ @method _upgradeURL
4232+ @param {String} url The URL to upgrade from hash-based to full-path.
4233+ @return {String} The upgraded URL, or the specified URL untouched.
4234+ @protected
4235+ @since 3.5.0
4236+ **/
4237+ _upgradeURL: function (url) {
4238+ // We should not try to upgrade paths for external URLs.
4239+ if (!this._hasSameOrigin(url)) {
4240+ return url;
4241+ }
4242+
4243+ // TODO: Should the `root` be removed first, and the hash only
4244+ // considered if in the form of '/#/'?
4245+ var hash = (url.match(/#(.*)$/) || [])[1] || '',
4246+ hashPrefix = Y.HistoryHash.hashPrefix;
4247+
4248+ // Strip any hash prefix, like hash-bangs.
4249+ if (hashPrefix && hash.indexOf(hashPrefix) === 0) {
4250+ hash = hash.replace(hashPrefix, '');
4251+ }
4252+
4253+ // If the hash looks like a URL path, assume it is, and upgrade it!
4254+ if (hash && hash.charAt(0) === '/') {
4255+ // Re-join with configured `root` before resolving.
4256+ url = this._resolveURL(this._joinURL(hash));
4257+ }
4258+
4259+ return url;
4260+ },
4261+
4262+ // -- Protected Event Handlers ---------------------------------------------
4263+
4264+ /**
4265+ Handles the application's `activeViewChange` event (which is fired when the
4266+ `activeView` attribute changes) by detaching the old view, attaching the new
4267+ view.
4268+
4269+ The `activeView` attribute is read-only, so the public API to change its
4270+ value is through the `showView()` method.
4271+
4272+ @method _afterActiveViewChange
4273+ @param {EventFacade} e
4274+ @protected
4275+ @since 3.5.0
4276+ **/
4277+ _afterActiveViewChange: function (e) {
4278+ this._uiSetActiveView(e.newVal, e.prevVal, e.options);
4279+ }
4280+}, {
4281+ ATTRS: {
4282+ /**
4283+ The application's active/visible view.
4284+
4285+ This attribute is read-only, to set the `activeView` use the
4286+ `showView()` method.
4287+
4288+ @attribute activeView
4289+ @type View
4290+ @default null
4291+ @readOnly
4292+ @see App.Base.showView()
4293+ @since 3.5.0
4294+ **/
4295+ activeView: {
4296+ value : null,
4297+ readOnly: true
4298+ },
4299+
4300+ /**
4301+ Container node which represents the application's bounding-box, into
4302+ which this app's content will be rendered.
4303+
4304+ The container node serves as the host for all DOM events attached by the
4305+ app. Delegation is used to handle events on children of the container,
4306+ allowing the container's contents to be re-rendered at any time without
4307+ losing event subscriptions.
4308+
4309+ The default container is the `<body>` Node, but you can override this in
4310+ a subclass, or by passing in a custom `container` config value at
4311+ instantiation time.
4312+
4313+ When `container` is overridden by a subclass or passed as a config
4314+ option at instantiation time, it may be provided as a selector string, a
4315+ DOM element, or a `Y.Node` instance. During initialization, this app's
4316+ `create()` method will be called to convert the container into a
4317+ `Y.Node` instance if it isn't one already and stamp it with the CSS
4318+ class: `"yui3-app"`.
4319+
4320+ The container is not added to the page automatically. This allows you to
4321+ have full control over how and when your app is actually rendered to
4322+ the page.
4323+
4324+ @attribute container
4325+ @type HTMLElement|Node|String
4326+ @default Y.one('body')
4327+ @initOnly
4328+ **/
4329+ container: {
4330+ valueFn: function () {
4331+ return Y.one('body');
4332+ }
4333+ },
4334+
4335+ /**
4336+ Whether or not this browser is capable of using HTML5 history.
4337+
4338+ This value is dependent on the value of `serverRouting` and will default
4339+ accordingly.
4340+
4341+ Setting this to `false` will force the use of hash-based history even on
4342+ HTML5 browsers, but please don't do this unless you understand the
4343+ consequences.
4344+
4345+ @attribute html5
4346+ @type Boolean
4347+ @initOnly
4348+ @see serverRouting
4349+ **/
4350+ html5: {
4351+ valueFn: '_initHtml5'
4352+ },
4353+
4354+ /**
4355+ CSS selector string used to filter link click events so that only the
4356+ links which match it will have the enhanced-navigation behavior of pjax
4357+ applied.
4358+
4359+ When a link is clicked and that link matches this selector, navigating
4360+ to the link's `href` URL using the enhanced, pjax, behavior will be
4361+ attempted; and the browser's default way to navigate to new pages will
4362+ be the fallback.
4363+
4364+ By default this selector will match _all_ links on the page.
4365+
4366+ @attribute linkSelector
4367+ @type String|Function
4368+ @default "a"
4369+ **/
4370+ linkSelector: {
4371+ value: 'a'
4372+ },
4373+
4374+ /**
4375+ Whether or not this application's server is capable of properly routing
4376+ all requests and rendering the initial state in the HTML responses.
4377+
4378+ This can have three different values, each having particular
4379+ implications on how the app will handle routing and navigation:
4380+
4381+ * `undefined`: The best form of URLs will be chosen based on the
4382+ capabilities of the browser. Given no information about the server
4383+ environmentm a balanced approach to routing and navigation is
4384+ chosen.
4385+
4386+ The server should be capable of handling full-path requests, since
4387+ full-URLs will be generated by browsers using HTML5 history. If this
4388+ is a client-side-only app the server could handle full-URL requests
4389+ by sending a redirect back to the root with a hash-based URL, e.g:
4390+
4391+ Request: http://example.com/users/1
4392+ Redirect to: http://example.com/#/users/1
4393+
4394+ * `true`: The server is *fully* capable of properly handling requests
4395+ to all full-path URLs the app can produce.
4396+
4397+ This is the best option for progressive-enhancement because it will
4398+ cause **all URLs to always have full-paths**, which means the server
4399+ will be able to accurately handle all URLs this app produces. e.g.
4400+
4401+ http://example.com/users/1
4402+
4403+ To meet this strict full-URL requirement, browsers which are not
4404+ capable of using HTML5 history will make requests to the server
4405+ resulting in full-page reloads.
4406+
4407+ * `false`: The server is *not* capable of properly handling requests
4408+ to all full-path URLs the app can produce, therefore all routing
4409+ will be handled by this App instance.
4410+
4411+ Be aware that this will cause **all URLs to always be hash-based**,
4412+ even in browsers that are capable of using HTML5 history. e.g.
4413+
4414+ http://example.com/#/users/1
4415+
4416+ A single-page or client-side-only app where the server sends a
4417+ "shell" page with JavaScript to the client might have this
4418+ restriction. If you're setting this to `false`, read the following:
4419+
4420+ **Note:** When this is set to `false`, the server will *never* receive
4421+ the full URL because browsers do not send the fragment-part to the
4422+ server, that is everything after and including the "#".
4423+
4424+ Consider the following example:
4425+
4426+ URL shown in browser: http://example.com/#/users/1
4427+ URL sent to server: http://example.com/
4428+
4429+ You should feel bad about hurting our precious web if you forcefully set
4430+ either `serverRouting` or `html5` to `false`, because you're basically
4431+ punching the web in the face here with your lossy URLs! Please make sure
4432+ you know what you're doing and that you understand the implications.
4433+
4434+ Ideally you should always prefer full-path URLs (not /#/foo/), and want
4435+ full-page reloads when the client's browser is not capable of enhancing
4436+ the experience using the HTML5 history APIs. Setting this to `true` is
4437+ the best option for progressive-enhancement (and graceful-degradation).
4438+
4439+ @attribute serverRouting
4440+ @type Boolean
4441+ @default undefined
4442+ @initOnly
4443+ @since 3.5.0
4444+ **/
4445+ serverRouting: {
4446+ value : undefined,
4447+ writeOnce: 'initOnly'
4448+ },
4449+
4450+ /**
4451+ The node into which this app's `views` will be rendered when they become
4452+ the `activeView`.
4453+
4454+ The view container node serves as the container to hold the app's
4455+ `activeView`. Each time the `activeView` is set via `showView()`, the
4456+ previous view will be removed from this node, and the new active view's
4457+ `container` node will be appended.
4458+
4459+ The default view container is a `<div>` Node, but you can override this
4460+ in a subclass, or by passing in a custom `viewContainer` config value at
4461+ instantiation time. The `viewContainer` may be provided as a selector
4462+ string, DOM element, or a `Y.Node` instance (having the `viewContainer`
4463+ and the `container` be the same node is also supported).
4464+
4465+ The app's `render()` method will stamp the view container with the CSS
4466+ class `"yui3-app-views"` and append it to the app's `container` node if
4467+ it isn't already, and any `activeView` will be appended to this node if
4468+ it isn't already.
4469+
4470+ @attribute viewContainer
4471+ @type HTMLElement|Node|String
4472+ @default Y.Node.create(this.containerTemplate)
4473+ @initOnly
4474+ @since 3.5.0
4475+ **/
4476+ viewContainer: {
4477+ getter : '_getViewContainer',
4478+ setter : Y.one,
4479+ writeOnce: true
4480+ }
4481+ },
4482+
4483+ // TODO: Should these go on the `prototype`?
4484+ // TODO: These should also just go in a `CLASS_NAMES` object.
4485+
4486+ /**
4487+ CSS class added to an app's `container` node.
4488+
4489+ @property CSS_CLASS
4490+ @type String
4491+ @default "yui3-app"
4492+ @static
4493+ @since 3.5.0
4494+ **/
4495+ CSS_CLASS: getClassName('app'),
4496+
4497+ /**
4498+ CSS class added to an app's `viewContainer` node.
4499+
4500+ @property VIEWS_CSS_CLASS
4501+ @type String
4502+ @default "yui3-app-views"
4503+ @static
4504+ @since 3.5.0
4505+ **/
4506+ VIEWS_CSS_CLASS: getClassName('app', 'views'),
4507+
4508+ /**
4509+ Properties that shouldn't be turned into ad-hoc attributes when passed to
4510+ App's constructor.
4511+
4512+ @property _NON_ATTRS_CFG
4513+ @type Array
4514+ @static
4515+ @protected
4516+ @since 3.5.0
4517+ **/
4518+ _NON_ATTRS_CFG: ['views']
4519+});
4520+
4521+// -- Namespace ----------------------------------------------------------------
4522+Y.namespace('App').Base = App;
4523+
4524+/**
4525+Provides a top-level application component which manages navigation and views.
4526+
4527+This gives you a foundation and structure on which to build your application; it
4528+combines robust URL navigation with powerful routing and flexible view
4529+management.
4530+
4531+`Y.App` is both a namespace and constructor function. The `Y.App` class is
4532+special in that any `Y.App` class extensions that are included in the YUI
4533+instance will be **auto-mixed** on to the `Y.App` class. Consider this example:
4534+
4535+ YUI().use('app-base', 'app-transitions', function (Y) {
4536+ // This will create two YUI Apps, `basicApp` will not have transitions,
4537+ // but `fancyApp` will have transitions support included and turn it on.
4538+ var basicApp = new Y.App.Base(),
4539+ fancyApp = new Y.App({transitions: true});
4540+ });
4541+
4542+@class App
4543+@param {Object} [config] The following are configuration properties that can be
4544+ specified _in addition_ to default attribute values and the non-attribute
4545+ properties provided by `Y.Base`:
4546+ @param {Object} [config.views] Hash of view-name to metadata used to
4547+ declaratively describe an application's views and their relationship with
4548+ the app and other views. The views specified here will override any defaults
4549+ provided by the `views` object on the `prototype`.
4550+@constructor
4551+@extends App.Base
4552+@uses App.Transitions
4553+@since 3.5.0
4554+**/
4555+Y.App = Y.mix(Y.Base.create('app', Y.App.Base, []), Y.App, true);
4556+
4557+
4558+}, '3.5.1' ,{requires:['classnamemanager', 'pjax-base', 'router', 'view']});
4559
4560=== added file 'debian/extras/jslibs/yui/app-base/app-base-min.js'
4561--- debian/extras/jslibs/yui/app-base/app-base-min.js 1970-01-01 00:00:00 +0000
4562+++ debian/extras/jslibs/yui/app-base/app-base-min.js 2013-02-02 01:30:27 +0000
4563@@ -0,0 +1,7 @@
4564+/*
4565+YUI 3.5.1 (build 22)
4566+Copyright 2012 Yahoo! Inc. All rights reserved.
4567+Licensed under the BSD License.
4568+http://yuilibrary.com/license/
4569+*/
4570+YUI.add("app-base",function(c){var g=c.Lang,i=c.Object,a=c.PjaxBase,d=c.Router,b=c.View,e=c.ClassNameManager.getClassName,h=c.config.win,f;f=c.Base.create("app",c.Base,[b,d,a],{views:{},initializer:function(k){k||(k={});var j={};function l(m,n){j[n]=c.merge(j[n],m);}i.each(this.views,l);i.each(k.views,l);this.views=j;this._viewInfoMap={};this.after("activeViewChange",c.bind("_afterActiveViewChange",this));if(!this.get("serverRouting")){this._pjaxBindUI();}},createView:function(m,l){var k=this.getViewInfo(m),n=(k&&k.type)||b,o,j;o=g.isString(n)?i.getValue(c,n.split(".")):n;j=new o(l);this._viewInfoMap[c.stamp(j,true)]=k;return j;},getViewInfo:function(j){if(g.isString(j)){return this.views[j];}return j&&this._viewInfoMap[c.stamp(j,true)];},render:function(){var k=this.get("container"),j=this.get("viewContainer"),l=this.get("activeView"),n=l&&l.get("container"),m=k.compareTo(j);k.addClass(f.CSS_CLASS);j.addClass(f.VIEWS_CSS_CLASS);if(l&&!j.contains(n)){j.appendChild(n);}if(!k.contains(j)&&!m){k.appendChild(j);}return this;},showView:function(j,m,l,o){var k,n;l||(l={});if(o){l.callback=o;}else{if(g.isFunction(l)){l={callback:l};}}if(g.isString(j)){k=this.getViewInfo(j);if(k&&k.preserve&&k.instance){j=k.instance;this._viewInfoMap[c.stamp(j,true)]=k;}else{j=this.createView(j,m);n=true;}}if(l.update&&!n){j.setAttrs(m);}if("render" in l){l.render&&j.render();}else{if(n){j.render();}}return this._set("activeView",j,{options:l});},_attachView:function(k,l){if(!k){return;}var m=this.getViewInfo(k),j=this.get("viewContainer");k.addTarget(this);m&&(m.instance=k);j[l?"prepend":"append"](k.get("container"));},_destroyContainer:function(){var k=this.get("container"),j=this.get("viewContainer"),l=k.compareTo(j);if(c.one("body").compareTo(k)){this.detachEvents();k&&k.removeClass(f.CSS_CLASS);if(l){k&&k.removeClass(f.VIEWS_CSS_CLASS);}else{j&&j.remove(true);}return;}j&&j.remove(true);!l&&k&&k.remove(true);},_detachView:function(j){if(!j){return;}var k=this.getViewInfo(j)||{};if(k.preserve){j.remove();}else{j.destroy({remove:true});delete this._viewInfoMap[c.stamp(j,true)];if(j===k.instance){delete k.instance;}}j.removeTarget(this);},_getViewContainer:function(j){if(!j&&!this._viewContainer){j=this._viewContainer=this.create();this._set("viewContainer",j);}return j;},_getURL:function(){var j=c.getLocation().toString();return this._html5?j:this._upgradeURL(j);},_initHtml5:function(){if(this.get("serverRouting")===false){return false;}else{return d.html5;}},_isChildView:function(j,m){var l=this.getViewInfo(j),k=this.getViewInfo(m);if(l&&k){return this.getViewInfo(l.parent)===k;}return false;},_isParentView:function(j,m){var k=this.getViewInfo(j),l=this.getViewInfo(m);if(k&&l){return this.getViewInfo(l.parent)===k;}return false;},_navigate:function(k,j){k=this._upgradeURL(k);j||(j={});if(!this.get("serverRouting")){"force" in j||(j.force=true);}return a.prototype._navigate.call(this,k,j);},_save:function(j,k){if(this.get("serverRouting")&&!this.get("html5")){if(!this._hasSameOrigin(j)){c.error("Security error: The new URL must be of the same origin as the current URL.");return this;}j=this._joinURL(j||"");if(k){h&&h.location.replace(j);}else{h&&(h.location=j);}return this;}return d.prototype._save.apply(this,arguments);},_uiSetActiveView:function(p,n,m){m||(m={});var o=m.callback,j=this._isChildView(p,n),l=!j&&this._isParentView(p,n),k=!!m.prepend||l;if(p===n){return o&&o.call(this,p);}this._attachView(p,k);this._detachView(n);o&&o.call(this,p);},_upgradeURL:function(k){if(!this._hasSameOrigin(k)){return k;}var l=(k.match(/#(.*)$/)||[])[1]||"",j=c.HistoryHash.hashPrefix;if(j&&l.indexOf(j)===0){l=l.replace(j,"");}if(l&&l.charAt(0)==="/"){k=this._resolveURL(this._joinURL(l));}return k;},_afterActiveViewChange:function(j){this._uiSetActiveView(j.newVal,j.prevVal,j.options);}},{ATTRS:{activeView:{value:null,readOnly:true},container:{valueFn:function(){return c.one("body");}},html5:{valueFn:"_initHtml5"},linkSelector:{value:"a"},serverRouting:{value:undefined,writeOnce:"initOnly"},viewContainer:{getter:"_getViewContainer",setter:c.one,writeOnce:true}},CSS_CLASS:e("app"),VIEWS_CSS_CLASS:e("app","views"),_NON_ATTRS_CFG:["views"]});c.namespace("App").Base=f;c.App=c.mix(c.Base.create("app",c.App.Base,[]),c.App,true);},"3.5.1",{requires:["classnamemanager","pjax-base","router","view"]});
4571\ No newline at end of file
4572
4573=== added file 'debian/extras/jslibs/yui/app-base/app-base.js'
4574--- debian/extras/jslibs/yui/app-base/app-base.js 1970-01-01 00:00:00 +0000
4575+++ debian/extras/jslibs/yui/app-base/app-base.js 2013-02-02 01:30:27 +0000
4576@@ -0,0 +1,1142 @@
4577+/*
4578+YUI 3.5.1 (build 22)
4579+Copyright 2012 Yahoo! Inc. All rights reserved.
4580+Licensed under the BSD License.
4581+http://yuilibrary.com/license/
4582+*/
4583+YUI.add('app-base', function(Y) {
4584+
4585+/**
4586+The App Framework provides simple MVC-like building blocks (models, model lists,
4587+views, and URL-based routing) for writing single-page JavaScript applications.
4588+
4589+@main app
4590+@module app
4591+@since 3.4.0
4592+**/
4593+
4594+/**
4595+Provides a top-level application component which manages navigation and views.
4596+
4597+@module app
4598+@submodule app-base
4599+@since 3.5.0
4600+**/
4601+
4602+// TODO: Better handling of lifecycle for registered views:
4603+//
4604+// * [!] Just redo basically everything with view management so there are no
4605+// pre-`activeViewChange` side effects and handle the rest of these things:
4606+//
4607+// * Seems like any view created via `createView` should listen for the view's
4608+// `destroy` event and use that to remove it from the `_viewsInfoMap`. I
4609+// should look at what ModelList does for Models as a reference.
4610+//
4611+// * Should we have a companion `destroyView()` method? Maybe this wouldn't be
4612+// needed if we have a `getView(name, create)` method, and already doing the
4613+// above? We could do `app.getView('foo').destroy()` and it would be removed
4614+// from the `_viewsInfoMap` as well.
4615+//
4616+// * Should we wait to call a view's `render()` method inside of the
4617+// `_attachView()` method?
4618+//
4619+// * Should named views support a collection of instances instead of just one?
4620+//
4621+
4622+var Lang = Y.Lang,
4623+ YObject = Y.Object,
4624+
4625+ PjaxBase = Y.PjaxBase,
4626+ Router = Y.Router,
4627+ View = Y.View,
4628+
4629+ getClassName = Y.ClassNameManager.getClassName,
4630+
4631+ win = Y.config.win,
4632+
4633+ App;
4634+
4635+/**
4636+Provides a top-level application component which manages navigation and views.
4637+
4638+This gives you a foundation and structure on which to build your application; it
4639+combines robust URL navigation with powerful routing and flexible view
4640+management.
4641+
4642+@class App.Base
4643+@param {Object} [config] The following are configuration properties that can be
4644+ specified _in addition_ to default attribute values and the non-attribute
4645+ properties provided by `Y.Base`:
4646+ @param {Object} [config.views] Hash of view-name to metadata used to
4647+ declaratively describe an application's views and their relationship with
4648+ the app and other views. The views specified here will override any defaults
4649+ provided by the `views` object on the `prototype`.
4650+@constructor
4651+@extends Base
4652+@uses View
4653+@uses Router
4654+@uses PjaxBase
4655+@since 3.5.0
4656+**/
4657+App = Y.Base.create('app', Y.Base, [View, Router, PjaxBase], {
4658+ // -- Public Properties ----------------------------------------------------
4659+
4660+ /**
4661+ Hash of view-name to metadata used to declaratively describe an
4662+ application's views and their relationship with the app and its other views.
4663+
4664+ The view metadata is composed of Objects keyed to a view-name that can have
4665+ any or all of the following properties:
4666+
4667+ * `type`: Function or a string representing the view constructor to use to
4668+ create view instances. If a string is used, the constructor function is
4669+ assumed to be on the `Y` object; e.g. `"SomeView"` -> `Y.SomeView`.
4670+
4671+ * `preserve`: Boolean for whether the view instance should be retained. By
4672+ default, the view instance will be destroyed when it is no longer the
4673+ `activeView`. If `true` the view instance will simply be `removed()`
4674+ from the DOM when it is no longer active. This is useful when the view
4675+ is frequently used and may be expensive to re-create.
4676+
4677+ * `parent`: String to another named view in this hash that represents the
4678+ parent view within the application's view hierarchy; e.g. a `"photo"`
4679+ view could have `"album"` has its `parent` view. This parent/child
4680+ relationship is a useful cue for things like transitions.
4681+
4682+ * `instance`: Used internally to manage the current instance of this named
4683+ view. This can be used if your view instance is created up-front, or if
4684+ you would rather manage the View lifecycle, but you probably should just
4685+ let this be handled for you.
4686+
4687+ If `views` are specified at instantiation time, the metadata in the `views`
4688+ Object here will be used as defaults when creating the instance's `views`.
4689+
4690+ Every `Y.App` instance gets its own copy of a `views` object so this Object
4691+ on the prototype will not be polluted.
4692+
4693+ @example
4694+ // Imagine that `Y.UsersView` and `Y.UserView` have been defined.
4695+ var app = new Y.App({
4696+ views: {
4697+ users: {
4698+ type : Y.UsersView,
4699+ preserve: true
4700+ },
4701+
4702+ user: {
4703+ type : Y.UserView,
4704+ parent: 'users'
4705+ }
4706+ }
4707+ });
4708+
4709+ @property views
4710+ @type Object
4711+ @default {}
4712+ @since 3.5.0
4713+ **/
4714+ views: {},
4715+
4716+ // -- Protected Properties -------------------------------------------------
4717+
4718+ /**
4719+ Map of view instance id (via `Y.stamp()`) to view-info object in `views`.
4720+
4721+ This mapping is used to tie a specific view instance back to its metadata by
4722+ adding a reference to the the related view info on the `views` object.
4723+
4724+ @property _viewInfoMap
4725+ @type Object
4726+ @default {}
4727+ @protected
4728+ @since 3.5.0
4729+ **/
4730+
4731+ // -- Lifecycle Methods ----------------------------------------------------
4732+ initializer: function (config) {
4733+ config || (config = {});
4734+
4735+ var views = {};
4736+
4737+ // Merges-in specified view metadata into local `views` object.
4738+ function mergeViewConfig(view, name) {
4739+ views[name] = Y.merge(views[name], view);
4740+ }
4741+
4742+ // First, each view in the `views` prototype object gets its metadata
4743+ // merged-in, providing the defaults.
4744+ YObject.each(this.views, mergeViewConfig);
4745+
4746+ // Then, each view in the specified `config.views` object gets its
4747+ // metadata merged-in.
4748+ YObject.each(config.views, mergeViewConfig);
4749+
4750+ // The resulting hodgepodge of metadata is then stored as the instance's
4751+ // `views` object, and no one's objects were harmed in the making.
4752+ this.views = views;
4753+ this._viewInfoMap = {};
4754+
4755+ // Using `bind()` to aid extensibility.
4756+ this.after('activeViewChange', Y.bind('_afterActiveViewChange', this));
4757+
4758+ // PjaxBase will bind click events when `html5` is `true`, so this just
4759+ // forces the binding when `serverRouting` and `html5` are both falsy.
4760+ if (!this.get('serverRouting')) {
4761+ this._pjaxBindUI();
4762+ }
4763+ },
4764+
4765+ // TODO: `destructor` to destroy the `activeView`?
4766+
4767+ // -- Public Methods -------------------------------------------------------
4768+
4769+ /**
4770+ Creates and returns a new view instance using the provided `name` to look up
4771+ the view info metadata defined in the `views` object. The passed-in `config`
4772+ object is passed to the view constructor function.
4773+
4774+ This function also maps a view instance back to its view info metadata.
4775+
4776+ @method createView
4777+ @param {String} name The name of a view defined on the `views` object.
4778+ @param {Object} [config] The configuration object passed to the view
4779+ constructor function when creating the new view instance.
4780+ @return {View} The new view instance.
4781+ @since 3.5.0
4782+ **/
4783+ createView: function (name, config) {
4784+ var viewInfo = this.getViewInfo(name),
4785+ type = (viewInfo && viewInfo.type) || View,
4786+ ViewConstructor, view;
4787+
4788+ // Looks for a namespaced constructor function on `Y`.
4789+ ViewConstructor = Lang.isString(type) ?
4790+ YObject.getValue(Y, type.split('.')) : type;
4791+
4792+ // Create the view instance and map it with its metadata.
4793+ view = new ViewConstructor(config);
4794+ this._viewInfoMap[Y.stamp(view, true)] = viewInfo;
4795+
4796+ return view;
4797+ },
4798+
4799+ /**
4800+ Returns the metadata associated with a view instance or view name defined on
4801+ the `views` object.
4802+
4803+ @method getViewInfo
4804+ @param {View|String} view View instance, or name of a view defined on the
4805+ `views` object.
4806+ @return {Object} The metadata for the view, or `undefined` if the view is
4807+ not registered.
4808+ @since 3.5.0
4809+ **/
4810+ getViewInfo: function (view) {
4811+ if (Lang.isString(view)) {
4812+ return this.views[view];
4813+ }
4814+
4815+ return view && this._viewInfoMap[Y.stamp(view, true)];
4816+ },
4817+
4818+ /**
4819+ Navigates to the specified URL if there is a route handler that matches. In
4820+ browsers capable of using HTML5 history or when `serverRouting` is falsy,
4821+ the navigation will be enhanced by firing the `navigate` event and having
4822+ the app handle the "request". When `serverRouting` is `true`, non-HTML5
4823+ browsers will navigate to the new URL via a full page reload.
4824+
4825+ When there is a route handler for the specified URL and it is being
4826+ navigated to, this method will return `true`, otherwise it will return
4827+ `false`.
4828+
4829+ **Note:** The specified URL _must_ be of the same origin as the current URL,
4830+ otherwise an error will be logged and navigation will not occur. This is
4831+ intended as both a security constraint and a purposely imposed limitation as
4832+ it does not make sense to tell the app to navigate to a URL on a
4833+ different scheme, host, or port.
4834+
4835+ @method navigate
4836+ @param {String} url The URL to navigate to. This must be of the same origin
4837+ as the current URL.
4838+ @param {Object} [options] Additional options to configure the navigation.
4839+ These are mixed into the `navigate` event facade.
4840+ @param {Boolean} [options.replace] Whether or not the current history
4841+ entry will be replaced, or a new entry will be created. Will default
4842+ to `true` if the specified `url` is the same as the current URL.
4843+ @param {Boolean} [options.force] Whether the enhanced navigation
4844+ should occur even in browsers without HTML5 history. Will default to
4845+ `true` when `serverRouting` is falsy.
4846+ @see PjaxBase.navigate()
4847+ **/
4848+ // Does not override `navigate()` but does use extra `options`.
4849+
4850+ /**
4851+ Renders this application by appending the `viewContainer` node to the
4852+ `container` node if it isn't already a child of the container, and the
4853+ `activeView` will be appended the view container, if it isn't already.
4854+
4855+ You should call this method at least once, usually after the initialization
4856+ of your app instance so the proper DOM structure is setup and optionally
4857+ append the container to the DOM if it's not there already.
4858+
4859+ You may override this method to customize the app's rendering, but you
4860+ should expect that the `viewContainer`'s contents will be modified by the
4861+ app for the purpose of rendering the `activeView` when it changes.
4862+
4863+ @method render
4864+ @chainable
4865+ @see View.render()
4866+ **/
4867+ render: function () {
4868+ var container = this.get('container'),
4869+ viewContainer = this.get('viewContainer'),
4870+ activeView = this.get('activeView'),
4871+ activeViewContainer = activeView && activeView.get('container'),
4872+ areSame = container.compareTo(viewContainer);
4873+
4874+ container.addClass(App.CSS_CLASS);
4875+ viewContainer.addClass(App.VIEWS_CSS_CLASS);
4876+
4877+ // Prevents needless shuffling around of nodes and maintains DOM order.
4878+ if (activeView && !viewContainer.contains(activeViewContainer)) {
4879+ viewContainer.appendChild(activeViewContainer);
4880+ }
4881+
4882+ // Prevents needless shuffling around of nodes and maintains DOM order.
4883+ if (!container.contains(viewContainer) && !areSame) {
4884+ container.appendChild(viewContainer);
4885+ }
4886+
4887+ return this;
4888+ },
4889+
4890+ /**
4891+ Sets which view is active/visible for the application. This will set the
4892+ app's `activeView` attribute to the specified `view`.
4893+
4894+ The `view` will be "attached" to this app, meaning it will be both rendered
4895+ into this app's `viewContainer` node and all of its events will bubble to
4896+ the app. The previous `activeView` will be "detached" from this app.
4897+
4898+ When a string-name is provided for a view which has been registered on this
4899+ app's `views` object, the referenced metadata will be used and the
4900+ `activeView` will be set to either a preserved view instance, or a new
4901+ instance of the registered view will be created using the specified `config`
4902+ object passed-into this method.
4903+
4904+ A callback function can be specified as either the third or fourth argument,
4905+ and this function will be called after the new `view` becomes the
4906+ `activeView`, is rendered to the `viewContainer`, and is ready to use.
4907+
4908+ @example
4909+ var app = new Y.App({
4910+ views: {
4911+ usersView: {
4912+ // Imagine that `Y.UsersView` has been defined.
4913+ type: Y.UsersView
4914+ }
4915+ },
4916+
4917+ users: new Y.ModelList()
4918+ });
4919+
4920+ app.route('/users/', function () {
4921+ this.showView('usersView', {users: this.get('users')});
4922+ });
4923+
4924+ app.render();
4925+ app.navigate('/uses/'); // => Creates a new `Y.UsersView` and shows it.
4926+
4927+ @method showView
4928+ @param {String|View} view The name of a view defined in the `views` object,
4929+ or a view instance which should become this app's `activeView`.
4930+ @param {Object} [config] Optional configuration to use when creating a new
4931+ view instance. This config object can also be used to update an existing
4932+ or preserved view's attributes when `options.update` is `true`.
4933+ @param {Object} [options] Optional object containing any of the following
4934+ properties:
4935+ @param {Function} [options.callback] Optional callback function to call
4936+ after new `activeView` is ready to use, the function will be passed:
4937+ @param {View} options.callback.view A reference to the new
4938+ `activeView`.
4939+ @param {Boolean} [options.prepend=false] Whether the `view` should be
4940+ prepended instead of appended to the `viewContainer`.
4941+ @param {Boolean} [options.render] Whether the `view` should be rendered.
4942+ **Note:** If no value is specified, a view instance will only be
4943+ rendered if it's newly created by this method.
4944+ @param {Boolean} [options.update=false] Whether an existing view should
4945+ have its attributes updated by passing the `config` object to its
4946+ `setAttrs()` method. **Note:** This option does not have an effect if
4947+ the `view` instance is created as a result of calling this method.
4948+ @param {Function} [callback] Optional callback Function to call after the
4949+ new `activeView` is ready to use. **Note:** this will override
4950+ `options.callback` and it can be specified as either the third or fourth
4951+ argument. The function will be passed the following:
4952+ @param {View} callback.view A reference to the new `activeView`.
4953+ @chainable
4954+ @since 3.5.0
4955+ **/
4956+ showView: function (view, config, options, callback) {
4957+ var viewInfo, created;
4958+
4959+ options || (options = {});
4960+
4961+ // Support the callback function being either the third or fourth arg.
4962+ if (callback) {
4963+ options.callback = callback;
4964+ } else if (Lang.isFunction(options)) {
4965+ options = {callback: options};
4966+ }
4967+
4968+ if (Lang.isString(view)) {
4969+ viewInfo = this.getViewInfo(view);
4970+
4971+ // Use the preserved view instance, or create a new view.
4972+ // TODO: Maybe we can remove the strict check for `preserve` and
4973+ // assume we'll use a View instance if it is there, and just check
4974+ // `preserve` when detaching?
4975+ if (viewInfo && viewInfo.preserve && viewInfo.instance) {
4976+ view = viewInfo.instance;
4977+
4978+ // Make sure there's a mapping back to the view metadata.
4979+ this._viewInfoMap[Y.stamp(view, true)] = viewInfo;
4980+ } else {
4981+ // TODO: Add the app as a bubble target during construction, but
4982+ // make sure to check that it isn't already in `bubbleTargets`!
4983+ // This will allow the app to be notified for about _all_ of the
4984+ // view's events. **Note:** This should _only_ happen if the
4985+ // view is created _after_ `activeViewChange`.
4986+
4987+ view = this.createView(view, config);
4988+ created = true;
4989+ }
4990+ }
4991+
4992+ // Update the specified or preserved `view` when signaled to do so.
4993+ // There's no need to updated a view if it was _just_ created.
4994+ if (options.update && !created) {
4995+ view.setAttrs(config);
4996+ }
4997+
4998+ // TODO: Hold off on rendering the view until after it has been
4999+ // "attached", and move the call to render into `_attachView()`.
5000+
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches